1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#![cfg(feature = "serialize")]
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize)]
pub struct AccountInfo {
#[serde(rename = "SendPasswordUrl")]
pub send_password_url: String,
#[serde(rename = "SignInUrl")]
pub sign_in_url: String,
#[serde(rename = "SignUpUrl")]
pub sign_up_url: String,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct GameInfo {
#[serde(rename = "AuthenticationUrl")]
pub authentication_url: String,
#[serde(rename = "ClientUrl")]
pub client_url: String,
#[serde(rename = "CrashLogUrl")]
pub crash_log_url: String,
#[serde(rename = "LauncherUrl")]
pub launcher_url: String,
#[serde(rename = "LauncherUrl2")]
pub launcher_url2: String,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct PatcherInfo {
#[serde(rename = "CiderUrl")]
pub cider_url: String,
#[serde(rename = "ConfigUrl")]
pub config_url: String,
#[serde(rename = "InstallUrl")]
pub install_url: String,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct CdnInfo {
#[serde(rename = "CpCode")]
pub cp_code: i32,
#[serde(rename = "PatcherDir")]
pub patcher_dir: String,
#[serde(rename = "PatcherUrl")]
pub patcher_url: String,
#[serde(rename = "Secure")]
pub secure: bool,
#[serde(rename = "UseDlm")]
pub use_dlm: bool,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Server {
#[serde(rename = "AuthenticationIP")]
pub authentication_ip: String,
#[serde(rename = "CdnInfo")]
pub cdn_info: CdnInfo,
#[serde(rename = "CrispInfo")]
pub crisp_info: String,
#[serde(rename = "DataCenterId")]
pub data_center_id: u32,
#[serde(rename = "GameApiUrl")]
pub game_api_url: String,
#[serde(rename = "GameContentApiUrl")]
pub game_content_api_url: String,
#[serde(rename = "Language")]
pub language: String,
#[serde(rename = "LogLevel")]
pub log_level: i32,
#[serde(rename = "MetricsDataServiceUrl")]
pub metrics_data_service_url: String,
#[serde(rename = "Name")]
pub name: String,
#[serde(rename = "Online")]
pub online: bool,
#[serde(rename = "Suggested")]
pub suggested: bool,
#[serde(rename = "UGCControllerServicesUrl")]
pub ugc_controller_services_url: String,
#[serde(rename = "UgcCdnInfo")]
pub ugc_cdn_info: CdnInfo,
#[serde(rename = "Use3DServices")]
pub use3d_services: bool,
#[serde(rename = "Version")]
pub version: String,
#[serde(rename = "VersionDirType")]
pub version_dir_type: String,
#[serde(rename = "WebApiUrl")]
pub web_api_url: String,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Servers {
#[serde(rename = "Server")]
pub servers: Vec<Server>,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct Environment {
#[serde(rename = "AccountInfo")]
pub account_info: AccountInfo,
#[serde(rename = "GameInfo")]
pub game_info: GameInfo,
#[serde(rename = "PatcherInfo")]
pub patcher_info: PatcherInfo,
#[serde(rename = "Servers")]
pub servers: Servers,
}