libwolfssl ported
[henge/webcc.git] / src / proto / steammessages.proto
1 import "google/protobuf/descriptor.proto";
2
3 option optimize_for = SPEED;
4 option cc_generic_services = false;
5
6 extend .google.protobuf.FieldOptions {
7 optional bool key_field = 60000 [default = false];
8 }
9
10 extend .google.protobuf.MessageOptions {
11 optional int32 msgpool_soft_limit = 60000 [default = 32];
12 optional int32 msgpool_hard_limit = 60001 [default = 384];
13 }
14
15 enum GCProtoBufMsgSrc {
16 GCProtoBufMsgSrc_Unspecified = 0;
17 GCProtoBufMsgSrc_FromSystem = 1;
18 GCProtoBufMsgSrc_FromSteamID = 2;
19 GCProtoBufMsgSrc_FromGC = 3;
20 GCProtoBufMsgSrc_ReplySystem = 4;
21 }
22
23 message CMsgProtoBufHeader {
24 option (msgpool_soft_limit) = 256;
25 option (msgpool_hard_limit) = 1024;
26 optional fixed64 client_steam_id = 1;
27 optional int32 client_session_id = 2;
28 optional uint32 source_app_id = 3;
29 optional fixed64 job_id_source = 10 [default = 18446744073709551615];
30 optional fixed64 job_id_target = 11 [default = 18446744073709551615];
31 optional string target_job_name = 12;
32 optional int32 eresult = 13 [default = 2];
33 optional string error_message = 14;
34 optional .GCProtoBufMsgSrc gc_msg_src = 200 [default = GCProtoBufMsgSrc_Unspecified];
35 optional uint32 gc_dir_index_source = 201;
36 }
37
38 message CMsgWebAPIKey {
39 optional uint32 status = 1 [default = 255];
40 optional uint32 account_id = 2 [default = 0];
41 optional uint32 publisher_group_id = 3 [default = 0];
42 optional uint32 key_id = 4;
43 optional string domain = 5;
44 }
45
46 message CMsgHttpRequest {
47 message RequestHeader {
48 optional string name = 1;
49 optional string value = 2;
50 }
51
52 message QueryParam {
53 optional string name = 1;
54 optional bytes value = 2;
55 }
56
57 optional uint32 request_method = 1;
58 optional string hostname = 2;
59 optional string url = 3;
60 repeated .CMsgHttpRequest.RequestHeader headers = 4;
61 repeated .CMsgHttpRequest.QueryParam get_params = 5;
62 repeated .CMsgHttpRequest.QueryParam post_params = 6;
63 optional bytes body = 7;
64 optional uint32 absolute_timeout = 8;
65 }
66
67 message CMsgWebAPIRequest {
68 optional string UNUSED_job_name = 1;
69 optional string interface_name = 2;
70 optional string method_name = 3;
71 optional uint32 version = 4;
72 optional .CMsgWebAPIKey api_key = 5;
73 optional .CMsgHttpRequest request = 6;
74 optional uint32 routing_app_id = 7;
75 }
76
77 message CMsgHttpResponse {
78 message ResponseHeader {
79 optional string name = 1;
80 optional string value = 2;
81 }
82
83 optional uint32 status_code = 1;
84 repeated .CMsgHttpResponse.ResponseHeader headers = 2;
85 optional bytes body = 3;
86 }
87
88 message CMsgAMFindAccounts {
89 optional uint32 search_type = 1;
90 optional string search_string = 2;
91 }
92
93 message CMsgAMFindAccountsResponse {
94 repeated fixed64 steam_id = 1;
95 }
96
97 message CMsgNotifyWatchdog {
98 optional uint32 source = 1;
99 optional uint32 alert_type = 2;
100 optional uint32 alert_destination = 3;
101 optional bool critical = 4;
102 optional uint32 time = 5;
103 optional uint32 appid = 6;
104 optional string text = 7;
105 }
106
107 message CMsgAMGetLicenses {
108 optional fixed64 steamid = 1;
109 }
110
111 message CMsgPackageLicense {
112 optional uint32 package_id = 1;
113 optional uint32 time_created = 2;
114 optional uint32 owner_id = 3;
115 }
116
117 message CMsgAMGetLicensesResponse {
118 repeated .CMsgPackageLicense license = 1;
119 optional uint32 result = 2;
120 }
121
122 message CMsgAMGetUserGameStats {
123 optional fixed64 steam_id = 1;
124 optional fixed64 game_id = 2;
125 repeated uint32 stats = 3;
126 }
127
128 message CMsgAMGetUserGameStatsResponse {
129 message Stats {
130 optional uint32 stat_id = 1;
131 optional uint32 stat_value = 2;
132 }
133
134 message Achievement_Blocks {
135 optional uint32 achievement_id = 1;
136 optional uint32 achievement_bit_id = 2;
137 optional fixed32 unlock_time = 3;
138 }
139
140 optional fixed64 steam_id = 1;
141 optional fixed64 game_id = 2;
142 optional int32 eresult = 3 [default = 2];
143 repeated .CMsgAMGetUserGameStatsResponse.Stats stats = 4;
144 repeated .CMsgAMGetUserGameStatsResponse.Achievement_Blocks achievement_blocks = 5;
145 }
146
147 message CMsgGCGetCommandList {
148 optional uint32 app_id = 1;
149 optional string command_prefix = 2;
150 }
151
152 message CMsgGCGetCommandListResponse {
153 repeated string command_name = 1;
154 }
155
156 message CGCMsgMemCachedGet {
157 repeated string keys = 1;
158 }
159
160 message CGCMsgMemCachedGetResponse {
161 message ValueTag {
162 optional bool found = 1;
163 optional bytes value = 2;
164 }
165
166 repeated .CGCMsgMemCachedGetResponse.ValueTag values = 1;
167 }
168
169 message CGCMsgMemCachedSet {
170 message KeyPair {
171 optional string name = 1;
172 optional bytes value = 2;
173 }
174
175 repeated .CGCMsgMemCachedSet.KeyPair keys = 1;
176 }
177
178 message CGCMsgMemCachedDelete {
179 repeated string keys = 1;
180 }
181
182 message CGCMsgMemCachedStats {
183 }
184
185 message CGCMsgMemCachedStatsResponse {
186 optional uint64 curr_connections = 1;
187 optional uint64 cmd_get = 2;
188 optional uint64 cmd_set = 3;
189 optional uint64 cmd_flush = 4;
190 optional uint64 get_hits = 5;
191 optional uint64 get_misses = 6;
192 optional uint64 delete_hits = 7;
193 optional uint64 delete_misses = 8;
194 optional uint64 bytes_read = 9;
195 optional uint64 bytes_written = 10;
196 optional uint64 limit_maxbytes = 11;
197 optional uint64 curr_items = 12;
198 optional uint64 evictions = 13;
199 optional uint64 bytes = 14;
200 }
201
202 message CGCMsgSQLStats {
203 optional uint32 schema_catalog = 1;
204 }
205
206 message CGCMsgSQLStatsResponse {
207 optional uint32 threads = 1;
208 optional uint32 threads_connected = 2;
209 optional uint32 threads_active = 3;
210 optional uint32 operations_submitted = 4;
211 optional uint32 prepared_statements_executed = 5;
212 optional uint32 non_prepared_statements_executed = 6;
213 optional uint32 deadlock_retries = 7;
214 optional uint32 operations_timed_out_in_queue = 8;
215 optional uint32 errors = 9;
216 }
217
218 message CMsgAMAddFreeLicense {
219 optional fixed64 steamid = 1;
220 optional uint32 ip_public = 2;
221 optional uint32 packageid = 3;
222 optional string store_country_code = 4;
223 }
224
225 message CMsgAMAddFreeLicenseResponse {
226 optional int32 eresult = 1 [default = 2];
227 optional int32 purchase_result_detail = 2;
228 optional fixed64 transid = 3;
229 }
230
231 message CGCMsgGetIPLocation {
232 repeated fixed32 ips = 1;
233 }
234
235 message CIPLocationInfo {
236 optional uint32 ip = 1;
237 optional float latitude = 2;
238 optional float longitude = 3;
239 optional string country = 4;
240 optional string state = 5;
241 optional string city = 6;
242 }
243
244 message CGCMsgGetIPLocationResponse {
245 repeated .CIPLocationInfo infos = 1;
246 }
247
248 message CGCMsgSystemStatsSchema {
249 optional uint32 gc_app_id = 1;
250 optional bytes schema_kv = 2;
251 }
252
253 message CGCMsgGetSystemStats {
254 }
255
256 message CGCMsgGetSystemStatsResponse {
257 optional uint32 gc_app_id = 1;
258 optional bytes stats_kv = 2;
259 optional uint32 active_jobs = 3;
260 optional uint32 yielding_jobs = 4;
261 optional uint32 user_sessions = 5;
262 optional uint32 game_server_sessions = 6;
263 optional uint32 socaches = 7;
264 optional uint32 socaches_to_unload = 8;
265 optional uint32 socaches_loading = 9;
266 optional uint32 writeback_queue = 10;
267 optional uint32 steamid_locks = 11;
268 optional uint32 logon_queue = 12;
269 optional uint32 logon_jobs = 13;
270 }
271
272 message CMsgAMSendEmail {
273 message ReplacementToken {
274 optional string token_name = 1;
275 optional string token_value = 2;
276 }
277
278 message PersonaNameReplacementToken {
279 optional fixed64 steamid = 1;
280 optional string token_name = 2;
281 }
282
283 optional fixed64 steamid = 1;
284 optional uint32 email_msg_type = 2;
285 optional uint32 email_format = 3;
286 repeated .CMsgAMSendEmail.PersonaNameReplacementToken persona_name_tokens = 5;
287 optional uint32 source_gc = 6;
288 repeated .CMsgAMSendEmail.ReplacementToken tokens = 7;
289 }
290
291 message CMsgAMSendEmailResponse {
292 optional uint32 eresult = 1 [default = 2];
293 }
294
295 message CMsgGCGetEmailTemplate {
296 optional uint32 app_id = 1;
297 optional uint32 email_msg_type = 2;
298 optional int32 email_lang = 3;
299 optional int32 email_format = 4;
300 }
301
302 message CMsgGCGetEmailTemplateResponse {
303 optional uint32 eresult = 1 [default = 2];
304 optional bool template_exists = 2;
305 optional string template = 3;
306 }
307
308 message CMsgAMGrantGuestPasses2 {
309 optional fixed64 steam_id = 1;
310 optional uint32 package_id = 2;
311 optional int32 passes_to_grant = 3;
312 optional int32 days_to_expiration = 4;
313 optional int32 action = 5;
314 }
315
316 message CMsgAMGrantGuestPasses2Response {
317 optional int32 eresult = 1 [default = 2];
318 optional int32 passes_granted = 2 [default = 0];
319 }
320
321 message CGCSystemMsg_GetAccountDetails {
322 option (msgpool_soft_limit) = 128;
323 option (msgpool_hard_limit) = 512;
324 optional fixed64 steamid = 1;
325 optional uint32 appid = 2;
326 }
327
328 message CGCSystemMsg_GetAccountDetails_Response {
329 option (msgpool_soft_limit) = 128;
330 option (msgpool_hard_limit) = 512;
331 optional uint32 eresult_deprecated = 1 [default = 2];
332 optional string account_name = 2;
333 optional string persona_name = 3;
334 optional bool is_profile_public = 4;
335 optional bool is_inventory_public = 5;
336 optional bool is_vac_banned = 7;
337 optional bool is_cyber_cafe = 8;
338 optional bool is_school_account = 9;
339 optional bool is_limited = 10;
340 optional bool is_subscribed = 11;
341 optional uint32 package = 12;
342 optional bool is_free_trial_account = 13;
343 optional uint32 free_trial_expiration = 14;
344 optional bool is_low_violence = 15;
345 optional bool is_account_locked_down = 16;
346 optional bool is_community_banned = 17;
347 optional bool is_trade_banned = 18;
348 optional uint32 trade_ban_expiration = 19;
349 optional uint32 accountid = 20;
350 optional uint32 suspension_end_time = 21;
351 optional string currency = 22;
352 optional uint32 steam_level = 23;
353 optional uint32 friend_count = 24;
354 optional uint32 account_creation_time = 25;
355 optional bool is_steamguard_enabled = 27;
356 optional bool is_phone_verified = 28;
357 optional bool is_two_factor_auth_enabled = 29;
358 optional uint32 two_factor_enabled_time = 30;
359 optional uint32 phone_verification_time = 31;
360 optional uint64 phone_id = 33;
361 optional bool is_phone_identifying = 34;
362 }
363
364 message CMsgGCGetPersonaNames {
365 repeated fixed64 steamids = 1;
366 }
367
368 message CMsgGCGetPersonaNames_Response {
369 message PersonaName {
370 optional fixed64 steamid = 1;
371 optional string persona_name = 2;
372 }
373
374 repeated .CMsgGCGetPersonaNames_Response.PersonaName succeeded_lookups = 1;
375 repeated fixed64 failed_lookup_steamids = 2;
376 }
377
378 message CMsgGCCheckFriendship {
379 optional fixed64 steamid_left = 1;
380 optional fixed64 steamid_right = 2;
381 }
382
383 message CMsgGCCheckFriendship_Response {
384 optional bool success = 1;
385 optional bool found_friendship = 2;
386 }
387
388 message CMsgGCMsgMasterSetDirectory {
389 message SubGC {
390 optional uint32 dir_index = 1;
391 optional string name = 2;
392 optional string box = 3;
393 optional string command_line = 4;
394 optional string gc_binary = 5;
395 }
396
397 optional uint32 master_dir_index = 1;
398 repeated .CMsgGCMsgMasterSetDirectory.SubGC dir = 2;
399 }
400
401 message CMsgGCMsgMasterSetDirectory_Response {
402 optional int32 eresult = 1 [default = 2];
403 }
404
405 message CMsgGCMsgWebAPIJobRequestForwardResponse {
406 optional uint32 dir_index = 1;
407 }
408
409 message CGCSystemMsg_GetPurchaseTrust_Request {
410 optional fixed64 steamid = 1;
411 }
412
413 message CGCSystemMsg_GetPurchaseTrust_Response {
414 optional bool has_prior_purchase_history = 1;
415 optional bool has_no_recent_password_resets = 2;
416 optional bool is_wallet_cash_trusted = 3;
417 optional uint32 time_all_trusted = 4;
418 }
419
420 message CMsgGCHAccountVacStatusChange {
421 optional fixed64 steam_id = 1;
422 optional uint32 app_id = 2;
423 optional uint32 rtime_vacban_starts = 3;
424 optional bool is_banned_now = 4;
425 optional bool is_banned_future = 5;
426 }
427
428 message CMsgGCGetPartnerAccountLink {
429 optional fixed64 steamid = 1;
430 }
431
432 message CMsgGCGetPartnerAccountLink_Response {
433 optional uint32 pwid = 1;
434 optional uint32 nexonid = 2;
435 }
436
437 message CMsgGCRoutingInfo {
438 enum RoutingMethod {
439 RANDOM = 0;
440 DISCARD = 1;
441 CLIENT_STEAMID = 2;
442 PROTOBUF_FIELD_UINT64 = 3;
443 WEBAPI_PARAM_UINT64 = 4;
444 }
445
446 repeated uint32 dir_index = 1;
447 optional .CMsgGCRoutingInfo.RoutingMethod method = 2 [default = RANDOM];
448 optional .CMsgGCRoutingInfo.RoutingMethod fallback = 3 [default = DISCARD];
449 optional uint32 protobuf_field = 4;
450 optional string webapi_param = 5;
451 }
452
453 message CMsgGCMsgMasterSetWebAPIRouting {
454 message Entry {
455 optional string interface_name = 1;
456 optional string method_name = 2;
457 optional .CMsgGCRoutingInfo routing = 3;
458 }
459
460 repeated .CMsgGCMsgMasterSetWebAPIRouting.Entry entries = 1;
461 }
462
463 message CMsgGCMsgMasterSetClientMsgRouting {
464 message Entry {
465 optional uint32 msg_type = 1;
466 optional .CMsgGCRoutingInfo routing = 2;
467 }
468
469 repeated .CMsgGCMsgMasterSetClientMsgRouting.Entry entries = 1;
470 }
471
472 message CMsgGCMsgMasterSetWebAPIRouting_Response {
473 optional int32 eresult = 1 [default = 2];
474 }
475
476 message CMsgGCMsgMasterSetClientMsgRouting_Response {
477 optional int32 eresult = 1 [default = 2];
478 }
479
480 message CMsgGCMsgSetOptions {
481 message MessageRange {
482 required uint32 low = 1;
483 required uint32 high = 2;
484 }
485
486 enum Option {
487 NOTIFY_USER_SESSIONS = 0;
488 NOTIFY_SERVER_SESSIONS = 1;
489 NOTIFY_ACHIEVEMENTS = 2;
490 NOTIFY_VAC_ACTION = 3;
491 }
492
493 repeated .CMsgGCMsgSetOptions.Option options = 1;
494 repeated .CMsgGCMsgSetOptions.MessageRange client_msg_ranges = 2;
495 }
496
497 message CMsgGCHUpdateSession {
498 message ExtraField {
499 optional string name = 1;
500 optional string value = 2;
501 }
502
503 optional fixed64 steam_id = 1;
504 optional uint32 app_id = 2;
505 optional bool online = 3;
506 optional fixed64 server_steam_id = 4;
507 optional uint32 server_addr = 5;
508 optional uint32 server_port = 6;
509 optional uint32 os_type = 7;
510 optional uint32 client_addr = 8;
511 repeated .CMsgGCHUpdateSession.ExtraField extra_fields = 9;
512 }
513
514 message CMsgNotificationOfSuspiciousActivity {
515 message MultipleGameInstances {
516 optional uint32 app_instance_count = 1;
517 repeated fixed64 other_steamids = 2;
518 }
519
520 optional fixed64 steamid = 1;
521 optional uint32 appid = 2;
522 optional .CMsgNotificationOfSuspiciousActivity.MultipleGameInstances multiple_instances = 3;
523 }
524