use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct ApiConfig {
#[serde(rename = "CampaignStatus")]
pub campaign_status: String,
#[serde(rename = "DisableBackgroundPreloads")]
pub disable_background_preloads: bool,
#[serde(rename = "LocationGiftingNonSubPrioEnabled")]
pub location_gifting_non_sub_prio_enabled: bool,
#[serde(rename = "VoiceEnableDegradation")]
pub voice_enable_degradation: bool,
#[serde(rename = "VoiceEnableReceiverLimiting")]
pub voice_enable_receiver_limiting: bool,
#[serde(rename = "accessLogsUrls")]
pub access_logs_urls: models::ApiConfigAccessLogsUrls,
#[serde(rename = "address")]
pub address: String,
#[serde(rename = "ageVerificationInviteVisible")]
pub age_verification_invite_visible: bool,
#[serde(rename = "ageVerificationP")]
pub age_verification_p: bool,
#[serde(rename = "ageVerificationStatusVisible")]
pub age_verification_status_visible: bool,
#[serde(rename = "analysisMaxRetries")]
pub analysis_max_retries: i32,
#[serde(rename = "analysisRetryInterval")]
pub analysis_retry_interval: i32,
#[serde(rename = "analyticsSegment_NewUI_PctOfUsers")]
pub analytics_segment_new_ui_pct_of_users: i32,
#[serde(rename = "analyticsSegment_NewUI_Salt")]
pub analytics_segment_new_ui_salt: String,
#[serde(rename = "announcements")]
pub announcements: Vec<models::ApiConfigAnnouncement>,
#[serde(rename = "audioConfig", skip_serializing_if = "Option::is_none")]
pub audio_config: Option<models::ApiConfigAudioConfig>,
#[serde(rename = "availableLanguageCodes")]
pub available_language_codes: Vec<String>,
#[serde(rename = "availableLanguages")]
pub available_languages: Vec<String>,
#[serde(rename = "avatarPerfLimiter")]
pub avatar_perf_limiter: models::ApiConfigAvatarPerfLimiter,
#[serde(rename = "chatboxLogBufferSeconds")]
pub chatbox_log_buffer_seconds: i32,
#[serde(rename = "clientApiKey")]
pub client_api_key: String,
#[serde(rename = "clientBPSCeiling")]
pub client_bps_ceiling: i32,
#[serde(rename = "clientDisconnectTimeout")]
pub client_disconnect_timeout: i32,
#[serde(
rename = "clientNetDispatchThread",
skip_serializing_if = "Option::is_none"
)]
pub client_net_dispatch_thread: Option<bool>,
#[serde(rename = "clientNetDispatchThreadMobile")]
pub client_net_dispatch_thread_mobile: bool,
#[serde(rename = "clientNetInThread", skip_serializing_if = "Option::is_none")]
pub client_net_in_thread: Option<bool>,
#[serde(rename = "clientNetInThread2", skip_serializing_if = "Option::is_none")]
pub client_net_in_thread2: Option<bool>,
#[serde(
rename = "clientNetInThreadMobile",
skip_serializing_if = "Option::is_none"
)]
pub client_net_in_thread_mobile: Option<bool>,
#[serde(
rename = "clientNetInThreadMobile2",
skip_serializing_if = "Option::is_none"
)]
pub client_net_in_thread_mobile2: Option<bool>,
#[serde(rename = "clientNetOutThread", skip_serializing_if = "Option::is_none")]
pub client_net_out_thread: Option<bool>,
#[serde(
rename = "clientNetOutThread2",
skip_serializing_if = "Option::is_none"
)]
pub client_net_out_thread2: Option<bool>,
#[serde(
rename = "clientNetOutThreadMobile",
skip_serializing_if = "Option::is_none"
)]
pub client_net_out_thread_mobile: Option<bool>,
#[serde(
rename = "clientNetOutThreadMobile2",
skip_serializing_if = "Option::is_none"
)]
pub client_net_out_thread_mobile2: Option<bool>,
#[serde(rename = "clientQR", skip_serializing_if = "Option::is_none")]
pub client_qr: Option<i32>,
#[serde(rename = "clientReservedPlayerBPS")]
pub client_reserved_player_bps: i32,
#[serde(rename = "clientSentCountAllowance")]
pub client_sent_count_allowance: i32,
#[serde(rename = "constants")]
pub constants: models::ApiConfigConstants,
#[serde(rename = "contactEmail")]
pub contact_email: String,
#[serde(rename = "copyrightEmail")]
pub copyright_email: String,
#[serde(rename = "copyrightFormUrl")]
pub copyright_form_url: String,
#[serde(rename = "currentPrivacyVersion")]
pub current_privacy_version: i32,
#[serde(rename = "currentTOSVersion")]
pub current_tos_version: i32,
#[serde(rename = "defaultAvatar")]
pub default_avatar: String,
#[serde(rename = "defaultStickerSet")]
pub default_sticker_set: String,
#[serde(rename = "devLanguageCodes", skip_serializing_if = "Option::is_none")]
pub dev_language_codes: Option<Vec<String>>,
#[serde(rename = "devSdkUrl")]
pub dev_sdk_url: String,
#[serde(rename = "devSdkVersion")]
pub dev_sdk_version: String,
#[serde(rename = "dis-countdown")]
pub dis_countdown: String,
#[serde(
rename = "disableAVProInProton",
skip_serializing_if = "Option::is_none"
)]
pub disable_av_pro_in_proton: Option<bool>,
#[serde(rename = "disableAvatarCopying")]
pub disable_avatar_copying: bool,
#[serde(rename = "disableAvatarGating")]
pub disable_avatar_gating: bool,
#[serde(rename = "disableCaptcha", skip_serializing_if = "Option::is_none")]
pub disable_captcha: Option<bool>,
#[serde(rename = "disableCommunityLabs")]
pub disable_community_labs: bool,
#[serde(rename = "disableCommunityLabsPromotion")]
pub disable_community_labs_promotion: bool,
#[serde(rename = "disableEmail")]
pub disable_email: bool,
#[serde(rename = "disableEventStream")]
pub disable_event_stream: bool,
#[serde(rename = "disableFeedbackGating")]
pub disable_feedback_gating: bool,
#[serde(rename = "disableFrontendBuilds")]
pub disable_frontend_builds: bool,
#[serde(rename = "disableGiftDrops")]
pub disable_gift_drops: bool,
#[serde(rename = "disableHello")]
pub disable_hello: bool,
#[serde(rename = "disableOculusSubs")]
pub disable_oculus_subs: bool,
#[serde(rename = "disableRegistration")]
pub disable_registration: bool,
#[serde(rename = "disableSteamNetworking")]
pub disable_steam_networking: bool,
#[serde(rename = "disableTwoFactorAuth")]
pub disable_two_factor_auth: bool,
#[serde(rename = "disableUdon")]
pub disable_udon: bool,
#[serde(rename = "disableUpgradeAccount")]
pub disable_upgrade_account: bool,
#[serde(rename = "downloadLinkWindows")]
pub download_link_windows: String,
#[serde(rename = "downloadUrls")]
pub download_urls: models::ApiConfigDownloadUrlList,
#[serde(rename = "dynamicWorldRows")]
pub dynamic_world_rows: Vec<models::DynamicContentRow>,
#[serde(rename = "economyLedgerBackfill")]
pub economy_ledger_backfill: bool,
#[serde(rename = "economyLedgerMigrationStop")]
pub economy_ledger_migration_stop: String,
#[serde(rename = "economyLedgerMode")]
pub economy_ledger_mode: String,
#[serde(rename = "economyPauseEnd")]
pub economy_pause_end: String,
#[serde(rename = "economyPauseStart")]
pub economy_pause_start: String,
#[serde(rename = "economyPurchaseRepairEnabled")]
pub economy_purchase_repair_enabled: bool,
#[serde(rename = "economyState")]
pub economy_state: i32,
#[serde(rename = "events")]
pub events: models::ApiConfigEvents,
#[serde(rename = "forceUseLatestWorld")]
pub force_use_latest_world: bool,
#[serde(rename = "giftDisplayType")]
pub gift_display_type: String,
#[serde(rename = "googleApiClientId")]
pub google_api_client_id: String,
#[serde(rename = "homeWorldId")]
pub home_world_id: String,
#[serde(rename = "homepageRedirectTarget")]
pub homepage_redirect_target: String,
#[serde(rename = "hubWorldId")]
pub hub_world_id: String,
#[serde(rename = "imageHostUrlList")]
pub image_host_url_list: Vec<String>,
#[serde(rename = "iosAppVersion")]
pub ios_app_version: Vec<String>,
#[serde(rename = "iosVersion")]
pub ios_version: models::ApiConfigIosVersion,
#[serde(rename = "jobsEmail")]
pub jobs_email: String,
#[serde(rename = "maxUserEmoji")]
pub max_user_emoji: i32,
#[serde(rename = "maxUserStickers")]
pub max_user_stickers: i32,
#[serde(rename = "minSupportedClientBuildNumber")]
pub min_supported_client_build_number: models::ApiConfigMinSupportedClientBuildNumber,
#[serde(rename = "minimumUnityVersionForUploads")]
pub minimum_unity_version_for_uploads: String,
#[serde(rename = "moderationEmail")]
pub moderation_email: String,
#[serde(rename = "notAllowedToSelectAvatarInPrivateWorldMessage")]
pub not_allowed_to_select_avatar_in_private_world_message: String,
#[serde(rename = "offlineAnalysis")]
pub offline_analysis: models::ApiConfigOfflineAnalysis,
#[serde(rename = "photonNameserverOverrides")]
pub photon_nameserver_overrides: Vec<String>,
#[serde(rename = "photonPublicKeys")]
pub photon_public_keys: Vec<String>,
#[serde(rename = "player-url-resolver-sha1")]
pub player_url_resolver_sha1: String,
#[serde(rename = "player-url-resolver-version")]
pub player_url_resolver_version: String,
#[serde(rename = "publicKey")]
pub public_key: String,
#[serde(rename = "reportCategories")]
pub report_categories: std::collections::HashMap<String, models::ReportCategory>,
#[serde(rename = "reportFormUrl")]
pub report_form_url: String,
#[serde(rename = "reportOptions")]
pub report_options:
std::collections::HashMap<String, std::collections::HashMap<String, Vec<String>>>,
#[serde(rename = "reportReasons")]
pub report_reasons: std::collections::HashMap<String, models::ReportReason>,
#[serde(rename = "requireAgeVerificationBetaTag")]
pub require_age_verification_beta_tag: bool,
#[serde(rename = "sdkDeveloperFaqUrl")]
pub sdk_developer_faq_url: String,
#[serde(rename = "sdkDiscordUrl")]
pub sdk_discord_url: String,
#[serde(rename = "sdkNotAllowedToPublishMessage")]
pub sdk_not_allowed_to_publish_message: String,
#[serde(rename = "sdkUnityVersion")]
pub sdk_unity_version: String,
#[serde(rename = "stringHostUrlList")]
pub string_host_url_list: Vec<String>,
#[serde(rename = "supportEmail")]
pub support_email: String,
#[serde(rename = "supportFormUrl")]
pub support_form_url: String,
#[serde(rename = "timeOutWorldId")]
pub time_out_world_id: String,
#[serde(rename = "timekeeping")]
pub timekeeping: bool,
#[serde(rename = "tutorialWorldId")]
pub tutorial_world_id: String,
#[serde(rename = "updateRateMsMaximum")]
pub update_rate_ms_maximum: i32,
#[serde(rename = "updateRateMsMinimum")]
pub update_rate_ms_minimum: i32,
#[serde(rename = "updateRateMsNormal")]
pub update_rate_ms_normal: i32,
#[serde(rename = "updateRateMsUdonManual")]
pub update_rate_ms_udon_manual: i32,
#[serde(rename = "uploadAnalysisPercent")]
pub upload_analysis_percent: i32,
#[serde(rename = "urlList")]
pub url_list: Vec<String>,
#[serde(rename = "useReliableUdpForVoice")]
pub use_reliable_udp_for_voice: bool,
#[serde(rename = "viveWindowsUrl")]
pub vive_windows_url: String,
#[serde(rename = "websocketMaxFriendsRefreshDelay")]
pub websocket_max_friends_refresh_delay: i32,
#[serde(rename = "websocketQuickReconnectTime")]
pub websocket_quick_reconnect_time: i32,
#[serde(rename = "websocketReconnectMaxDelay")]
pub websocket_reconnect_max_delay: i32,
#[serde(rename = "whiteListedAssetUrls")]
pub white_listed_asset_urls: Vec<String>,
}
impl ApiConfig {
pub fn new(
campaign_status: String,
disable_background_preloads: bool,
location_gifting_non_sub_prio_enabled: bool,
voice_enable_degradation: bool,
voice_enable_receiver_limiting: bool,
access_logs_urls: models::ApiConfigAccessLogsUrls,
address: String,
age_verification_invite_visible: bool,
age_verification_p: bool,
age_verification_status_visible: bool,
analysis_max_retries: i32,
analysis_retry_interval: i32,
analytics_segment_new_ui_pct_of_users: i32,
analytics_segment_new_ui_salt: String,
announcements: Vec<models::ApiConfigAnnouncement>,
available_language_codes: Vec<String>,
available_languages: Vec<String>,
avatar_perf_limiter: models::ApiConfigAvatarPerfLimiter,
chatbox_log_buffer_seconds: i32,
client_api_key: String,
client_bps_ceiling: i32,
client_disconnect_timeout: i32,
client_net_dispatch_thread_mobile: bool,
client_reserved_player_bps: i32,
client_sent_count_allowance: i32,
constants: models::ApiConfigConstants,
contact_email: String,
copyright_email: String,
copyright_form_url: String,
current_privacy_version: i32,
current_tos_version: i32,
default_avatar: String,
default_sticker_set: String,
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_gift_drops: 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>,
economy_ledger_backfill: bool,
economy_ledger_migration_stop: String,
economy_ledger_mode: String,
economy_pause_end: String,
economy_pause_start: String,
economy_purchase_repair_enabled: bool,
economy_state: i32,
events: models::ApiConfigEvents,
force_use_latest_world: bool,
gift_display_type: String,
google_api_client_id: String,
home_world_id: String,
homepage_redirect_target: String,
hub_world_id: String,
image_host_url_list: Vec<String>,
ios_app_version: Vec<String>,
ios_version: models::ApiConfigIosVersion,
jobs_email: String,
max_user_emoji: i32,
max_user_stickers: i32,
min_supported_client_build_number: models::ApiConfigMinSupportedClientBuildNumber,
minimum_unity_version_for_uploads: String,
moderation_email: String,
not_allowed_to_select_avatar_in_private_world_message: String,
offline_analysis: models::ApiConfigOfflineAnalysis,
photon_nameserver_overrides: Vec<String>,
photon_public_keys: Vec<String>,
player_url_resolver_sha1: String,
player_url_resolver_version: String,
public_key: String,
report_categories: std::collections::HashMap<String, models::ReportCategory>,
report_form_url: String,
report_options: std::collections::HashMap<
String,
std::collections::HashMap<String, Vec<String>>,
>,
report_reasons: std::collections::HashMap<String, models::ReportReason>,
require_age_verification_beta_tag: bool,
sdk_developer_faq_url: String,
sdk_discord_url: String,
sdk_not_allowed_to_publish_message: String,
sdk_unity_version: String,
string_host_url_list: Vec<String>,
support_email: String,
support_form_url: String,
time_out_world_id: String,
timekeeping: bool,
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,
websocket_max_friends_refresh_delay: i32,
websocket_quick_reconnect_time: i32,
websocket_reconnect_max_delay: i32,
white_listed_asset_urls: Vec<String>,
) -> ApiConfig {
ApiConfig {
campaign_status,
disable_background_preloads,
location_gifting_non_sub_prio_enabled,
voice_enable_degradation,
voice_enable_receiver_limiting,
access_logs_urls,
address,
age_verification_invite_visible,
age_verification_p,
age_verification_status_visible,
analysis_max_retries,
analysis_retry_interval,
analytics_segment_new_ui_pct_of_users,
analytics_segment_new_ui_salt,
announcements,
audio_config: None,
available_language_codes,
available_languages,
avatar_perf_limiter,
chatbox_log_buffer_seconds,
client_api_key,
client_bps_ceiling,
client_disconnect_timeout,
client_net_dispatch_thread: None,
client_net_dispatch_thread_mobile,
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,
constants,
contact_email,
copyright_email,
copyright_form_url,
current_privacy_version,
current_tos_version,
default_avatar,
default_sticker_set,
dev_language_codes: None,
dev_sdk_url,
dev_sdk_version,
dis_countdown,
disable_av_pro_in_proton: None,
disable_avatar_copying,
disable_avatar_gating,
disable_captcha: None,
disable_community_labs,
disable_community_labs_promotion,
disable_email,
disable_event_stream,
disable_feedback_gating,
disable_frontend_builds,
disable_gift_drops,
disable_hello,
disable_oculus_subs,
disable_registration,
disable_steam_networking,
disable_two_factor_auth,
disable_udon,
disable_upgrade_account,
download_link_windows,
download_urls,
dynamic_world_rows,
economy_ledger_backfill,
economy_ledger_migration_stop,
economy_ledger_mode,
economy_pause_end,
economy_pause_start,
economy_purchase_repair_enabled,
economy_state,
events,
force_use_latest_world,
gift_display_type,
google_api_client_id,
home_world_id,
homepage_redirect_target,
hub_world_id,
image_host_url_list,
ios_app_version,
ios_version,
jobs_email,
max_user_emoji,
max_user_stickers,
min_supported_client_build_number,
minimum_unity_version_for_uploads,
moderation_email,
not_allowed_to_select_avatar_in_private_world_message,
offline_analysis,
photon_nameserver_overrides,
photon_public_keys,
player_url_resolver_sha1,
player_url_resolver_version,
public_key,
report_categories,
report_form_url,
report_options,
report_reasons,
require_age_verification_beta_tag,
sdk_developer_faq_url,
sdk_discord_url,
sdk_not_allowed_to_publish_message,
sdk_unity_version,
string_host_url_list,
support_email,
support_form_url,
time_out_world_id,
timekeeping,
tutorial_world_id,
update_rate_ms_maximum,
update_rate_ms_minimum,
update_rate_ms_normal,
update_rate_ms_udon_manual,
upload_analysis_percent,
url_list,
use_reliable_udp_for_voice,
vive_windows_url,
websocket_max_friends_refresh_delay,
websocket_quick_reconnect_time,
websocket_reconnect_max_delay,
white_listed_asset_urls,
}
}
}