mirror of
https://github.com/mii443/vrchatapi-rust.git
synced 2025-08-22 15:45:35 +00:00
Upgrade Rust SDK to spec 1.18.1
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "vrchatapi"
|
||||
version = "1.18.0"
|
||||
version = "1.18.1"
|
||||
authors = ["vrchatapi.lpv0t@aries.fyi"]
|
||||
description = "VRChat API Client for Rust"
|
||||
license = "MIT"
|
||||
|
@ -9,28 +9,41 @@ Name | Type | Description | Notes
|
||||
**address** | **String** | VRChat's office address |
|
||||
**announcements** | [**Vec<models::ApiConfigAnnouncement>**](APIConfigAnnouncement.md) | Public Announcements |
|
||||
**app_name** | **String** | Game name | [default to VrChat]
|
||||
**available_language_codes** | **Vec<String>** | List of supported Languages |
|
||||
**available_languages** | **Vec<String>** | List of supported Languages |
|
||||
**build_version_tag** | **String** | Build tag of the API server |
|
||||
**client_api_key** | **String** | apiKey to be used for all other requests |
|
||||
**client_bps_ceiling** | **i32** | Unknown | [default to 18432]
|
||||
**client_disconnect_timeout** | **i32** | Unknown | [default to 30000]
|
||||
**client_net_dispatch_thread** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**client_net_in_thread** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**client_net_in_thread2** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**client_net_in_thread_mobile** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**client_net_in_thread_mobile2** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**client_net_out_thread** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**client_net_out_thread2** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**client_net_out_thread_mobile** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**client_net_out_thread_mobile2** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**client_qr** | Option<**i32**> | Unknown | [optional][default to 1]
|
||||
**client_reserved_player_bps** | **i32** | Unknown | [default to 7168]
|
||||
**client_sent_count_allowance** | **i32** | Unknown | [default to 15]
|
||||
**contact_email** | **String** | VRChat's contact email |
|
||||
**copyright_email** | **String** | VRChat's copyright-issues-related email |
|
||||
**current_privacy_version** | Option<**i32**> | Current version number of the Privacy Agreement | [optional][default to 1]
|
||||
**current_tos_version** | **i32** | Current version number of the Terms of Service |
|
||||
**default_avatar** | **String** | |
|
||||
**deployment_group** | [**models::DeploymentGroup**](DeploymentGroup.md) | |
|
||||
**dev_app_version_standalone** | **String** | Version number for game development build |
|
||||
**dev_download_link_windows** | **String** | Developer Download link |
|
||||
**dev_language_codes** | Option<**Vec<String>**> | Unknown | [optional]
|
||||
**dev_sdk_url** | **String** | Link to download the development SDK, use downloadUrls instead |
|
||||
**dev_sdk_version** | **String** | Version of the development SDK |
|
||||
**dev_server_version_standalone** | **String** | Version number for server development build |
|
||||
**dis_countdown** | **String** | Unknown, \"dis\" maybe for disconnect? |
|
||||
**disable_av_pro_in_proton** | Option<**bool**> | Unknown | [optional][default to false]
|
||||
**disable_avatar_copying** | **bool** | Toggles if copying avatars should be disabled | [default to false]
|
||||
**disable_avatar_gating** | **bool** | Toggles if avatar gating should be disabled. Avatar gating restricts uploading of avatars to people with the `system_avatar_access` Tag or `admin_avatar_access` Tag | [default to false]
|
||||
**disable_community_labs** | **bool** | Toggles if the Community Labs should be disabled | [default to false]
|
||||
**disable_community_labs_promotion** | **bool** | Toggles if promotion out of Community Labs should be disabled | [default to false]
|
||||
**disable_email** | **bool** | Unknown | [default to false]
|
||||
**disable_captcha** | Option<**bool**> | Unknown | [optional][default to true]
|
||||
**disable_event_stream** | **bool** | Toggles if Analytics should be disabled. | [default to false]
|
||||
**disable_feedback_gating** | **bool** | Toggles if feedback gating should be disabled. Feedback gating restricts submission of feedback (reporting a World or User) to people with the `system_feedback_access` Tag. | [default to false]
|
||||
**disable_frontend_builds** | **bool** | Unknown, probably toggles compilation of frontend web builds? So internal flag? | [default to false]
|
||||
@ -44,26 +57,23 @@ Name | Type | Description | Notes
|
||||
**download_link_windows** | **String** | Download link for game on the Oculus Rift website. |
|
||||
**download_urls** | [**models::ApiConfigDownloadUrlList**](APIConfigDownloadURLList.md) | |
|
||||
**dynamic_world_rows** | [**Vec<models::DynamicContentRow>**](DynamicContentRow.md) | Array of DynamicWorldRow objects, used by the game to display the list of world rows |
|
||||
**economy_pause_end** | Option<**String**> | Unknown | [optional]
|
||||
**economy_pause_start** | Option<**String**> | Unknown | [optional]
|
||||
**economy_state** | Option<**i32**> | Unknown | [optional][default to 1]
|
||||
**events** | [**models::ApiConfigEvents**](APIConfigEvents.md) | |
|
||||
**gear_demo_room_id** | **String** | Unknown |
|
||||
**home_world_id** | **String** | WorldID be \"offline\" on User profiles if you are not friends with that user. |
|
||||
**homepage_redirect_target** | **String** | Redirect target if you try to open the base API domain in your browser | [default to https://hello.vrchat.com]
|
||||
**hub_world_id** | **String** | WorldID be \"offline\" on User profiles if you are not friends with that user. |
|
||||
**image_host_url_list** | **Vec<String>** | A list of explicitly allowed origins that worlds can request images from via the Udon's [VRCImageDownloader#DownloadImage](https://creators.vrchat.com/worlds/udon/image-loading/#downloadimage). |
|
||||
**jobs_email** | **String** | VRChat's job application email |
|
||||
**message_of_the_day** | **String** | MOTD |
|
||||
**moderation_email** | **String** | VRChat's moderation related email |
|
||||
**moderation_query_period** | **i32** | Unknown |
|
||||
**not_allowed_to_select_avatar_in_private_world_message** | **String** | Used in-game to notify a user they aren't allowed to select avatars in private worlds |
|
||||
**plugin** | **String** | Extra [plugin](https://doc.photonengine.com/en-us/server/current/plugins/manual) to run in each instance |
|
||||
**release_app_version_standalone** | **String** | Version number for game release build |
|
||||
**release_sdk_url** | **String** | Link to download the release SDK |
|
||||
**release_sdk_version** | **String** | Version of the release SDK |
|
||||
**release_server_version_standalone** | **String** | Version number for server release build |
|
||||
**sdk_developer_faq_url** | **String** | Link to the developer FAQ |
|
||||
**sdk_discord_url** | **String** | Link to the official VRChat Discord |
|
||||
**sdk_not_allowed_to_publish_message** | **String** | Used in the SDK to notify a user they aren't allowed to upload avatars/worlds yet |
|
||||
**sdk_unity_version** | **String** | Unity version supported by the SDK |
|
||||
**server_name** | **String** | Server name of the API server currently responding |
|
||||
**string_host_url_list** | **Vec<String>** | A list of explicitly allowed origins that worlds can request strings from via the Udon's [VRCStringDownloader.LoadUrl](https://creators.vrchat.com/worlds/udon/string-loading/#ivrcstringdownload). |
|
||||
**support_email** | **String** | VRChat's support email |
|
||||
**time_out_world_id** | **String** | WorldID be \"offline\" on User profiles if you are not friends with that user. |
|
||||
**tutorial_world_id** | **String** | WorldID be \"offline\" on User profiles if you are not friends with that user. |
|
||||
@ -74,15 +84,10 @@ Name | Type | Description | Notes
|
||||
**upload_analysis_percent** | **i32** | Unknown |
|
||||
**url_list** | **Vec<String>** | List of allowed URLs that bypass the \"Allow untrusted URL's\" setting in-game |
|
||||
**use_reliable_udp_for_voice** | **bool** | Unknown | [default to false]
|
||||
**user_update_period** | **i32** | Unknown |
|
||||
**user_verification_delay** | **i32** | Unknown |
|
||||
**user_verification_retry** | **i32** | Unknown |
|
||||
**user_verification_timeout** | **i32** | Unknown |
|
||||
**vive_windows_url** | **String** | Download link for game on the Steam website. |
|
||||
**white_listed_asset_urls** | **Vec<String>** | List of allowed URLs that are allowed to host avatar assets |
|
||||
**world_update_period** | **i32** | Unknown |
|
||||
**player_url_resolver_hash** | **String** | Currently used youtube-dl.exe hash in SHA-256-delimited format |
|
||||
**player_url_resolver_version** | **String** | Currently used youtube-dl.exe version |
|
||||
**player_url_resolver_sha1** | **String** | Currently used youtube-dl.exe hash in SHA1-delimited format |
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
|
@ -17,7 +17,7 @@ Method | HTTP request | Description
|
||||
|
||||
## check_user_exists
|
||||
|
||||
> models::UserExists check_user_exists(email, display_name, user_id, exclude_user_id)
|
||||
> models::UserExists check_user_exists(email, display_name, username, exclude_user_id)
|
||||
Check User Exists
|
||||
|
||||
Checks if a user by a given `username`, `displayName` or `email` exist. This is used during registration to check if a username has already been taken, during change of displayName to check if a displayName is available, and during change of email to check if the email is already used. In the later two cases the `excludeUserId` is used to exclude oneself, otherwise the result would always be true. It is **REQUIRED** to include **AT LEAST** `username`, `displayName` **or** `email` query parameter. Although they can be combined - in addition with `excludeUserId` (generally to exclude yourself) - to further fine-tune the search.
|
||||
@ -29,7 +29,7 @@ Name | Type | Description | Required | Notes
|
||||
------------- | ------------- | ------------- | ------------- | -------------
|
||||
**email** | Option<**String**> | Filter by email. | |
|
||||
**display_name** | Option<**String**> | Filter by displayName. | |
|
||||
**user_id** | Option<**String**> | Filter by UserID. | |
|
||||
**username** | Option<**String**> | Filter by Username. | |
|
||||
**exclude_user_id** | Option<**String**> | Exclude by UserID. | |
|
||||
|
||||
### Return type
|
||||
|
@ -6,7 +6,7 @@ Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**category** | **String** | | [default to Queued]
|
||||
**file_name** | **String** | |
|
||||
**md5** | **String** | |
|
||||
**md5** | Option<**String**> | | [optional]
|
||||
**size_in_bytes** | **i32** | |
|
||||
**status** | [**models::FileStatus**](FileStatus.md) | |
|
||||
**upload_id** | **String** | | [default to ]
|
||||
|
@ -80,7 +80,7 @@ Name | Type | Description | Required | Notes
|
||||
|
||||
## delete_file
|
||||
|
||||
> models::Success delete_file(file_id)
|
||||
> models::File delete_file(file_id)
|
||||
Delete File
|
||||
|
||||
Deletes a File object.
|
||||
@ -94,7 +94,7 @@ Name | Type | Description | Required | Notes
|
||||
|
||||
### Return type
|
||||
|
||||
[**models::Success**](Success.md)
|
||||
[**models::File**](File.md)
|
||||
|
||||
### Authorization
|
||||
|
||||
@ -165,7 +165,7 @@ Name | Type | Description | Required | Notes
|
||||
### HTTP request headers
|
||||
|
||||
- **Content-Type**: Not defined
|
||||
- **Accept**: Not defined
|
||||
- **Accept**: application/json
|
||||
|
||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||
|
||||
|
@ -23,8 +23,11 @@ Name | Type | Description | Notes
|
||||
**is_verified** | Option<**bool**> | | [optional][default to false]
|
||||
**join_state** | Option<[**models::GroupJoinState**](GroupJoinState.md)> | | [optional]
|
||||
**tags** | Option<**Vec<String>**> | | [optional]
|
||||
**transfer_target_id** | Option<**String**> | A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. | [optional]
|
||||
**galleries** | Option<[**Vec<models::GroupGallery>**](GroupGallery.md)> | | [optional]
|
||||
**created_at** | Option<**String**> | | [optional]
|
||||
**updated_at** | Option<**String**> | | [optional]
|
||||
**last_post_created_at** | Option<**String**> | | [optional]
|
||||
**online_member_count** | Option<**i32**> | | [optional]
|
||||
**membership_status** | Option<[**models::GroupMemberStatus**](GroupMemberStatus.md)> | | [optional]
|
||||
**my_member** | Option<[**models::GroupMyMember**](GroupMyMember.md)> | | [optional]
|
||||
|
@ -8,6 +8,9 @@ Name | Type | Description | Notes
|
||||
**group_id** | Option<**String**> | | [optional]
|
||||
**user_id** | Option<**String**> | A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. | [optional]
|
||||
**role_ids** | Option<**Vec<String>**> | | [optional]
|
||||
**accepted_by_display_name** | Option<**String**> | | [optional]
|
||||
**accepted_by_id** | Option<**String**> | A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. | [optional]
|
||||
**created_at** | Option<**String**> | | [optional]
|
||||
**manager_notes** | Option<**String**> | | [optional]
|
||||
**membership_status** | Option<**String**> | | [optional]
|
||||
**is_subscribed_to_announcements** | Option<**bool**> | | [optional][default to true]
|
||||
@ -16,6 +19,9 @@ Name | Type | Description | Notes
|
||||
**joined_at** | Option<**String**> | | [optional]
|
||||
**banned_at** | Option<**String**> | | [optional]
|
||||
**has2_fa** | Option<**bool**> | | [optional][default to false]
|
||||
**has_joined_from_purchase** | Option<**bool**> | | [optional][default to false]
|
||||
**last_post_read_at** | Option<**String**> | | [optional]
|
||||
**m_role_ids** | Option<**Vec<String>**> | | [optional]
|
||||
**permissions** | Option<**Vec<String>**> | | [optional]
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
@ -5,6 +5,7 @@
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**id** | **String** | |
|
||||
**owner_display_name** | **String** | |
|
||||
**name** | **String** | |
|
||||
**owner_id** | **String** | A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed. |
|
||||
**data** | Option<[**serde_json::Value**](.md)> | | [optional]
|
||||
|
@ -6,6 +6,7 @@ Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
**agreement_id** | **String** | |
|
||||
**item_id** | **f64** | |
|
||||
**agreement** | **String** | |
|
||||
**status** | **String** | This is NOT TransactionStatus, but whatever Steam return. |
|
||||
**period** | **String** | |
|
||||
**frequency** | **f64** | |
|
||||
|
@ -14,6 +14,7 @@ Name | Type | Description | Notes
|
||||
**tier** | **f64** | |
|
||||
**active** | **bool** | | [default to true]
|
||||
**status** | [**models::TransactionStatus**](TransactionStatus.md) | |
|
||||
**starts** | Option<**String**> | | [optional]
|
||||
**expires** | **String** | |
|
||||
**created_at** | **String** | |
|
||||
**updated_at** | **String** | |
|
||||
|
@ -358,7 +358,7 @@ Name | Type | Description | Required | Notes
|
||||
|
||||
## search_worlds
|
||||
|
||||
> Vec<models::LimitedWorld> search_worlds(featured, sort, user, user_id, n, order, offset, search, tag, notag, release_status, max_unity_version, min_unity_version, platform)
|
||||
> Vec<models::LimitedWorld> search_worlds(featured, sort, user, user_id, n, order, offset, search, tag, notag, release_status, max_unity_version, min_unity_version, platform, fuzzy)
|
||||
Search All Worlds
|
||||
|
||||
Search and list any worlds by query filters.
|
||||
@ -382,6 +382,7 @@ Name | Type | Description | Required | Notes
|
||||
**max_unity_version** | Option<**String**> | The maximum Unity version supported by the asset. | |
|
||||
**min_unity_version** | Option<**String**> | The minimum Unity version supported by the asset. | |
|
||||
**platform** | Option<**String**> | The platform the asset supports. | |
|
||||
**fuzzy** | Option<**bool**> | | |
|
||||
|
||||
### Return type
|
||||
|
||||
|
@ -79,7 +79,7 @@ pub enum VerifyRecoveryCodeError {
|
||||
|
||||
|
||||
/// Checks if a user by a given `username`, `displayName` or `email` exist. This is used during registration to check if a username has already been taken, during change of displayName to check if a displayName is available, and during change of email to check if the email is already used. In the later two cases the `excludeUserId` is used to exclude oneself, otherwise the result would always be true. It is **REQUIRED** to include **AT LEAST** `username`, `displayName` **or** `email` query parameter. Although they can be combined - in addition with `excludeUserId` (generally to exclude yourself) - to further fine-tune the search.
|
||||
pub async fn check_user_exists(configuration: &configuration::Configuration, email: Option<&str>, display_name: Option<&str>, user_id: Option<&str>, exclude_user_id: Option<&str>) -> Result<models::UserExists, Error<CheckUserExistsError>> {
|
||||
pub async fn check_user_exists(configuration: &configuration::Configuration, email: Option<&str>, display_name: Option<&str>, username: Option<&str>, exclude_user_id: Option<&str>) -> Result<models::UserExists, Error<CheckUserExistsError>> {
|
||||
let local_var_configuration = configuration;
|
||||
|
||||
let local_var_client = &local_var_configuration.client;
|
||||
@ -93,8 +93,8 @@ pub async fn check_user_exists(configuration: &configuration::Configuration, ema
|
||||
if let Some(ref local_var_str) = display_name {
|
||||
local_var_req_builder = local_var_req_builder.query(&[("displayName", &local_var_str.to_string())]);
|
||||
}
|
||||
if let Some(ref local_var_str) = user_id {
|
||||
local_var_req_builder = local_var_req_builder.query(&[("userId", &local_var_str.to_string())]);
|
||||
if let Some(ref local_var_str) = username {
|
||||
local_var_req_builder = local_var_req_builder.query(&[("username", &local_var_str.to_string())]);
|
||||
}
|
||||
if let Some(ref local_var_str) = exclude_user_id {
|
||||
local_var_req_builder = local_var_req_builder.query(&[("excludeUserId", &local_var_str.to_string())]);
|
||||
|
@ -48,6 +48,7 @@ pub enum DeleteFileVersionError {
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
#[serde(untagged)]
|
||||
pub enum DownloadFileVersionError {
|
||||
Status404(models::Error),
|
||||
UnknownValue(serde_json::Value),
|
||||
}
|
||||
|
||||
@ -148,7 +149,7 @@ pub async fn create_file_version(configuration: &configuration::Configuration, f
|
||||
}
|
||||
|
||||
/// Deletes a File object.
|
||||
pub async fn delete_file(configuration: &configuration::Configuration, file_id: &str) -> Result<models::Success, Error<DeleteFileError>> {
|
||||
pub async fn delete_file(configuration: &configuration::Configuration, file_id: &str) -> Result<models::File, Error<DeleteFileError>> {
|
||||
let local_var_configuration = configuration;
|
||||
|
||||
let local_var_client = &local_var_configuration.client;
|
||||
|
@ -201,6 +201,7 @@ pub enum GetGroupAuditLogsError {
|
||||
#[serde(untagged)]
|
||||
pub enum GetGroupBansError {
|
||||
Status401(models::Error),
|
||||
Status403(models::Error),
|
||||
Status404(models::Error),
|
||||
UnknownValue(serde_json::Value),
|
||||
}
|
||||
@ -238,6 +239,7 @@ pub enum GetGroupInvitesError {
|
||||
#[serde(untagged)]
|
||||
pub enum GetGroupMemberError {
|
||||
Status401(models::Error),
|
||||
Status403(models::Error),
|
||||
Status404(models::Error),
|
||||
UnknownValue(serde_json::Value),
|
||||
}
|
||||
|
@ -522,7 +522,7 @@ pub async fn publish_world(configuration: &configuration::Configuration, world_i
|
||||
}
|
||||
|
||||
/// Search and list any worlds by query filters.
|
||||
pub async fn search_worlds(configuration: &configuration::Configuration, featured: Option<bool>, sort: Option<models::SortOption>, user: Option<&str>, user_id: Option<&str>, n: Option<i32>, order: Option<models::OrderOption>, offset: Option<i32>, search: Option<&str>, tag: Option<&str>, notag: Option<&str>, release_status: Option<models::ReleaseStatus>, max_unity_version: Option<&str>, min_unity_version: Option<&str>, platform: Option<&str>) -> Result<Vec<models::LimitedWorld>, Error<SearchWorldsError>> {
|
||||
pub async fn search_worlds(configuration: &configuration::Configuration, featured: Option<bool>, sort: Option<models::SortOption>, user: Option<&str>, user_id: Option<&str>, n: Option<i32>, order: Option<models::OrderOption>, offset: Option<i32>, search: Option<&str>, tag: Option<&str>, notag: Option<&str>, release_status: Option<models::ReleaseStatus>, max_unity_version: Option<&str>, min_unity_version: Option<&str>, platform: Option<&str>, fuzzy: Option<bool>) -> Result<Vec<models::LimitedWorld>, Error<SearchWorldsError>> {
|
||||
let local_var_configuration = configuration;
|
||||
|
||||
let local_var_client = &local_var_configuration.client;
|
||||
@ -572,6 +572,9 @@ pub async fn search_worlds(configuration: &configuration::Configuration, feature
|
||||
if let Some(ref local_var_str) = platform {
|
||||
local_var_req_builder = local_var_req_builder.query(&[("platform", &local_var_str.to_string())]);
|
||||
}
|
||||
if let Some(ref local_var_str) = fuzzy {
|
||||
local_var_req_builder = local_var_req_builder.query(&[("fuzzy", &local_var_str.to_string())]);
|
||||
}
|
||||
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
|
||||
local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
|
||||
}
|
||||
|
@ -27,6 +27,12 @@ pub struct ApiConfig {
|
||||
/// Game name
|
||||
#[serde(rename = "appName")]
|
||||
pub app_name: String,
|
||||
/// List of supported Languages
|
||||
#[serde(rename = "availableLanguageCodes")]
|
||||
pub available_language_codes: Vec<String>,
|
||||
/// List of supported Languages
|
||||
#[serde(rename = "availableLanguages")]
|
||||
pub available_languages: Vec<String>,
|
||||
/// Build tag of the API server
|
||||
#[serde(rename = "buildVersionTag")]
|
||||
pub build_version_tag: String,
|
||||
@ -40,6 +46,36 @@ pub struct ApiConfig {
|
||||
#[serde(rename = "clientDisconnectTimeout")]
|
||||
pub client_disconnect_timeout: i32,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientNetDispatchThread", skip_serializing_if = "Option::is_none")]
|
||||
pub client_net_dispatch_thread: Option<bool>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientNetInThread", skip_serializing_if = "Option::is_none")]
|
||||
pub client_net_in_thread: Option<bool>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientNetInThread2", skip_serializing_if = "Option::is_none")]
|
||||
pub client_net_in_thread2: Option<bool>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientNetInThreadMobile", skip_serializing_if = "Option::is_none")]
|
||||
pub client_net_in_thread_mobile: Option<bool>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientNetInThreadMobile2", skip_serializing_if = "Option::is_none")]
|
||||
pub client_net_in_thread_mobile2: Option<bool>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientNetOutThread", skip_serializing_if = "Option::is_none")]
|
||||
pub client_net_out_thread: Option<bool>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientNetOutThread2", skip_serializing_if = "Option::is_none")]
|
||||
pub client_net_out_thread2: Option<bool>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientNetOutThreadMobile", skip_serializing_if = "Option::is_none")]
|
||||
pub client_net_out_thread_mobile: Option<bool>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientNetOutThreadMobile2", skip_serializing_if = "Option::is_none")]
|
||||
pub client_net_out_thread_mobile2: Option<bool>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientQR", skip_serializing_if = "Option::is_none")]
|
||||
pub client_qr: Option<i32>,
|
||||
/// Unknown
|
||||
#[serde(rename = "clientReservedPlayerBPS")]
|
||||
pub client_reserved_player_bps: i32,
|
||||
/// Unknown
|
||||
@ -51,6 +87,9 @@ pub struct ApiConfig {
|
||||
/// VRChat's copyright-issues-related email
|
||||
#[serde(rename = "copyrightEmail")]
|
||||
pub copyright_email: String,
|
||||
/// Current version number of the Privacy Agreement
|
||||
#[serde(rename = "currentPrivacyVersion", skip_serializing_if = "Option::is_none")]
|
||||
pub current_privacy_version: Option<i32>,
|
||||
/// Current version number of the Terms of Service
|
||||
#[serde(rename = "currentTOSVersion")]
|
||||
pub current_tos_version: i32,
|
||||
@ -58,24 +97,21 @@ pub struct ApiConfig {
|
||||
pub default_avatar: String,
|
||||
#[serde(rename = "deploymentGroup")]
|
||||
pub deployment_group: models::DeploymentGroup,
|
||||
/// Version number for game development build
|
||||
#[serde(rename = "devAppVersionStandalone")]
|
||||
pub dev_app_version_standalone: String,
|
||||
/// Developer Download link
|
||||
#[serde(rename = "devDownloadLinkWindows")]
|
||||
pub dev_download_link_windows: String,
|
||||
/// Unknown
|
||||
#[serde(rename = "devLanguageCodes", skip_serializing_if = "Option::is_none")]
|
||||
pub dev_language_codes: Option<Vec<String>>,
|
||||
/// Link to download the development SDK, use downloadUrls instead
|
||||
#[serde(rename = "devSdkUrl")]
|
||||
pub dev_sdk_url: String,
|
||||
/// Version of the development SDK
|
||||
#[serde(rename = "devSdkVersion")]
|
||||
pub dev_sdk_version: String,
|
||||
/// Version number for server development build
|
||||
#[serde(rename = "devServerVersionStandalone")]
|
||||
pub dev_server_version_standalone: String,
|
||||
/// Unknown, \"dis\" maybe for disconnect?
|
||||
#[serde(rename = "dis-countdown")]
|
||||
pub dis_countdown: String,
|
||||
/// Unknown
|
||||
#[serde(rename = "disableAVProInProton", skip_serializing_if = "Option::is_none")]
|
||||
pub disable_av_pro_in_proton: Option<bool>,
|
||||
/// Toggles if copying avatars should be disabled
|
||||
#[serde(rename = "disableAvatarCopying")]
|
||||
pub disable_avatar_copying: bool,
|
||||
@ -91,6 +127,9 @@ pub struct ApiConfig {
|
||||
/// Unknown
|
||||
#[serde(rename = "disableEmail")]
|
||||
pub disable_email: bool,
|
||||
/// Unknown
|
||||
#[serde(rename = "disableCaptcha", skip_serializing_if = "Option::is_none")]
|
||||
pub disable_captcha: Option<bool>,
|
||||
/// Toggles if Analytics should be disabled.
|
||||
#[serde(rename = "disableEventStream")]
|
||||
pub disable_event_stream: bool,
|
||||
@ -129,11 +168,17 @@ pub struct ApiConfig {
|
||||
/// Array of DynamicWorldRow objects, used by the game to display the list of world rows
|
||||
#[serde(rename = "dynamicWorldRows")]
|
||||
pub dynamic_world_rows: Vec<models::DynamicContentRow>,
|
||||
/// Unknown
|
||||
#[serde(rename = "economyPauseEnd", skip_serializing_if = "Option::is_none")]
|
||||
pub economy_pause_end: Option<String>,
|
||||
/// Unknown
|
||||
#[serde(rename = "economyPauseStart", skip_serializing_if = "Option::is_none")]
|
||||
pub economy_pause_start: Option<String>,
|
||||
/// Unknown
|
||||
#[serde(rename = "economyState", skip_serializing_if = "Option::is_none")]
|
||||
pub economy_state: Option<i32>,
|
||||
#[serde(rename = "events")]
|
||||
pub events: Box<models::ApiConfigEvents>,
|
||||
/// Unknown
|
||||
#[serde(rename = "gearDemoRoomId")]
|
||||
pub gear_demo_room_id: String,
|
||||
/// WorldID be \"offline\" on User profiles if you are not friends with that user.
|
||||
#[serde(rename = "homeWorldId")]
|
||||
pub home_world_id: String,
|
||||
@ -143,36 +188,18 @@ pub struct ApiConfig {
|
||||
/// WorldID be \"offline\" on User profiles if you are not friends with that user.
|
||||
#[serde(rename = "hubWorldId")]
|
||||
pub hub_world_id: String,
|
||||
/// A list of explicitly allowed origins that worlds can request images from via the Udon's [VRCImageDownloader#DownloadImage](https://creators.vrchat.com/worlds/udon/image-loading/#downloadimage).
|
||||
#[serde(rename = "imageHostUrlList")]
|
||||
pub image_host_url_list: Vec<String>,
|
||||
/// VRChat's job application email
|
||||
#[serde(rename = "jobsEmail")]
|
||||
pub jobs_email: String,
|
||||
/// MOTD
|
||||
#[serde(rename = "messageOfTheDay")]
|
||||
pub message_of_the_day: String,
|
||||
/// VRChat's moderation related email
|
||||
#[serde(rename = "moderationEmail")]
|
||||
pub moderation_email: String,
|
||||
/// Unknown
|
||||
#[serde(rename = "moderationQueryPeriod")]
|
||||
pub moderation_query_period: i32,
|
||||
/// Used in-game to notify a user they aren't allowed to select avatars in private worlds
|
||||
#[serde(rename = "notAllowedToSelectAvatarInPrivateWorldMessage")]
|
||||
pub not_allowed_to_select_avatar_in_private_world_message: String,
|
||||
/// Extra [plugin](https://doc.photonengine.com/en-us/server/current/plugins/manual) to run in each instance
|
||||
#[serde(rename = "plugin")]
|
||||
pub plugin: String,
|
||||
/// Version number for game release build
|
||||
#[serde(rename = "releaseAppVersionStandalone")]
|
||||
pub release_app_version_standalone: String,
|
||||
/// Link to download the release SDK
|
||||
#[serde(rename = "releaseSdkUrl")]
|
||||
pub release_sdk_url: String,
|
||||
/// Version of the release SDK
|
||||
#[serde(rename = "releaseSdkVersion")]
|
||||
pub release_sdk_version: String,
|
||||
/// Version number for server release build
|
||||
#[serde(rename = "releaseServerVersionStandalone")]
|
||||
pub release_server_version_standalone: String,
|
||||
/// Link to the developer FAQ
|
||||
#[serde(rename = "sdkDeveloperFaqUrl")]
|
||||
pub sdk_developer_faq_url: String,
|
||||
@ -188,6 +215,9 @@ pub struct ApiConfig {
|
||||
/// Server name of the API server currently responding
|
||||
#[serde(rename = "serverName")]
|
||||
pub server_name: String,
|
||||
/// A list of explicitly allowed origins that worlds can request strings from via the Udon's [VRCStringDownloader.LoadUrl](https://creators.vrchat.com/worlds/udon/string-loading/#ivrcstringdownload).
|
||||
#[serde(rename = "stringHostUrlList")]
|
||||
pub string_host_url_list: Vec<String>,
|
||||
/// VRChat's support email
|
||||
#[serde(rename = "supportEmail")]
|
||||
pub support_email: String,
|
||||
@ -218,65 +248,63 @@ pub struct ApiConfig {
|
||||
/// Unknown
|
||||
#[serde(rename = "useReliableUdpForVoice")]
|
||||
pub use_reliable_udp_for_voice: bool,
|
||||
/// Unknown
|
||||
#[serde(rename = "userUpdatePeriod")]
|
||||
pub user_update_period: i32,
|
||||
/// Unknown
|
||||
#[serde(rename = "userVerificationDelay")]
|
||||
pub user_verification_delay: i32,
|
||||
/// Unknown
|
||||
#[serde(rename = "userVerificationRetry")]
|
||||
pub user_verification_retry: i32,
|
||||
/// Unknown
|
||||
#[serde(rename = "userVerificationTimeout")]
|
||||
pub user_verification_timeout: i32,
|
||||
/// Download link for game on the Steam website.
|
||||
#[serde(rename = "viveWindowsUrl")]
|
||||
pub vive_windows_url: String,
|
||||
/// List of allowed URLs that are allowed to host avatar assets
|
||||
#[serde(rename = "whiteListedAssetUrls")]
|
||||
pub white_listed_asset_urls: Vec<String>,
|
||||
/// Unknown
|
||||
#[serde(rename = "worldUpdatePeriod")]
|
||||
pub world_update_period: i32,
|
||||
/// Currently used youtube-dl.exe hash in SHA-256-delimited format
|
||||
#[serde(rename = "player-url-resolver-hash")]
|
||||
pub player_url_resolver_hash: String,
|
||||
/// Currently used youtube-dl.exe version
|
||||
#[serde(rename = "player-url-resolver-version")]
|
||||
pub player_url_resolver_version: String,
|
||||
/// Currently used youtube-dl.exe hash in SHA1-delimited format
|
||||
#[serde(rename = "player-url-resolver-sha1")]
|
||||
pub player_url_resolver_sha1: String,
|
||||
}
|
||||
|
||||
impl ApiConfig {
|
||||
pub fn new(voice_enable_degradation: bool, voice_enable_receiver_limiting: bool, address: String, announcements: Vec<models::ApiConfigAnnouncement>, app_name: String, build_version_tag: String, client_api_key: String, client_bps_ceiling: i32, client_disconnect_timeout: i32, client_reserved_player_bps: i32, client_sent_count_allowance: i32, contact_email: String, copyright_email: String, current_tos_version: i32, default_avatar: String, deployment_group: models::DeploymentGroup, dev_app_version_standalone: String, dev_download_link_windows: String, dev_sdk_url: String, dev_sdk_version: String, dev_server_version_standalone: String, dis_countdown: String, disable_avatar_copying: bool, disable_avatar_gating: bool, disable_community_labs: bool, disable_community_labs_promotion: bool, disable_email: bool, disable_event_stream: bool, disable_feedback_gating: bool, disable_frontend_builds: bool, disable_hello: bool, disable_oculus_subs: bool, disable_registration: bool, disable_steam_networking: bool, disable_two_factor_auth: bool, disable_udon: bool, disable_upgrade_account: bool, download_link_windows: String, download_urls: models::ApiConfigDownloadUrlList, dynamic_world_rows: Vec<models::DynamicContentRow>, events: models::ApiConfigEvents, gear_demo_room_id: String, home_world_id: String, homepage_redirect_target: String, hub_world_id: String, jobs_email: String, message_of_the_day: String, moderation_email: String, moderation_query_period: i32, not_allowed_to_select_avatar_in_private_world_message: String, plugin: String, release_app_version_standalone: String, release_sdk_url: String, release_sdk_version: String, release_server_version_standalone: String, sdk_developer_faq_url: String, sdk_discord_url: String, sdk_not_allowed_to_publish_message: String, sdk_unity_version: String, server_name: String, support_email: String, time_out_world_id: String, tutorial_world_id: String, update_rate_ms_maximum: i32, update_rate_ms_minimum: i32, update_rate_ms_normal: i32, update_rate_ms_udon_manual: i32, upload_analysis_percent: i32, url_list: Vec<String>, use_reliable_udp_for_voice: bool, user_update_period: i32, user_verification_delay: i32, user_verification_retry: i32, user_verification_timeout: i32, vive_windows_url: String, white_listed_asset_urls: Vec<String>, world_update_period: i32, player_url_resolver_hash: String, player_url_resolver_version: String) -> ApiConfig {
|
||||
pub fn new(voice_enable_degradation: bool, voice_enable_receiver_limiting: bool, address: String, announcements: Vec<models::ApiConfigAnnouncement>, app_name: String, available_language_codes: Vec<String>, available_languages: Vec<String>, build_version_tag: String, client_api_key: String, client_bps_ceiling: i32, client_disconnect_timeout: i32, client_reserved_player_bps: i32, client_sent_count_allowance: i32, contact_email: String, copyright_email: String, current_tos_version: i32, default_avatar: String, deployment_group: models::DeploymentGroup, dev_sdk_url: String, dev_sdk_version: String, dis_countdown: String, disable_avatar_copying: bool, disable_avatar_gating: bool, disable_community_labs: bool, disable_community_labs_promotion: bool, disable_email: bool, disable_event_stream: bool, disable_feedback_gating: bool, disable_frontend_builds: bool, disable_hello: bool, disable_oculus_subs: bool, disable_registration: bool, disable_steam_networking: bool, disable_two_factor_auth: bool, disable_udon: bool, disable_upgrade_account: bool, download_link_windows: String, download_urls: models::ApiConfigDownloadUrlList, dynamic_world_rows: Vec<models::DynamicContentRow>, events: models::ApiConfigEvents, home_world_id: String, homepage_redirect_target: String, hub_world_id: String, image_host_url_list: Vec<String>, jobs_email: String, moderation_email: String, not_allowed_to_select_avatar_in_private_world_message: String, sdk_developer_faq_url: String, sdk_discord_url: String, sdk_not_allowed_to_publish_message: String, sdk_unity_version: String, server_name: String, string_host_url_list: Vec<String>, support_email: String, time_out_world_id: String, tutorial_world_id: String, update_rate_ms_maximum: i32, update_rate_ms_minimum: i32, update_rate_ms_normal: i32, update_rate_ms_udon_manual: i32, upload_analysis_percent: i32, url_list: Vec<String>, use_reliable_udp_for_voice: bool, vive_windows_url: String, white_listed_asset_urls: Vec<String>, player_url_resolver_version: String, player_url_resolver_sha1: String) -> ApiConfig {
|
||||
ApiConfig {
|
||||
voice_enable_degradation,
|
||||
voice_enable_receiver_limiting,
|
||||
address,
|
||||
announcements,
|
||||
app_name,
|
||||
available_language_codes,
|
||||
available_languages,
|
||||
build_version_tag,
|
||||
client_api_key,
|
||||
client_bps_ceiling,
|
||||
client_disconnect_timeout,
|
||||
client_net_dispatch_thread: None,
|
||||
client_net_in_thread: None,
|
||||
client_net_in_thread2: None,
|
||||
client_net_in_thread_mobile: None,
|
||||
client_net_in_thread_mobile2: None,
|
||||
client_net_out_thread: None,
|
||||
client_net_out_thread2: None,
|
||||
client_net_out_thread_mobile: None,
|
||||
client_net_out_thread_mobile2: None,
|
||||
client_qr: None,
|
||||
client_reserved_player_bps,
|
||||
client_sent_count_allowance,
|
||||
contact_email,
|
||||
copyright_email,
|
||||
current_privacy_version: None,
|
||||
current_tos_version,
|
||||
default_avatar,
|
||||
deployment_group,
|
||||
dev_app_version_standalone,
|
||||
dev_download_link_windows,
|
||||
dev_language_codes: None,
|
||||
dev_sdk_url,
|
||||
dev_sdk_version,
|
||||
dev_server_version_standalone,
|
||||
dis_countdown,
|
||||
disable_av_pro_in_proton: None,
|
||||
disable_avatar_copying,
|
||||
disable_avatar_gating,
|
||||
disable_community_labs,
|
||||
disable_community_labs_promotion,
|
||||
disable_email,
|
||||
disable_captcha: None,
|
||||
disable_event_stream,
|
||||
disable_feedback_gating,
|
||||
disable_frontend_builds,
|
||||
@ -290,26 +318,23 @@ impl ApiConfig {
|
||||
download_link_windows,
|
||||
download_urls: Box::new(download_urls),
|
||||
dynamic_world_rows,
|
||||
economy_pause_end: None,
|
||||
economy_pause_start: None,
|
||||
economy_state: None,
|
||||
events: Box::new(events),
|
||||
gear_demo_room_id,
|
||||
home_world_id,
|
||||
homepage_redirect_target,
|
||||
hub_world_id,
|
||||
image_host_url_list,
|
||||
jobs_email,
|
||||
message_of_the_day,
|
||||
moderation_email,
|
||||
moderation_query_period,
|
||||
not_allowed_to_select_avatar_in_private_world_message,
|
||||
plugin,
|
||||
release_app_version_standalone,
|
||||
release_sdk_url,
|
||||
release_sdk_version,
|
||||
release_server_version_standalone,
|
||||
sdk_developer_faq_url,
|
||||
sdk_discord_url,
|
||||
sdk_not_allowed_to_publish_message,
|
||||
sdk_unity_version,
|
||||
server_name,
|
||||
string_host_url_list,
|
||||
support_email,
|
||||
time_out_world_id,
|
||||
tutorial_world_id,
|
||||
@ -320,15 +345,10 @@ impl ApiConfig {
|
||||
upload_analysis_percent,
|
||||
url_list,
|
||||
use_reliable_udp_for_voice,
|
||||
user_update_period,
|
||||
user_verification_delay,
|
||||
user_verification_retry,
|
||||
user_verification_timeout,
|
||||
vive_windows_url,
|
||||
white_listed_asset_urls,
|
||||
world_update_period,
|
||||
player_url_resolver_hash,
|
||||
player_url_resolver_version,
|
||||
player_url_resolver_sha1,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -16,8 +16,8 @@ pub struct FileData {
|
||||
pub category: Category,
|
||||
#[serde(rename = "fileName")]
|
||||
pub file_name: String,
|
||||
#[serde(rename = "md5")]
|
||||
pub md5: String,
|
||||
#[serde(rename = "md5", skip_serializing_if = "Option::is_none")]
|
||||
pub md5: Option<String>,
|
||||
#[serde(rename = "sizeInBytes")]
|
||||
pub size_in_bytes: i32,
|
||||
#[serde(rename = "status")]
|
||||
@ -29,11 +29,11 @@ pub struct FileData {
|
||||
}
|
||||
|
||||
impl FileData {
|
||||
pub fn new(category: Category, file_name: String, md5: String, size_in_bytes: i32, status: models::FileStatus, upload_id: String, url: String) -> FileData {
|
||||
pub fn new(category: Category, file_name: String, size_in_bytes: i32, status: models::FileStatus, upload_id: String, url: String) -> FileData {
|
||||
FileData {
|
||||
category,
|
||||
file_name,
|
||||
md5,
|
||||
md5: None,
|
||||
size_in_bytes,
|
||||
status,
|
||||
upload_id,
|
||||
|
@ -50,10 +50,17 @@ pub struct Group {
|
||||
pub join_state: Option<models::GroupJoinState>,
|
||||
#[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
|
||||
pub tags: Option<Vec<String>>,
|
||||
/// A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
|
||||
#[serde(rename = "transferTargetId", skip_serializing_if = "Option::is_none")]
|
||||
pub transfer_target_id: Option<String>,
|
||||
#[serde(rename = "galleries", skip_serializing_if = "Option::is_none")]
|
||||
pub galleries: Option<Vec<models::GroupGallery>>,
|
||||
#[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
|
||||
pub created_at: Option<String>,
|
||||
#[serde(rename = "updatedAt", skip_serializing_if = "Option::is_none")]
|
||||
pub updated_at: Option<String>,
|
||||
#[serde(rename = "lastPostCreatedAt", skip_serializing_if = "Option::is_none")]
|
||||
pub last_post_created_at: Option<String>,
|
||||
#[serde(rename = "onlineMemberCount", skip_serializing_if = "Option::is_none")]
|
||||
pub online_member_count: Option<i32>,
|
||||
#[serde(rename = "membershipStatus", skip_serializing_if = "Option::is_none")]
|
||||
@ -87,8 +94,11 @@ impl Group {
|
||||
is_verified: None,
|
||||
join_state: None,
|
||||
tags: None,
|
||||
transfer_target_id: None,
|
||||
galleries: None,
|
||||
created_at: None,
|
||||
updated_at: None,
|
||||
last_post_created_at: None,
|
||||
online_member_count: None,
|
||||
membership_status: None,
|
||||
my_member: None,
|
||||
|
@ -20,6 +20,13 @@ pub struct GroupMyMember {
|
||||
pub user_id: Option<String>,
|
||||
#[serde(rename = "roleIds", skip_serializing_if = "Option::is_none")]
|
||||
pub role_ids: Option<Vec<String>>,
|
||||
#[serde(rename = "acceptedByDisplayName", skip_serializing_if = "Option::is_none")]
|
||||
pub accepted_by_display_name: Option<String>,
|
||||
/// A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
|
||||
#[serde(rename = "acceptedById", skip_serializing_if = "Option::is_none")]
|
||||
pub accepted_by_id: Option<String>,
|
||||
#[serde(rename = "createdAt", skip_serializing_if = "Option::is_none")]
|
||||
pub created_at: Option<String>,
|
||||
#[serde(rename = "managerNotes", skip_serializing_if = "Option::is_none")]
|
||||
pub manager_notes: Option<String>,
|
||||
#[serde(rename = "membershipStatus", skip_serializing_if = "Option::is_none")]
|
||||
@ -36,6 +43,12 @@ pub struct GroupMyMember {
|
||||
pub banned_at: Option<Option<String>>,
|
||||
#[serde(rename = "has2FA", skip_serializing_if = "Option::is_none")]
|
||||
pub has2_fa: Option<bool>,
|
||||
#[serde(rename = "hasJoinedFromPurchase", skip_serializing_if = "Option::is_none")]
|
||||
pub has_joined_from_purchase: Option<bool>,
|
||||
#[serde(rename = "lastPostReadAt", skip_serializing_if = "Option::is_none")]
|
||||
pub last_post_read_at: Option<String>,
|
||||
#[serde(rename = "mRoleIds", skip_serializing_if = "Option::is_none")]
|
||||
pub m_role_ids: Option<Vec<String>>,
|
||||
#[serde(rename = "permissions", skip_serializing_if = "Option::is_none")]
|
||||
pub permissions: Option<Vec<String>>,
|
||||
}
|
||||
@ -47,6 +60,9 @@ impl GroupMyMember {
|
||||
group_id: None,
|
||||
user_id: None,
|
||||
role_ids: None,
|
||||
accepted_by_display_name: None,
|
||||
accepted_by_id: None,
|
||||
created_at: None,
|
||||
manager_notes: None,
|
||||
membership_status: None,
|
||||
is_subscribed_to_announcements: None,
|
||||
@ -55,6 +71,9 @@ impl GroupMyMember {
|
||||
joined_at: None,
|
||||
banned_at: None,
|
||||
has2_fa: None,
|
||||
has_joined_from_purchase: None,
|
||||
last_post_read_at: None,
|
||||
m_role_ids: None,
|
||||
permissions: None,
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,8 @@ use serde::{Deserialize, Serialize};
|
||||
pub struct Permission {
|
||||
#[serde(rename = "id")]
|
||||
pub id: String,
|
||||
#[serde(rename = "ownerDisplayName")]
|
||||
pub owner_display_name: String,
|
||||
#[serde(rename = "name")]
|
||||
pub name: String,
|
||||
/// A users unique ID, usually in the form of `usr_c1644b5b-3ca4-45b4-97c6-a2a0de70d469`. Legacy players can have old IDs in the form of `8JoV9XEdpo`. The ID can never be changed.
|
||||
@ -24,9 +26,10 @@ pub struct Permission {
|
||||
}
|
||||
|
||||
impl Permission {
|
||||
pub fn new(id: String, name: String, owner_id: String) -> Permission {
|
||||
pub fn new(id: String, owner_display_name: String, name: String, owner_id: String) -> Permission {
|
||||
Permission {
|
||||
id,
|
||||
owner_display_name,
|
||||
name,
|
||||
owner_id,
|
||||
data: None,
|
||||
|
@ -9,13 +9,15 @@
|
||||
use crate::models;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
/// TransactionAgreement :
|
||||
/// TransactionAgreement : Represents a single Transaction, which is likely between VRChat and Steam.
|
||||
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
|
||||
pub struct TransactionAgreement {
|
||||
#[serde(rename = "agreementId")]
|
||||
pub agreement_id: String,
|
||||
#[serde(rename = "itemId")]
|
||||
pub item_id: f64,
|
||||
#[serde(rename = "agreement")]
|
||||
pub agreement: String,
|
||||
/// This is NOT TransactionStatus, but whatever Steam return.
|
||||
#[serde(rename = "status")]
|
||||
pub status: String,
|
||||
@ -50,10 +52,12 @@ pub struct TransactionAgreement {
|
||||
}
|
||||
|
||||
impl TransactionAgreement {
|
||||
pub fn new(agreement_id: String, item_id: f64, status: String, period: String, frequency: f64, billing_type: String, start_date: String, end_date: String, recurring_amt: f64, currency: String, time_created: String, next_payment: String, last_payment: String, last_amount: f64, last_amount_vat: f64, outstanding: f64, failed_attempts: f64) -> TransactionAgreement {
|
||||
/// Represents a single Transaction, which is likely between VRChat and Steam.
|
||||
pub fn new(agreement_id: String, item_id: f64, agreement: String, status: String, period: String, frequency: f64, billing_type: String, start_date: String, end_date: String, recurring_amt: f64, currency: String, time_created: String, next_payment: String, last_payment: String, last_amount: f64, last_amount_vat: f64, outstanding: f64, failed_attempts: f64) -> TransactionAgreement {
|
||||
TransactionAgreement {
|
||||
agreement_id,
|
||||
item_id,
|
||||
agreement,
|
||||
status,
|
||||
period,
|
||||
frequency,
|
||||
|
@ -33,6 +33,8 @@ pub struct UserSubscription {
|
||||
pub active: bool,
|
||||
#[serde(rename = "status")]
|
||||
pub status: models::TransactionStatus,
|
||||
#[serde(rename = "starts", skip_serializing_if = "Option::is_none")]
|
||||
pub starts: Option<String>,
|
||||
#[serde(rename = "expires")]
|
||||
pub expires: String,
|
||||
#[serde(rename = "created_at")]
|
||||
@ -58,6 +60,7 @@ impl UserSubscription {
|
||||
tier,
|
||||
active,
|
||||
status,
|
||||
starts: None,
|
||||
expires,
|
||||
created_at,
|
||||
updated_at,
|
||||
|
Reference in New Issue
Block a user