-
Notifications
You must be signed in to change notification settings - Fork 156
/
Copy pathsteammessages_store.proto
328 lines (275 loc) · 12.3 KB
/
steammessages_store.proto
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
syntax = "proto2";
import "steammessages_base.proto";
import "steammessages_unified_base.proto";
import "enums.proto";
option py_generic_services = true;
enum EStoreDiscoveryQueueType {
k_EStoreDiscoveryQueueTypeNew = 0;
k_EStoreDiscoveryQueueTypeComingSoon = 1;
k_EStoreDiscoveryQueueTypeRecommended = 2;
k_EStoreDiscoveryQueueTypeEveryNewRelease = 3;
k_EStoreDiscoveryQueueTypeMLRecommender = 5;
k_EStoreDiscoveryQueueTypeWishlistOnSale = 6;
k_EStoreDiscoveryQueueTypeDLC = 7;
k_EStoreDiscoveryQueueTypeDLCOnSale = 8;
k_EStoreDiscoveryQueueTypeRecommendedComingSoon = 9;
k_EStoreDiscoveryQueueTypeRecommendedFree = 10;
k_EStoreDiscoveryQueueTypeRecommendedOnSale = 11;
k_EStoreDiscoveryQueueTypeRecommendedDemos = 12;
k_EStoreDiscoveryQueueTypeDLCNewReleases = 13;
k_EStoreDiscoveryQueueTypeDLCTopSellers = 14;
k_EStoreDiscoveryQueueTypeMAX = 15;
}
enum EPlaytestStatus {
k_ETesterStatusNone = 0;
k_ETesterStatusPending = 1;
k_ETesterStatusInvited = 2;
k_ETesterStatusGranted = 3;
}
enum EUserReviewScorePreference {
k_EUserReviewScorePreference_Unset = 0;
k_EUserReviewScorePreference_IncludeAll = 1;
k_EUserReviewScorePreference_ExcludeBombs = 2;
}
message CStore_RegisterCDKey_Request {
optional string activation_code = 1 [(description) = "Key string to register on the logged in user's account"];
optional int32 purchase_platform = 2 [(description) = "EPurchasePlatform for platform of request"];
optional bool is_request_from_client = 3 [(description) = "True if the request was initiated from inside the Steam client"];
}
message CStore_PurchaseReceiptInfo {
message LineItem {
optional uint32 packageid = 1;
optional uint32 appid = 2;
optional string line_item_description = 3;
}
optional uint64 transactionid = 1;
optional uint32 packageid = 2;
optional uint32 purchase_status = 3;
optional uint32 result_detail = 4;
optional uint32 transaction_time = 5;
optional uint32 payment_method = 6;
optional uint64 base_price = 7;
optional uint64 total_discount = 8;
optional uint64 tax = 9;
optional uint64 shipping = 10;
optional uint32 currency_code = 11;
optional string country_code = 12;
optional string error_headline = 13;
optional string error_string = 14;
optional string error_link_text = 15;
optional string error_link_url = 16;
optional uint32 error_appid = 17;
repeated .CStore_PurchaseReceiptInfo.LineItem line_items = 18;
}
message CStore_RegisterCDKey_Response {
optional int32 purchase_result_details = 1 [(description) = "EPurchaseResultDetails from key activation"];
optional .CStore_PurchaseReceiptInfo purchase_receipt_info = 2 [(description) = "Purchase receipt info"];
}
message CStore_GetMostPopularTags_Request {
optional string language = 1;
}
message CStore_GetMostPopularTags_Response {
message Tag {
optional uint32 tagid = 1;
optional string name = 2;
}
repeated .CStore_GetMostPopularTags_Response.Tag tags = 1;
}
message CStore_GetLocalizedNameForTags_Request {
optional string language = 1;
repeated uint32 tagids = 2;
}
message CStore_GetLocalizedNameForTags_Response {
message Tag {
optional uint32 tagid = 1;
optional string english_name = 2;
optional string name = 3;
optional string normalized_name = 4 [(description) = "english_name, lowercase, with homoglyphs replaced and spaces and some punctuation removed."];
}
repeated .CStore_GetLocalizedNameForTags_Response.Tag tags = 1;
}
message CStoreDiscoveryQueueSettings {
optional bool os_win = 4;
optional bool os_mac = 5;
optional bool os_linux = 6;
optional bool full_controller_support = 7;
optional bool native_steam_controller = 8;
optional bool include_coming_soon = 9;
repeated uint32 excluded_tagids = 10 [(description) = "Don't return any games with these tags."];
optional bool exclude_early_access = 11;
optional bool exclude_videos = 12;
optional bool exclude_software = 13;
optional bool exclude_dlc = 14;
optional bool exclude_soundtracks = 15;
repeated uint32 featured_tagids = 16 [(description) = "Must be marked with one of these featured tagids (for sale pages and events)"];
}
message CStore_GetDiscoveryQueue_Request {
optional .EStoreDiscoveryQueueType queue_type = 1 [default = k_EStoreDiscoveryQueueTypeNew];
optional string country_code = 2;
optional bool rebuild_queue = 3;
optional bool settings_changed = 4;
optional .CStoreDiscoveryQueueSettings settings = 5;
optional bool rebuild_queue_if_stale = 6;
optional bool ignore_user_preferences = 8;
optional bool no_experimental_results = 9;
optional uint32 experimental_cohort = 10;
optional bool debug_get_solr_query = 11;
}
message CStore_GetDiscoveryQueue_Response {
repeated uint32 appids = 1;
optional string country_code = 2;
optional .CStoreDiscoveryQueueSettings settings = 3;
optional int32 skipped = 4;
optional bool exhausted = 5;
optional uint32 experimental_cohort = 6;
optional string debug_solr_query = 7;
}
message CStore_GetDiscoveryQueueSettings_Request {
optional .EStoreDiscoveryQueueType queue_type = 1 [default = k_EStoreDiscoveryQueueTypeNew];
}
message CStore_GetDiscoveryQueueSettings_Response {
optional string country_code = 1;
optional .CStoreDiscoveryQueueSettings settings = 2;
}
message CStore_SkipDiscoveryQueueItem_Request {
optional .EStoreDiscoveryQueueType queue_type = 1 [default = k_EStoreDiscoveryQueueTypeNew];
optional uint32 appid = 2;
}
message CStore_SkipDiscoveryQueueItem_Response {
}
message CStore_GetUserGameInterestState_Request {
optional uint32 appid = 1;
optional uint32 store_appid = 2;
optional uint32 beta_appid = 3;
}
message CStore_GetUserGameInterestState_Response {
message InQueue {
optional .EStoreDiscoveryQueueType type = 1 [default = k_EStoreDiscoveryQueueTypeNew];
optional bool skipped = 2;
optional int32 items_remaining = 3;
optional uint32 next_appid = 4;
optional uint32 experimental_cohort = 5;
}
optional bool owned = 1;
optional bool wishlist = 2;
optional bool ignored = 3;
optional bool following = 4;
repeated .EStoreDiscoveryQueueType in_queues = 5;
repeated .EStoreDiscoveryQueueType queues_with_skip = 6 [(description) = "Discovery queue types where the user has skipped this game."];
repeated int32 queue_items_remaining = 7 [(description) = "# of items remaining in the discovery queue - matches the same order as in_queues"];
repeated uint32 queue_items_next_appid = 8 [(description) = "the next appid in the queue - matches the same order as in_queues"];
optional bool temporarily_owned = 9 [(description) = "The user owns the game temporarily, eg a rental or free weekend"];
repeated .CStore_GetUserGameInterestState_Response.InQueue queues = 10;
optional int32 ignored_reason = 11 [(description) = "The ERecommendationIgnoreReason why the user ignored the app"];
optional .EPlaytestStatus beta_status = 12 [default = k_ETesterStatusNone, (description) = "User interest or membership in the playtest for this app if any"];
}
message CStore_GetStorePreferences_Request {
}
message CStore_UserPreferences {
optional int32 primary_language = 1;
optional uint32 secondary_languages = 2;
optional bool platform_windows = 3;
optional bool platform_mac = 4;
optional bool platform_linux = 5;
optional bool hide_adult_content_violence = 6;
optional bool hide_adult_content_sex = 7;
optional uint32 timestamp_updated = 8;
optional bool hide_store_broadcast = 9;
optional .EUserReviewScorePreference review_score_preference = 10 [default = k_EUserReviewScorePreference_Unset];
optional int32 timestamp_content_descriptor_preferences_updated = 11;
optional .EProvideDeckFeedbackPreference provide_deck_feedback = 12 [default = k_EProvideDeckFeedbackPreference_Unset];
}
message CStore_UserTagPreferences {
message Tag {
optional uint32 tagid = 1;
optional string name = 2;
optional uint32 timestamp_added = 3;
}
repeated .CStore_UserTagPreferences.Tag tags_to_exclude = 1;
}
message CStore_UserContentDescriptorPreferences {
message ContentDescriptor {
optional uint32 content_descriptorid = 1;
optional uint32 timestamp_added = 2;
}
repeated .CStore_UserContentDescriptorPreferences.ContentDescriptor content_descriptors_to_exclude = 1;
}
message CStore_GetStorePreferences_Response {
optional .CStore_UserPreferences preferences = 1;
optional .CStore_UserTagPreferences tag_preferences = 2;
optional .CStore_UserContentDescriptorPreferences content_descriptor_preferences = 3;
}
message CStore_GetTrendingAppsAmongFriends_Request {
optional uint32 num_apps = 1;
optional uint32 num_top_friends = 2;
}
message CStore_GetTrendingAppsAmongFriends_Response {
message TrendingAppData {
optional uint32 appid = 1;
repeated uint64 steamids_top_friends = 2;
optional uint32 total_friends = 3;
}
repeated .CStore_GetTrendingAppsAmongFriends_Response.TrendingAppData trending_apps = 1;
}
message CSteamDeckCompatibility_SetFeedback_Request {
optional uint32 appid = 1;
optional .ESteamDeckCompatibilityFeedback feedback = 2 [default = k_ESteamDeckCompatibilityFeedback_Unset];
}
message CSteamDeckCompatibility_SetFeedback_Response {
}
message CSteamDeckCompatibility_ShouldPrompt_Request {
optional uint32 appid = 1;
}
message CSteamDeckCompatibility_ShouldPrompt_Response {
optional bool prompt = 1;
optional bool feedback_eligible = 2;
optional .ESteamDeckCompatibilityFeedback existing_feedback = 3 [default = k_ESteamDeckCompatibilityFeedback_Unset];
}
message CStore_StorePreferencesChanged_Notification {
optional .CStore_UserPreferences preferences = 1;
optional .CStore_UserTagPreferences tag_preferences = 2;
optional .CStore_UserContentDescriptorPreferences content_descriptor_preferences = 3;
}
service Store {
option (service_description) = "A service to access store data.";
rpc RegisterCDKey (.CStore_RegisterCDKey_Request) returns (.CStore_RegisterCDKey_Response) {
option (method_description) = "Registers a CD key with Steam on the logged in user's account";
}
rpc GetMostPopularTags (.CStore_GetMostPopularTags_Request) returns (.CStore_GetMostPopularTags_Response) {
option (method_description) = "Get all whitelisted tags, with localized names.";
}
rpc GetLocalizedNameForTags (.CStore_GetLocalizedNameForTags_Request) returns (.CStore_GetLocalizedNameForTags_Response) {
option (method_description) = "Gets tag names in a different language";
}
rpc GetDiscoveryQueue (.CStore_GetDiscoveryQueue_Request) returns (.CStore_GetDiscoveryQueue_Response) {
option (method_description) = "Get a list of games for the user to explore on the store.";
}
rpc GetDiscoveryQueueSettings (.CStore_GetDiscoveryQueueSettings_Request) returns (.CStore_GetDiscoveryQueueSettings_Response) {
option (method_description) = "Get the settings that were used to generate a user's discovery queue.";
}
rpc SkipDiscoveryQueueItem (.CStore_SkipDiscoveryQueueItem_Request) returns (.CStore_SkipDiscoveryQueueItem_Response) {
option (method_description) = "Skip an item in the user's queue.";
}
rpc GetUserGameInterestState (.CStore_GetUserGameInterestState_Request) returns (.CStore_GetUserGameInterestState_Response) {
option (method_description) = "Get information about a user's relationship to a game - ownership, wishlist, discovery queue state, etc.";
}
rpc GetStorePreferences (.CStore_GetStorePreferences_Request) returns (.CStore_GetStorePreferences_Response) {
option (method_description) = "Returns the desired ratings board and maximum rating to show on the store";
}
rpc GetTrendingAppsAmongFriends (.CStore_GetTrendingAppsAmongFriends_Request) returns (.CStore_GetTrendingAppsAmongFriends_Response) {
option (method_description) = "Get trending apps among friends";
}
rpc SetCompatibilityFeedback (.CSteamDeckCompatibility_SetFeedback_Request) returns (.CSteamDeckCompatibility_SetFeedback_Response) {
option (method_description) = "Upserts user feedback regarding the published Steam Deck Compatibility rating for a game";
}
rpc ShouldPromptForCompatibilityFeedback (.CSteamDeckCompatibility_ShouldPrompt_Request) returns (.CSteamDeckCompatibility_ShouldPrompt_Response) {
option (method_description) = "Returns whether we should ask the user if the compatibility rating is correct";
}
}
service StoreClient {
option (service_description) = "Steam store to client notifications";
option (service_execution_site) = k_EProtoExecutionSiteSteamClient;
rpc NotifyStorePreferencesChanged (.CStore_StorePreferencesChanged_Notification) returns (.NoResponse) {
option (method_description) = "Notification from server to client that the user's store preferences have changed";
}
}