1#[allow(clippy::derive_partial_eq_without_eq)]
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct AndroidAppDeliveryData {
5 #[prost(int64, optional, tag = "1")]
6 pub download_size: ::core::option::Option<i64>,
7 #[prost(string, optional, tag = "2")]
8 pub sha1: ::core::option::Option<::prost::alloc::string::String>,
9 #[prost(string, optional, tag = "3")]
10 pub download_url: ::core::option::Option<::prost::alloc::string::String>,
11 #[prost(message, repeated, tag = "4")]
12 pub additional_file: ::prost::alloc::vec::Vec<AppFileMetadata>,
13 #[prost(message, repeated, tag = "5")]
14 pub download_auth_cookie: ::prost::alloc::vec::Vec<HttpCookie>,
15 #[prost(bool, optional, tag = "6")]
16 pub forward_locked: ::core::option::Option<bool>,
17 #[prost(int64, optional, tag = "7")]
18 pub refund_timeout: ::core::option::Option<i64>,
19 #[prost(bool, optional, tag = "8", default = "true")]
20 pub server_initiated: ::core::option::Option<bool>,
21 #[prost(int64, optional, tag = "9")]
22 pub post_install_refund_window_millis: ::core::option::Option<i64>,
23 #[prost(bool, optional, tag = "10")]
24 pub immediate_start_needed: ::core::option::Option<bool>,
25 #[prost(message, optional, tag = "11")]
26 pub patch_data: ::core::option::Option<AndroidAppPatchData>,
27 #[prost(message, optional, tag = "12")]
28 pub encryption_params: ::core::option::Option<EncryptionParams>,
29 #[prost(string, optional, tag = "13")]
30 pub compressed_download_url: ::core::option::Option<::prost::alloc::string::String>,
31 #[prost(int64, optional, tag = "14")]
32 pub compressed_size: ::core::option::Option<i64>,
33 #[prost(message, repeated, tag = "15")]
34 pub split_delivery_data: ::prost::alloc::vec::Vec<SplitDeliveryData>,
35 #[prost(int32, optional, tag = "16")]
36 pub install_location: ::core::option::Option<i32>,
37 #[prost(int64, optional, tag = "17")]
38 pub r#type: ::core::option::Option<i64>,
39 #[prost(message, optional, tag = "18")]
40 pub compressed_app_data: ::core::option::Option<CompressedAppData>,
41 #[prost(string, optional, tag = "19")]
42 pub sha256: ::core::option::Option<::prost::alloc::string::String>,
43}
44#[allow(clippy::derive_partial_eq_without_eq)]
45#[derive(Clone, PartialEq, ::prost::Message)]
46pub struct SplitDeliveryData {
47 #[prost(string, optional, tag = "1")]
48 pub name: ::core::option::Option<::prost::alloc::string::String>,
49 #[prost(int64, optional, tag = "2")]
50 pub download_size: ::core::option::Option<i64>,
51 #[prost(int64, optional, tag = "3")]
52 pub compressed_size: ::core::option::Option<i64>,
53 #[prost(string, optional, tag = "4")]
54 pub sha1: ::core::option::Option<::prost::alloc::string::String>,
55 #[prost(string, optional, tag = "5")]
56 pub download_url: ::core::option::Option<::prost::alloc::string::String>,
57 #[prost(string, optional, tag = "6")]
58 pub compressed_download_url: ::core::option::Option<::prost::alloc::string::String>,
59 #[prost(message, optional, tag = "7")]
60 pub patch_data: ::core::option::Option<AndroidAppPatchData>,
61 #[prost(message, optional, tag = "8")]
62 pub compressed_app_data: ::core::option::Option<CompressedAppData>,
63 #[prost(string, optional, tag = "9")]
64 pub sha256: ::core::option::Option<::prost::alloc::string::String>,
65}
66#[allow(clippy::derive_partial_eq_without_eq)]
67#[derive(Clone, PartialEq, ::prost::Message)]
68pub struct AndroidAppPatchData {
69 #[prost(int32, optional, tag = "1")]
70 pub base_version_code: ::core::option::Option<i32>,
71 #[prost(string, optional, tag = "2")]
72 pub base_sha1: ::core::option::Option<::prost::alloc::string::String>,
73 #[prost(string, optional, tag = "3")]
74 pub download_url: ::core::option::Option<::prost::alloc::string::String>,
75 #[prost(int32, optional, tag = "4", default = "1")]
76 pub patch_format: ::core::option::Option<i32>,
77 #[prost(int64, optional, tag = "5")]
78 pub max_patch_size: ::core::option::Option<i64>,
79}
80#[allow(clippy::derive_partial_eq_without_eq)]
81#[derive(Clone, PartialEq, ::prost::Message)]
82pub struct CompressedAppData {
83 #[prost(int64, optional, tag = "1")]
84 pub r#type: ::core::option::Option<i64>,
85 #[prost(int64, optional, tag = "2")]
86 pub size: ::core::option::Option<i64>,
87 #[prost(string, optional, tag = "3")]
88 pub download_url: ::core::option::Option<::prost::alloc::string::String>,
89}
90#[allow(clippy::derive_partial_eq_without_eq)]
91#[derive(Clone, PartialEq, ::prost::Message)]
92pub struct AppFileMetadata {
93 #[prost(int32, optional, tag = "1")]
94 pub file_type: ::core::option::Option<i32>,
95 #[prost(int32, optional, tag = "2")]
96 pub version_code: ::core::option::Option<i32>,
97 #[prost(int64, optional, tag = "3")]
98 pub size: ::core::option::Option<i64>,
99 #[prost(string, optional, tag = "4")]
100 pub download_url: ::core::option::Option<::prost::alloc::string::String>,
101 #[prost(message, optional, tag = "5")]
102 pub patch_data: ::core::option::Option<AndroidAppPatchData>,
103 #[prost(int64, optional, tag = "6")]
104 pub compressed_size: ::core::option::Option<i64>,
105 #[prost(string, optional, tag = "7")]
106 pub compressed_download_url: ::core::option::Option<::prost::alloc::string::String>,
107 #[prost(string, optional, tag = "8")]
108 pub sha1: ::core::option::Option<::prost::alloc::string::String>,
109}
110#[allow(clippy::derive_partial_eq_without_eq)]
111#[derive(Clone, PartialEq, ::prost::Message)]
112pub struct EncryptionParams {
113 #[prost(int32, optional, tag = "1")]
114 pub version: ::core::option::Option<i32>,
115 #[prost(string, optional, tag = "2")]
116 pub encryption_key: ::core::option::Option<::prost::alloc::string::String>,
117 #[prost(string, optional, tag = "3")]
118 pub h_mac_key: ::core::option::Option<::prost::alloc::string::String>,
119}
120#[allow(clippy::derive_partial_eq_without_eq)]
121#[derive(Clone, PartialEq, ::prost::Message)]
122pub struct HttpCookie {
123 #[prost(string, optional, tag = "1")]
124 pub name: ::core::option::Option<::prost::alloc::string::String>,
125 #[prost(string, optional, tag = "2")]
126 pub value: ::core::option::Option<::prost::alloc::string::String>,
127}
128#[allow(clippy::derive_partial_eq_without_eq)]
129#[derive(Clone, PartialEq, ::prost::Message)]
130pub struct Address {
131 #[prost(string, optional, tag = "1")]
132 pub name: ::core::option::Option<::prost::alloc::string::String>,
133 #[prost(string, optional, tag = "2")]
134 pub address_line1: ::core::option::Option<::prost::alloc::string::String>,
135 #[prost(string, optional, tag = "3")]
136 pub address_line2: ::core::option::Option<::prost::alloc::string::String>,
137 #[prost(string, optional, tag = "4")]
138 pub city: ::core::option::Option<::prost::alloc::string::String>,
139 #[prost(string, optional, tag = "5")]
140 pub state: ::core::option::Option<::prost::alloc::string::String>,
141 #[prost(string, optional, tag = "6")]
142 pub postal_code: ::core::option::Option<::prost::alloc::string::String>,
143 #[prost(string, optional, tag = "7")]
144 pub postal_country: ::core::option::Option<::prost::alloc::string::String>,
145 #[prost(string, optional, tag = "8")]
146 pub dependent_locality: ::core::option::Option<::prost::alloc::string::String>,
147 #[prost(string, optional, tag = "9")]
148 pub sorting_code: ::core::option::Option<::prost::alloc::string::String>,
149 #[prost(string, optional, tag = "10")]
150 pub language_code: ::core::option::Option<::prost::alloc::string::String>,
151 #[prost(string, optional, tag = "11")]
152 pub phone_number: ::core::option::Option<::prost::alloc::string::String>,
153 #[prost(bool, optional, tag = "12")]
154 pub deprecated_is_reduced: ::core::option::Option<bool>,
155 #[prost(string, optional, tag = "13")]
156 pub first_name: ::core::option::Option<::prost::alloc::string::String>,
157 #[prost(string, optional, tag = "14")]
158 pub last_name: ::core::option::Option<::prost::alloc::string::String>,
159 #[prost(string, optional, tag = "15")]
160 pub email: ::core::option::Option<::prost::alloc::string::String>,
161}
162#[allow(clippy::derive_partial_eq_without_eq)]
163#[derive(Clone, PartialEq, ::prost::Message)]
164pub struct BrowseLink {
165 #[prost(string, optional, tag = "1")]
166 pub name: ::core::option::Option<::prost::alloc::string::String>,
167 #[prost(string, optional, tag = "3")]
168 pub data_url: ::core::option::Option<::prost::alloc::string::String>,
169 #[prost(bytes = "vec", optional, tag = "4")]
170 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
171 #[prost(message, optional, tag = "5")]
172 pub icon: ::core::option::Option<Image>,
173}
174#[allow(clippy::derive_partial_eq_without_eq)]
175#[derive(Clone, PartialEq, ::prost::Message)]
176pub struct BrowseResponse {
177 #[prost(string, optional, tag = "1")]
178 pub contents_url: ::core::option::Option<::prost::alloc::string::String>,
179 #[prost(string, optional, tag = "2")]
180 pub promo_url: ::core::option::Option<::prost::alloc::string::String>,
181 #[prost(message, repeated, tag = "3")]
182 pub category: ::prost::alloc::vec::Vec<BrowseLink>,
183 #[prost(message, repeated, tag = "4")]
184 pub breadcrumb: ::prost::alloc::vec::Vec<BrowseLink>,
185 #[prost(message, repeated, tag = "5")]
186 pub quick_link: ::prost::alloc::vec::Vec<QuickLink>,
187 #[prost(bytes = "vec", optional, tag = "6")]
188 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
189 #[prost(string, optional, tag = "7")]
190 pub title: ::core::option::Option<::prost::alloc::string::String>,
191 #[prost(int32, optional, tag = "8")]
192 pub backend_id: ::core::option::Option<i32>,
193 #[prost(message, optional, tag = "9")]
194 pub browse_tab: ::core::option::Option<BrowseTab>,
195 #[prost(int32, optional, tag = "10")]
196 pub landing_tab_index: ::core::option::Option<i32>,
197 #[prost(int32, optional, tag = "11")]
198 pub quick_link_tab_index: ::core::option::Option<i32>,
199 #[prost(int32, optional, tag = "12")]
200 pub quick_link_fallback_tab_index: ::core::option::Option<i32>,
201 #[prost(bool, optional, tag = "14")]
202 pub is_family_safe: ::core::option::Option<bool>,
203 #[prost(string, optional, tag = "18")]
204 pub share_url: ::core::option::Option<::prost::alloc::string::String>,
205}
206#[allow(clippy::derive_partial_eq_without_eq)]
207#[derive(Clone, PartialEq, ::prost::Message)]
208pub struct DirectPurchase {
209 #[prost(string, optional, tag = "1")]
210 pub details_url: ::core::option::Option<::prost::alloc::string::String>,
211 #[prost(string, optional, tag = "2")]
212 pub purchase_item_id: ::core::option::Option<::prost::alloc::string::String>,
213 #[prost(string, optional, tag = "3")]
214 pub parent_item_id: ::core::option::Option<::prost::alloc::string::String>,
215 #[prost(int32, optional, tag = "4", default = "1")]
216 pub offer_type: ::core::option::Option<i32>,
217}
218#[allow(clippy::derive_partial_eq_without_eq)]
219#[derive(Clone, PartialEq, ::prost::Message)]
220pub struct RedeemGiftCard {
221 #[prost(string, optional, tag = "1")]
222 pub prefill_code: ::core::option::Option<::prost::alloc::string::String>,
223 #[prost(string, optional, tag = "2")]
224 pub partner_payload: ::core::option::Option<::prost::alloc::string::String>,
225}
226#[allow(clippy::derive_partial_eq_without_eq)]
227#[derive(Clone, PartialEq, ::prost::Message)]
228pub struct ResolvedLink {
229 #[prost(string, optional, tag = "1")]
230 pub details_url: ::core::option::Option<::prost::alloc::string::String>,
231 #[prost(string, optional, tag = "2")]
232 pub browse_url: ::core::option::Option<::prost::alloc::string::String>,
233 #[prost(string, optional, tag = "3")]
234 pub search_url: ::core::option::Option<::prost::alloc::string::String>,
235 #[prost(message, optional, tag = "4")]
236 pub direct_purchase: ::core::option::Option<DirectPurchase>,
237 #[prost(string, optional, tag = "5")]
238 pub home_url: ::core::option::Option<::prost::alloc::string::String>,
239 #[prost(message, optional, tag = "6")]
240 pub redeem_gift_card: ::core::option::Option<RedeemGiftCard>,
241 #[prost(bytes = "vec", optional, tag = "7")]
242 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
243 #[prost(message, optional, tag = "8")]
244 pub doc_id: ::core::option::Option<DocId>,
245 #[prost(string, optional, tag = "9")]
246 pub wishlist_url: ::core::option::Option<::prost::alloc::string::String>,
247 #[prost(int32, optional, tag = "10")]
248 pub backend: ::core::option::Option<i32>,
249 #[prost(string, optional, tag = "11")]
250 pub query: ::core::option::Option<::prost::alloc::string::String>,
251 #[prost(string, optional, tag = "12")]
252 pub my_account_url: ::core::option::Option<::prost::alloc::string::String>,
253 #[prost(message, optional, tag = "13")]
254 pub help_center: ::core::option::Option<HelpCenter>,
255}
256#[allow(clippy::derive_partial_eq_without_eq)]
257#[derive(Clone, PartialEq, ::prost::Message)]
258pub struct HelpCenter {
259 #[prost(string, optional, tag = "1")]
260 pub context_id: ::core::option::Option<::prost::alloc::string::String>,
261}
262#[allow(clippy::derive_partial_eq_without_eq)]
263#[derive(Clone, PartialEq, ::prost::Message)]
264pub struct QuickLink {
265 #[prost(string, optional, tag = "1")]
266 pub name: ::core::option::Option<::prost::alloc::string::String>,
267 #[prost(message, optional, tag = "2")]
268 pub image: ::core::option::Option<Image>,
269 #[prost(message, optional, tag = "3")]
270 pub link: ::core::option::Option<ResolvedLink>,
271 #[prost(bool, optional, tag = "4")]
272 pub display_required: ::core::option::Option<bool>,
273 #[prost(bytes = "vec", optional, tag = "5")]
274 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
275 #[prost(int32, optional, tag = "6")]
276 pub backend_id: ::core::option::Option<i32>,
277 #[prost(bool, optional, tag = "7")]
278 pub prism_style: ::core::option::Option<bool>,
279}
280#[allow(clippy::derive_partial_eq_without_eq)]
281#[derive(Clone, PartialEq, ::prost::Message)]
282pub struct BrowseTab {
283 #[prost(string, optional, tag = "1")]
284 pub title: ::core::option::Option<::prost::alloc::string::String>,
285 #[prost(bytes = "vec", optional, tag = "2")]
286 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
287 #[prost(string, optional, tag = "3")]
288 pub list_url: ::core::option::Option<::prost::alloc::string::String>,
289 #[prost(message, repeated, tag = "4")]
290 pub browse_link: ::prost::alloc::vec::Vec<BrowseLink>,
291 #[prost(message, repeated, tag = "5")]
292 pub quick_link: ::prost::alloc::vec::Vec<QuickLink>,
293 #[prost(string, optional, tag = "6")]
294 pub quick_link_title: ::core::option::Option<::prost::alloc::string::String>,
295 #[prost(string, optional, tag = "7")]
296 pub categories_title: ::core::option::Option<::prost::alloc::string::String>,
297 #[prost(int32, optional, tag = "8")]
298 pub backend_id: ::core::option::Option<i32>,
299 #[prost(string, optional, tag = "9")]
300 pub highlights_banner_url: ::core::option::Option<::prost::alloc::string::String>,
301}
302#[allow(clippy::derive_partial_eq_without_eq)]
303#[derive(Clone, PartialEq, ::prost::Message)]
304pub struct BuyResponse {
305 #[prost(message, optional, tag = "1")]
306 pub purchase_response: ::core::option::Option<PurchaseNotificationResponse>,
307 #[prost(group, optional, tag = "2")]
308 pub checkoutinfo: ::core::option::Option<buy_response::CheckoutInfo>,
309 #[prost(string, optional, tag = "8")]
310 pub continue_via_url: ::core::option::Option<::prost::alloc::string::String>,
311 #[prost(string, optional, tag = "9")]
312 pub purchase_status_url: ::core::option::Option<::prost::alloc::string::String>,
313 #[prost(string, optional, tag = "12")]
314 pub checkout_service_id: ::core::option::Option<::prost::alloc::string::String>,
315 #[prost(bool, optional, tag = "13")]
316 pub checkout_token_required: ::core::option::Option<bool>,
317 #[prost(string, optional, tag = "14")]
318 pub base_checkout_url: ::core::option::Option<::prost::alloc::string::String>,
319 #[prost(string, repeated, tag = "37")]
320 pub tos_checkbox_html: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
321 #[prost(int32, optional, tag = "38")]
322 pub iab_permission_error: ::core::option::Option<i32>,
323 #[prost(message, optional, tag = "39")]
324 pub purchase_status_response: ::core::option::Option<PurchaseStatusResponse>,
325 #[prost(string, optional, tag = "46")]
326 pub purchase_cookie: ::core::option::Option<::prost::alloc::string::String>,
327 #[prost(message, optional, tag = "49")]
328 pub challenge: ::core::option::Option<Challenge>,
329 #[prost(string, optional, tag = "50")]
330 pub add_instrument_prompt_html: ::core::option::Option<
331 ::prost::alloc::string::String,
332 >,
333 #[prost(string, optional, tag = "51")]
334 pub confirm_button_text: ::core::option::Option<::prost::alloc::string::String>,
335 #[prost(string, optional, tag = "52")]
336 pub permission_error_title_text: ::core::option::Option<
337 ::prost::alloc::string::String,
338 >,
339 #[prost(string, optional, tag = "53")]
340 pub permission_error_message_text: ::core::option::Option<
341 ::prost::alloc::string::String,
342 >,
343 #[prost(bytes = "vec", optional, tag = "54")]
344 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
345 #[prost(string, optional, tag = "55")]
346 pub encoded_delivery_token: ::core::option::Option<::prost::alloc::string::String>,
347 #[prost(string, optional, tag = "56")]
348 pub unknown_token: ::core::option::Option<::prost::alloc::string::String>,
349}
350pub mod buy_response {
352 #[allow(clippy::derive_partial_eq_without_eq)]
353 #[derive(Clone, PartialEq, ::prost::Message)]
354 pub struct CheckoutInfo {
355 #[prost(message, optional, tag = "3")]
356 pub item: ::core::option::Option<super::LineItem>,
357 #[prost(message, repeated, tag = "4")]
358 pub sub_item: ::prost::alloc::vec::Vec<super::LineItem>,
359 #[prost(group, repeated, tag = "5")]
360 pub checkoutoption: ::prost::alloc::vec::Vec<checkout_info::CheckoutOption>,
361 #[prost(string, optional, tag = "10")]
362 pub deprecated_checkout_url: ::core::option::Option<
363 ::prost::alloc::string::String,
364 >,
365 #[prost(string, optional, tag = "11")]
366 pub add_instrument_url: ::core::option::Option<::prost::alloc::string::String>,
367 #[prost(string, repeated, tag = "20")]
368 pub footer_html: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
369 #[prost(int32, repeated, packed = "false", tag = "31")]
370 pub eligible_instrument_family: ::prost::alloc::vec::Vec<i32>,
371 #[prost(string, repeated, tag = "36")]
372 pub footnote_html: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
373 #[prost(message, repeated, tag = "44")]
374 pub eligible_instrument: ::prost::alloc::vec::Vec<super::Instrument>,
375 }
376 pub mod checkout_info {
378 #[allow(clippy::derive_partial_eq_without_eq)]
379 #[derive(Clone, PartialEq, ::prost::Message)]
380 pub struct CheckoutOption {
381 #[prost(string, optional, tag = "6")]
382 pub form_of_payment: ::core::option::Option<::prost::alloc::string::String>,
383 #[prost(string, optional, tag = "7")]
384 pub encoded_adjusted_cart: ::core::option::Option<
385 ::prost::alloc::string::String,
386 >,
387 #[prost(string, optional, tag = "15")]
388 pub instrument_id: ::core::option::Option<::prost::alloc::string::String>,
389 #[prost(message, repeated, tag = "16")]
390 pub item: ::prost::alloc::vec::Vec<super::super::LineItem>,
391 #[prost(message, repeated, tag = "17")]
392 pub sub_item: ::prost::alloc::vec::Vec<super::super::LineItem>,
393 #[prost(message, optional, tag = "18")]
394 pub total: ::core::option::Option<super::super::LineItem>,
395 #[prost(string, repeated, tag = "19")]
396 pub footer_html: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
397 #[prost(int32, optional, tag = "29")]
398 pub instrument_family: ::core::option::Option<i32>,
399 #[prost(int32, repeated, packed = "false", tag = "30")]
400 pub deprecated_instrument_inapplicable_reason: ::prost::alloc::vec::Vec<i32>,
401 #[prost(bool, optional, tag = "32")]
402 pub selected_instrument: ::core::option::Option<bool>,
403 #[prost(message, optional, tag = "33")]
404 pub summary: ::core::option::Option<super::super::LineItem>,
405 #[prost(string, repeated, tag = "35")]
406 pub footnote_html: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
407 #[prost(message, optional, tag = "43")]
408 pub instrument: ::core::option::Option<super::super::Instrument>,
409 #[prost(string, optional, tag = "45")]
410 pub purchase_cookie: ::core::option::Option<::prost::alloc::string::String>,
411 #[prost(string, repeated, tag = "48")]
412 pub disabled_reason: ::prost::alloc::vec::Vec<
413 ::prost::alloc::string::String,
414 >,
415 }
416 }
417}
418#[allow(clippy::derive_partial_eq_without_eq)]
419#[derive(Clone, PartialEq, ::prost::Message)]
420pub struct LineItem {
421 #[prost(string, optional, tag = "1")]
422 pub name: ::core::option::Option<::prost::alloc::string::String>,
423 #[prost(string, optional, tag = "2")]
424 pub description: ::core::option::Option<::prost::alloc::string::String>,
425 #[prost(message, optional, tag = "3")]
426 pub offer: ::core::option::Option<Offer>,
427 #[prost(message, optional, tag = "4")]
428 pub amount: ::core::option::Option<Money>,
429}
430#[allow(clippy::derive_partial_eq_without_eq)]
431#[derive(Clone, PartialEq, ::prost::Message)]
432pub struct Money {
433 #[prost(int64, optional, tag = "1")]
434 pub micros: ::core::option::Option<i64>,
435 #[prost(string, optional, tag = "2")]
436 pub currency_code: ::core::option::Option<::prost::alloc::string::String>,
437 #[prost(string, optional, tag = "3")]
438 pub formatted_amount: ::core::option::Option<::prost::alloc::string::String>,
439}
440#[allow(clippy::derive_partial_eq_without_eq)]
441#[derive(Clone, PartialEq, ::prost::Message)]
442pub struct PurchaseNotificationResponse {
443 #[prost(int32, optional, tag = "1")]
444 pub status: ::core::option::Option<i32>,
445 #[prost(message, optional, tag = "2")]
446 pub debug_info: ::core::option::Option<DebugInfo>,
447 #[prost(string, optional, tag = "3")]
448 pub localized_error_message: ::core::option::Option<::prost::alloc::string::String>,
449 #[prost(string, optional, tag = "4")]
450 pub purchase_id: ::core::option::Option<::prost::alloc::string::String>,
451}
452#[allow(clippy::derive_partial_eq_without_eq)]
453#[derive(Clone, PartialEq, ::prost::Message)]
454pub struct PurchaseStatusResponse {
455 #[prost(int32, optional, tag = "1")]
456 pub status: ::core::option::Option<i32>,
457 #[prost(string, optional, tag = "2")]
458 pub status_msg: ::core::option::Option<::prost::alloc::string::String>,
459 #[prost(string, optional, tag = "3")]
460 pub status_title: ::core::option::Option<::prost::alloc::string::String>,
461 #[prost(string, optional, tag = "4")]
462 pub brief_message: ::core::option::Option<::prost::alloc::string::String>,
463 #[prost(string, optional, tag = "5")]
464 pub info_url: ::core::option::Option<::prost::alloc::string::String>,
465 #[prost(message, optional, tag = "6")]
466 pub library_update: ::core::option::Option<LibraryUpdate>,
467 #[prost(message, optional, tag = "7")]
468 pub rejected_instrument: ::core::option::Option<Instrument>,
469 #[prost(message, optional, tag = "8")]
470 pub app_delivery_data: ::core::option::Option<AndroidAppDeliveryData>,
471}
472#[allow(clippy::derive_partial_eq_without_eq)]
473#[derive(Clone, PartialEq, ::prost::Message)]
474pub struct PurchaseHistoryDetails {
475 #[prost(int64, optional, tag = "2")]
476 pub purchase_timestamp_millis: ::core::option::Option<i64>,
477 #[prost(string, optional, tag = "3")]
478 pub purchase_details_html: ::core::option::Option<::prost::alloc::string::String>,
479 #[prost(message, optional, tag = "5")]
480 pub offer: ::core::option::Option<Offer>,
481 #[prost(string, optional, tag = "6")]
482 pub purchase_status: ::core::option::Option<::prost::alloc::string::String>,
483 #[prost(string, optional, tag = "7")]
484 pub title_byline_html: ::core::option::Option<::prost::alloc::string::String>,
485 #[prost(bytes = "vec", optional, tag = "8")]
486 pub client_refund_context: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
487 #[prost(message, optional, tag = "9")]
488 pub purchase_details_image: ::core::option::Option<Image>,
489}
490#[allow(clippy::derive_partial_eq_without_eq)]
491#[derive(Clone, PartialEq, ::prost::Message)]
492pub struct BillingProfileResponse {
493 #[prost(int32, optional, tag = "1")]
494 pub result: ::core::option::Option<i32>,
495 #[prost(message, optional, tag = "2")]
496 pub billing_profile: ::core::option::Option<BillingProfile>,
497 #[prost(string, optional, tag = "3")]
498 pub user_message_html: ::core::option::Option<::prost::alloc::string::String>,
499}
500#[allow(clippy::derive_partial_eq_without_eq)]
501#[derive(Clone, PartialEq, ::prost::Message)]
502pub struct CheckInstrumentResponse {
503 #[prost(bool, optional, tag = "1")]
504 pub user_has_valid_instrument: ::core::option::Option<bool>,
505 #[prost(bool, optional, tag = "2")]
506 pub checkout_token_required: ::core::option::Option<bool>,
507 #[prost(message, repeated, tag = "4")]
508 pub instrument: ::prost::alloc::vec::Vec<Instrument>,
509 #[prost(message, repeated, tag = "5")]
510 pub eligible_instrument: ::prost::alloc::vec::Vec<Instrument>,
511}
512#[allow(clippy::derive_partial_eq_without_eq)]
513#[derive(Clone, PartialEq, ::prost::Message)]
514pub struct InstrumentSetupInfoResponse {
515 #[prost(message, repeated, tag = "1")]
516 pub setup_info: ::prost::alloc::vec::Vec<InstrumentSetupInfo>,
517 #[prost(bool, optional, tag = "2")]
518 pub checkout_token_required: ::core::option::Option<bool>,
519}
520#[allow(clippy::derive_partial_eq_without_eq)]
521#[derive(Clone, PartialEq, ::prost::Message)]
522pub struct RedeemGiftCardRequest {
523 #[prost(string, optional, tag = "1")]
524 pub gift_card_pin: ::core::option::Option<::prost::alloc::string::String>,
525 #[prost(message, optional, tag = "2")]
526 pub address: ::core::option::Option<Address>,
527 #[prost(string, repeated, tag = "3")]
528 pub accepted_legal_document_id: ::prost::alloc::vec::Vec<
529 ::prost::alloc::string::String,
530 >,
531 #[prost(string, optional, tag = "4")]
532 pub checkout_token: ::core::option::Option<::prost::alloc::string::String>,
533}
534#[allow(clippy::derive_partial_eq_without_eq)]
535#[derive(Clone, PartialEq, ::prost::Message)]
536pub struct RedeemGiftCardResponse {
537 #[prost(int32, optional, tag = "1")]
538 pub result: ::core::option::Option<i32>,
539 #[prost(string, optional, tag = "2")]
540 pub user_message_html: ::core::option::Option<::prost::alloc::string::String>,
541 #[prost(string, optional, tag = "3")]
542 pub balance_html: ::core::option::Option<::prost::alloc::string::String>,
543 #[prost(message, optional, tag = "4")]
544 pub address_challenge: ::core::option::Option<AddressChallenge>,
545 #[prost(bool, optional, tag = "5")]
546 pub checkout_token_required: ::core::option::Option<bool>,
547}
548#[allow(clippy::derive_partial_eq_without_eq)]
549#[derive(Clone, PartialEq, ::prost::Message)]
550pub struct UpdateInstrumentRequest {
551 #[prost(message, optional, tag = "1")]
552 pub instrument: ::core::option::Option<Instrument>,
553 #[prost(string, optional, tag = "2")]
554 pub checkout_token: ::core::option::Option<::prost::alloc::string::String>,
555}
556#[allow(clippy::derive_partial_eq_without_eq)]
557#[derive(Clone, PartialEq, ::prost::Message)]
558pub struct UpdateInstrumentResponse {
559 #[prost(int32, optional, tag = "1")]
560 pub result: ::core::option::Option<i32>,
561 #[prost(string, optional, tag = "2")]
562 pub instrument_id: ::core::option::Option<::prost::alloc::string::String>,
563 #[prost(string, optional, tag = "3")]
564 pub user_message_html: ::core::option::Option<::prost::alloc::string::String>,
565 #[prost(message, repeated, tag = "4")]
566 pub error_input_field: ::prost::alloc::vec::Vec<InputValidationError>,
567 #[prost(bool, optional, tag = "5")]
568 pub checkout_token_required: ::core::option::Option<bool>,
569 #[prost(message, optional, tag = "6")]
570 pub redeemed_offer: ::core::option::Option<RedeemedPromoOffer>,
571}
572#[allow(clippy::derive_partial_eq_without_eq)]
573#[derive(Clone, PartialEq, ::prost::Message)]
574pub struct InitiateAssociationResponse {
575 #[prost(string, optional, tag = "1")]
576 pub user_token: ::core::option::Option<::prost::alloc::string::String>,
577}
578#[allow(clippy::derive_partial_eq_without_eq)]
579#[derive(Clone, PartialEq, ::prost::Message)]
580pub struct VerifyAssociationResponse {
581 #[prost(int32, optional, tag = "1")]
582 pub status: ::core::option::Option<i32>,
583 #[prost(message, optional, tag = "2")]
584 pub billing_address: ::core::option::Option<Address>,
585 #[prost(message, optional, tag = "3")]
586 pub carrier_tos: ::core::option::Option<CarrierTos>,
587 #[prost(string, optional, tag = "4")]
588 pub carrier_error_message: ::core::option::Option<::prost::alloc::string::String>,
589}
590#[allow(clippy::derive_partial_eq_without_eq)]
591#[derive(Clone, PartialEq, ::prost::Message)]
592pub struct AddressChallenge {
593 #[prost(string, optional, tag = "1")]
594 pub response_address_param: ::core::option::Option<::prost::alloc::string::String>,
595 #[prost(string, optional, tag = "2")]
596 pub response_checkboxes_param: ::core::option::Option<
597 ::prost::alloc::string::String,
598 >,
599 #[prost(string, optional, tag = "3")]
600 pub title: ::core::option::Option<::prost::alloc::string::String>,
601 #[prost(string, optional, tag = "4")]
602 pub description_html: ::core::option::Option<::prost::alloc::string::String>,
603 #[prost(message, repeated, tag = "5")]
604 pub checkbox: ::prost::alloc::vec::Vec<FormCheckbox>,
605 #[prost(message, optional, tag = "6")]
606 pub address: ::core::option::Option<Address>,
607 #[prost(message, repeated, tag = "7")]
608 pub error_input_field: ::prost::alloc::vec::Vec<InputValidationError>,
609 #[prost(string, optional, tag = "8")]
610 pub error_html: ::core::option::Option<::prost::alloc::string::String>,
611 #[prost(int32, repeated, packed = "false", tag = "9")]
612 pub required_field: ::prost::alloc::vec::Vec<i32>,
613 #[prost(message, repeated, tag = "10")]
614 pub supported_country: ::prost::alloc::vec::Vec<Country>,
615}
616#[allow(clippy::derive_partial_eq_without_eq)]
617#[derive(Clone, PartialEq, ::prost::Message)]
618pub struct AuthenticationChallenge {
619 #[prost(int32, optional, tag = "1")]
620 pub authentication_type: ::core::option::Option<i32>,
621 #[prost(string, optional, tag = "2")]
622 pub response_authentication_type_param: ::core::option::Option<
623 ::prost::alloc::string::String,
624 >,
625 #[prost(string, optional, tag = "3")]
626 pub response_retry_count_param: ::core::option::Option<
627 ::prost::alloc::string::String,
628 >,
629 #[prost(string, optional, tag = "4")]
630 pub pin_header_text: ::core::option::Option<::prost::alloc::string::String>,
631 #[prost(string, optional, tag = "5")]
632 pub pin_description_text_html: ::core::option::Option<
633 ::prost::alloc::string::String,
634 >,
635 #[prost(string, optional, tag = "6")]
636 pub gaia_header_text: ::core::option::Option<::prost::alloc::string::String>,
637 #[prost(string, optional, tag = "7")]
638 pub gaia_description_text_html: ::core::option::Option<
639 ::prost::alloc::string::String,
640 >,
641 #[prost(string, optional, tag = "8")]
642 pub gaia_footer_text_html: ::core::option::Option<::prost::alloc::string::String>,
643 #[prost(message, optional, tag = "9")]
644 pub gaia_opt_out_checkbox: ::core::option::Option<FormCheckbox>,
645 #[prost(string, optional, tag = "10")]
646 pub gaia_opt_out_description_text_html: ::core::option::Option<
647 ::prost::alloc::string::String,
648 >,
649}
650#[allow(clippy::derive_partial_eq_without_eq)]
651#[derive(Clone, PartialEq, ::prost::Message)]
652pub struct Challenge {
653 #[prost(message, optional, tag = "1")]
654 pub address_challenge: ::core::option::Option<AddressChallenge>,
655 #[prost(message, optional, tag = "2")]
656 pub authentication_challenge: ::core::option::Option<AuthenticationChallenge>,
657 #[prost(message, optional, tag = "3")]
658 pub web_view_challenge: ::core::option::Option<WebViewChallenge>,
659}
660#[allow(clippy::derive_partial_eq_without_eq)]
661#[derive(Clone, PartialEq, ::prost::Message)]
662pub struct Country {
663 #[prost(string, optional, tag = "1")]
664 pub region_code: ::core::option::Option<::prost::alloc::string::String>,
665 #[prost(string, optional, tag = "2")]
666 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
667}
668#[allow(clippy::derive_partial_eq_without_eq)]
669#[derive(Clone, PartialEq, ::prost::Message)]
670pub struct FormCheckbox {
671 #[prost(string, optional, tag = "1")]
672 pub description: ::core::option::Option<::prost::alloc::string::String>,
673 #[prost(bool, optional, tag = "2")]
674 pub checked: ::core::option::Option<bool>,
675 #[prost(bool, optional, tag = "3")]
676 pub required: ::core::option::Option<bool>,
677 #[prost(string, optional, tag = "4")]
678 pub id: ::core::option::Option<::prost::alloc::string::String>,
679}
680#[allow(clippy::derive_partial_eq_without_eq)]
681#[derive(Clone, PartialEq, ::prost::Message)]
682pub struct InputValidationError {
683 #[prost(int32, optional, tag = "1")]
684 pub input_field: ::core::option::Option<i32>,
685 #[prost(string, optional, tag = "2")]
686 pub error_message: ::core::option::Option<::prost::alloc::string::String>,
687}
688#[allow(clippy::derive_partial_eq_without_eq)]
689#[derive(Clone, PartialEq, ::prost::Message)]
690pub struct WebViewChallenge {
691 #[prost(string, optional, tag = "1")]
692 pub start_url: ::core::option::Option<::prost::alloc::string::String>,
693 #[prost(string, optional, tag = "2")]
694 pub target_url_regexp: ::core::option::Option<::prost::alloc::string::String>,
695 #[prost(string, optional, tag = "3")]
696 pub cancel_button_display_label: ::core::option::Option<
697 ::prost::alloc::string::String,
698 >,
699 #[prost(string, optional, tag = "4")]
700 pub response_target_url_param: ::core::option::Option<
701 ::prost::alloc::string::String,
702 >,
703 #[prost(string, optional, tag = "5")]
704 pub cancel_url_regexp: ::core::option::Option<::prost::alloc::string::String>,
705 #[prost(string, optional, tag = "6")]
706 pub title: ::core::option::Option<::prost::alloc::string::String>,
707}
708#[allow(clippy::derive_partial_eq_without_eq)]
709#[derive(Clone, PartialEq, ::prost::Message)]
710pub struct AddCreditCardPromoOffer {
711 #[prost(string, optional, tag = "1")]
712 pub header_text: ::core::option::Option<::prost::alloc::string::String>,
713 #[prost(string, optional, tag = "2")]
714 pub description_html: ::core::option::Option<::prost::alloc::string::String>,
715 #[prost(message, optional, tag = "3")]
716 pub image: ::core::option::Option<Image>,
717 #[prost(string, optional, tag = "4")]
718 pub introductory_text_html: ::core::option::Option<::prost::alloc::string::String>,
719 #[prost(string, optional, tag = "5")]
720 pub offer_title: ::core::option::Option<::prost::alloc::string::String>,
721 #[prost(string, optional, tag = "6")]
722 pub no_action_description: ::core::option::Option<::prost::alloc::string::String>,
723 #[prost(string, optional, tag = "7")]
724 pub terms_and_conditions_html: ::core::option::Option<
725 ::prost::alloc::string::String,
726 >,
727}
728#[allow(clippy::derive_partial_eq_without_eq)]
729#[derive(Clone, PartialEq, ::prost::Message)]
730pub struct AvailablePromoOffer {
731 #[prost(message, optional, tag = "1")]
732 pub add_credit_card_offer: ::core::option::Option<AddCreditCardPromoOffer>,
733}
734#[allow(clippy::derive_partial_eq_without_eq)]
735#[derive(Clone, PartialEq, ::prost::Message)]
736pub struct CheckPromoOfferResponse {
737 #[prost(message, repeated, tag = "1")]
738 pub available_offer: ::prost::alloc::vec::Vec<AvailablePromoOffer>,
739 #[prost(message, optional, tag = "2")]
740 pub redeemed_offer: ::core::option::Option<RedeemedPromoOffer>,
741 #[prost(bool, optional, tag = "3")]
742 pub checkout_token_required: ::core::option::Option<bool>,
743}
744#[allow(clippy::derive_partial_eq_without_eq)]
745#[derive(Clone, PartialEq, ::prost::Message)]
746pub struct RedeemedPromoOffer {
747 #[prost(string, optional, tag = "1")]
748 pub header_text: ::core::option::Option<::prost::alloc::string::String>,
749 #[prost(string, optional, tag = "2")]
750 pub description_html: ::core::option::Option<::prost::alloc::string::String>,
751 #[prost(message, optional, tag = "3")]
752 pub image: ::core::option::Option<Image>,
753}
754#[allow(clippy::derive_partial_eq_without_eq)]
755#[derive(Clone, PartialEq, ::prost::Message)]
756pub struct DocId {
757 #[prost(string, optional, tag = "1")]
758 pub backend_doc_id: ::core::option::Option<::prost::alloc::string::String>,
759 #[prost(int32, optional, tag = "2", default = "1")]
760 pub r#type: ::core::option::Option<i32>,
761 #[prost(int32, optional, tag = "3")]
762 pub backend: ::core::option::Option<i32>,
763}
764#[allow(clippy::derive_partial_eq_without_eq)]
765#[derive(Clone, Copy, PartialEq, ::prost::Message)]
766pub struct Install {
767 #[prost(fixed64, optional, tag = "1")]
768 pub android_id: ::core::option::Option<u64>,
769 #[prost(int32, optional, tag = "2")]
770 pub version: ::core::option::Option<i32>,
771 #[prost(bool, optional, tag = "3")]
772 pub bundled: ::core::option::Option<bool>,
773 #[prost(bool, optional, tag = "4")]
774 pub pending: ::core::option::Option<bool>,
775 #[prost(int64, optional, tag = "5")]
776 pub last_updated: ::core::option::Option<i64>,
777}
778#[allow(clippy::derive_partial_eq_without_eq)]
779#[derive(Clone, PartialEq, ::prost::Message)]
780pub struct GroupLicenseKey {
781 #[prost(fixed64, optional, tag = "1")]
782 pub dasher_customer_id: ::core::option::Option<u64>,
783 #[prost(message, optional, tag = "2")]
784 pub doc_id: ::core::option::Option<DocId>,
785 #[prost(int32, optional, tag = "3", default = "1")]
786 pub licensed_offer_type: ::core::option::Option<i32>,
787 #[prost(int32, optional, tag = "4")]
788 pub r#type: ::core::option::Option<i32>,
789 #[prost(int32, optional, tag = "5")]
790 pub rental_period_days: ::core::option::Option<i32>,
791}
792#[allow(clippy::derive_partial_eq_without_eq)]
793#[derive(Clone, PartialEq, ::prost::Message)]
794pub struct LicenseTerms {
795 #[prost(message, optional, tag = "1")]
796 pub group_license_key: ::core::option::Option<GroupLicenseKey>,
797}
798#[allow(clippy::derive_partial_eq_without_eq)]
799#[derive(Clone, PartialEq, ::prost::Message)]
800pub struct Offer {
801 #[prost(int64, optional, tag = "1")]
802 pub micros: ::core::option::Option<i64>,
803 #[prost(string, optional, tag = "2")]
804 pub currency_code: ::core::option::Option<::prost::alloc::string::String>,
805 #[prost(string, optional, tag = "3")]
806 pub formatted_amount: ::core::option::Option<::prost::alloc::string::String>,
807 #[prost(message, repeated, tag = "4")]
808 pub converted_price: ::prost::alloc::vec::Vec<Offer>,
809 #[prost(bool, optional, tag = "5")]
810 pub checkout_flow_required: ::core::option::Option<bool>,
811 #[prost(int64, optional, tag = "6")]
812 pub full_price_micros: ::core::option::Option<i64>,
813 #[prost(string, optional, tag = "7")]
814 pub formatted_full_amount: ::core::option::Option<::prost::alloc::string::String>,
815 #[prost(int32, optional, tag = "8", default = "1")]
816 pub offer_type: ::core::option::Option<i32>,
817 #[prost(message, optional, tag = "9")]
818 pub rental_terms: ::core::option::Option<RentalTerms>,
819 #[prost(int64, optional, tag = "10")]
820 pub on_sale_date: ::core::option::Option<i64>,
821 #[prost(string, repeated, tag = "11")]
822 pub promotion_label: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
823 #[prost(message, optional, tag = "12")]
824 pub subscription_terms: ::core::option::Option<SubscriptionTerms>,
825 #[prost(string, optional, tag = "13")]
826 pub formatted_name: ::core::option::Option<::prost::alloc::string::String>,
827 #[prost(string, optional, tag = "14")]
828 pub formatted_description: ::core::option::Option<::prost::alloc::string::String>,
829 #[prost(bool, optional, tag = "15")]
830 pub preorder: ::core::option::Option<bool>,
831 #[prost(int32, optional, tag = "16")]
832 pub on_sale_date_display_time_zone_offset_millis: ::core::option::Option<i32>,
833 #[prost(int32, optional, tag = "17")]
834 pub licensed_offer_type: ::core::option::Option<i32>,
835 #[prost(message, optional, tag = "18")]
836 pub subscription_content_terms: ::core::option::Option<SubscriptionContentTerms>,
837 #[prost(string, optional, tag = "19")]
838 pub offer_id: ::core::option::Option<::prost::alloc::string::String>,
839 #[prost(int64, optional, tag = "20")]
840 pub preorder_fulfillment_display_date: ::core::option::Option<i64>,
841 #[prost(message, optional, tag = "21")]
842 pub license_terms: ::core::option::Option<LicenseTerms>,
843 #[prost(bool, optional, tag = "22")]
844 pub sale: ::core::option::Option<bool>,
845 #[prost(message, optional, tag = "23")]
846 pub voucher_terms: ::core::option::Option<VoucherTerms>,
847 #[prost(message, repeated, tag = "24")]
848 pub offer_payment: ::prost::alloc::vec::Vec<OfferPayment>,
849 #[prost(bool, optional, tag = "25")]
850 pub repeat_last_payment: ::core::option::Option<bool>,
851 #[prost(string, optional, tag = "26")]
852 pub buy_button_label: ::core::option::Option<::prost::alloc::string::String>,
853 #[prost(bool, optional, tag = "27")]
854 pub instant_purchase_enabled: ::core::option::Option<bool>,
855 #[prost(int64, optional, tag = "30")]
856 pub sale_end_timestamp: ::core::option::Option<i64>,
857 #[prost(string, optional, tag = "31")]
858 pub sale_message: ::core::option::Option<::prost::alloc::string::String>,
859}
860#[allow(clippy::derive_partial_eq_without_eq)]
861#[derive(Clone, Copy, PartialEq, ::prost::Message)]
862pub struct MonthAndDay {
863 #[prost(uint32, optional, tag = "1")]
864 pub month: ::core::option::Option<u32>,
865 #[prost(uint32, optional, tag = "2")]
866 pub day: ::core::option::Option<u32>,
867}
868#[allow(clippy::derive_partial_eq_without_eq)]
869#[derive(Clone, Copy, PartialEq, ::prost::Message)]
870pub struct OfferPaymentPeriod {
871 #[prost(message, optional, tag = "1")]
872 pub duration: ::core::option::Option<TimePeriod>,
873 #[prost(message, optional, tag = "2")]
874 pub start: ::core::option::Option<MonthAndDay>,
875 #[prost(message, optional, tag = "3")]
876 pub end: ::core::option::Option<MonthAndDay>,
877}
878#[allow(clippy::derive_partial_eq_without_eq)]
879#[derive(Clone, Copy, PartialEq, ::prost::Message)]
880pub struct OfferPaymentOverride {
881 #[prost(int64, optional, tag = "1")]
882 pub micros: ::core::option::Option<i64>,
883 #[prost(message, optional, tag = "2")]
884 pub start: ::core::option::Option<MonthAndDay>,
885 #[prost(message, optional, tag = "3")]
886 pub end: ::core::option::Option<MonthAndDay>,
887}
888#[allow(clippy::derive_partial_eq_without_eq)]
889#[derive(Clone, PartialEq, ::prost::Message)]
890pub struct OfferPayment {
891 #[prost(int64, optional, tag = "1")]
892 pub micros: ::core::option::Option<i64>,
893 #[prost(string, optional, tag = "2")]
894 pub currency_code: ::core::option::Option<::prost::alloc::string::String>,
895 #[prost(message, optional, tag = "3")]
896 pub offer_payment_period: ::core::option::Option<OfferPaymentPeriod>,
897 #[prost(message, repeated, tag = "4")]
898 pub offer_payment_override: ::prost::alloc::vec::Vec<OfferPaymentOverride>,
899}
900#[allow(clippy::derive_partial_eq_without_eq)]
901#[derive(Clone, Copy, PartialEq, ::prost::Message)]
902pub struct VoucherTerms {}
903#[allow(clippy::derive_partial_eq_without_eq)]
904#[derive(Clone, Copy, PartialEq, ::prost::Message)]
905pub struct RentalTerms {
906 #[prost(int32, optional, tag = "1")]
907 pub d_eprecated_grant_period_seconds: ::core::option::Option<i32>,
908 #[prost(int32, optional, tag = "2")]
909 pub d_eprecated_activate_period_seconds: ::core::option::Option<i32>,
910 #[prost(message, optional, tag = "3")]
911 pub grant_period: ::core::option::Option<TimePeriod>,
912 #[prost(message, optional, tag = "4")]
913 pub activate_period: ::core::option::Option<TimePeriod>,
914}
915#[allow(clippy::derive_partial_eq_without_eq)]
916#[derive(Clone, PartialEq, ::prost::Message)]
917pub struct SignedData {
918 #[prost(string, optional, tag = "1")]
919 pub signed_data: ::core::option::Option<::prost::alloc::string::String>,
920 #[prost(string, optional, tag = "2")]
921 pub signature: ::core::option::Option<::prost::alloc::string::String>,
922}
923#[allow(clippy::derive_partial_eq_without_eq)]
924#[derive(Clone, PartialEq, ::prost::Message)]
925pub struct SubscriptionContentTerms {
926 #[prost(message, optional, tag = "1")]
927 pub required_subscription: ::core::option::Option<DocId>,
928}
929#[allow(clippy::derive_partial_eq_without_eq)]
930#[derive(Clone, Copy, PartialEq, ::prost::Message)]
931pub struct GroupLicenseInfo {
932 #[prost(int32, optional, tag = "1")]
933 pub licensed_offer_type: ::core::option::Option<i32>,
934 #[prost(fixed64, optional, tag = "2")]
935 pub gaia_group_id: ::core::option::Option<u64>,
936}
937#[allow(clippy::derive_partial_eq_without_eq)]
938#[derive(Clone, PartialEq, ::prost::Message)]
939pub struct LicensedDocumentInfo {
940 #[prost(fixed64, repeated, packed = "false", tag = "1")]
941 pub gaia_group_id: ::prost::alloc::vec::Vec<u64>,
942}
943#[allow(clippy::derive_partial_eq_without_eq)]
944#[derive(Clone, PartialEq, ::prost::Message)]
945pub struct OwnershipInfo {
946 #[prost(int64, optional, tag = "1")]
947 pub initiation_timestamp: ::core::option::Option<i64>,
948 #[prost(int64, optional, tag = "2")]
949 pub valid_until_timestamp: ::core::option::Option<i64>,
950 #[prost(bool, optional, tag = "3")]
951 pub auto_renewing: ::core::option::Option<bool>,
952 #[prost(int64, optional, tag = "4")]
953 pub refund_timeout_timestamp: ::core::option::Option<i64>,
954 #[prost(int64, optional, tag = "5")]
955 pub post_delivery_refund_window_millis: ::core::option::Option<i64>,
956 #[prost(message, optional, tag = "6")]
957 pub developer_purchase_info: ::core::option::Option<SignedData>,
958 #[prost(bool, optional, tag = "7")]
959 pub pre_ordered: ::core::option::Option<bool>,
960 #[prost(bool, optional, tag = "8")]
961 pub hidden: ::core::option::Option<bool>,
962 #[prost(message, optional, tag = "9")]
963 pub rental_terms: ::core::option::Option<RentalTerms>,
964 #[prost(message, optional, tag = "10")]
965 pub group_license_info: ::core::option::Option<GroupLicenseInfo>,
966 #[prost(message, optional, tag = "11")]
967 pub licensed_document_info: ::core::option::Option<LicensedDocumentInfo>,
968 #[prost(int32, optional, tag = "12")]
969 pub quantity: ::core::option::Option<i32>,
970 #[prost(int64, optional, tag = "14")]
971 pub library_expiration_timestamp: ::core::option::Option<i64>,
972}
973#[allow(clippy::derive_partial_eq_without_eq)]
974#[derive(Clone, Copy, PartialEq, ::prost::Message)]
975pub struct SubscriptionTerms {
976 #[prost(message, optional, tag = "1")]
977 pub recurring_period: ::core::option::Option<TimePeriod>,
978 #[prost(message, optional, tag = "2")]
979 pub trial_period: ::core::option::Option<TimePeriod>,
980}
981#[allow(clippy::derive_partial_eq_without_eq)]
982#[derive(Clone, Copy, PartialEq, ::prost::Message)]
983pub struct TimePeriod {
984 #[prost(int32, optional, tag = "1")]
985 pub unit: ::core::option::Option<i32>,
986 #[prost(int32, optional, tag = "2")]
987 pub count: ::core::option::Option<i32>,
988}
989#[allow(clippy::derive_partial_eq_without_eq)]
990#[derive(Clone, PartialEq, ::prost::Message)]
991pub struct BillingAddressSpec {
992 #[prost(int32, optional, tag = "1")]
993 pub billing_address_type: ::core::option::Option<i32>,
994 #[prost(int32, repeated, packed = "false", tag = "2")]
995 pub required_field: ::prost::alloc::vec::Vec<i32>,
996}
997#[allow(clippy::derive_partial_eq_without_eq)]
998#[derive(Clone, PartialEq, ::prost::Message)]
999pub struct BillingProfile {
1000 #[prost(message, repeated, tag = "1")]
1001 pub instrument: ::prost::alloc::vec::Vec<Instrument>,
1002 #[prost(string, optional, tag = "2")]
1003 pub selected_external_instrument_id: ::core::option::Option<
1004 ::prost::alloc::string::String,
1005 >,
1006 #[prost(message, repeated, tag = "3")]
1007 pub billing_profile_option: ::prost::alloc::vec::Vec<BillingProfileOption>,
1008}
1009#[allow(clippy::derive_partial_eq_without_eq)]
1010#[derive(Clone, PartialEq, ::prost::Message)]
1011pub struct BillingProfileOption {
1012 #[prost(int32, optional, tag = "1")]
1013 pub r#type: ::core::option::Option<i32>,
1014 #[prost(string, optional, tag = "2")]
1015 pub display_title: ::core::option::Option<::prost::alloc::string::String>,
1016 #[prost(string, optional, tag = "3")]
1017 pub external_instrument_id: ::core::option::Option<::prost::alloc::string::String>,
1018 #[prost(message, optional, tag = "4")]
1019 pub topup_info: ::core::option::Option<TopupInfo>,
1020 #[prost(message, optional, tag = "5")]
1021 pub carrier_billing_instrument_status: ::core::option::Option<
1022 CarrierBillingInstrumentStatus,
1023 >,
1024}
1025#[allow(clippy::derive_partial_eq_without_eq)]
1026#[derive(Clone, PartialEq, ::prost::Message)]
1027pub struct CarrierBillingCredentials {
1028 #[prost(string, optional, tag = "1")]
1029 pub value: ::core::option::Option<::prost::alloc::string::String>,
1030 #[prost(int64, optional, tag = "2")]
1031 pub expiration: ::core::option::Option<i64>,
1032}
1033#[allow(clippy::derive_partial_eq_without_eq)]
1034#[derive(Clone, PartialEq, ::prost::Message)]
1035pub struct CarrierBillingInstrument {
1036 #[prost(string, optional, tag = "1")]
1037 pub instrument_key: ::core::option::Option<::prost::alloc::string::String>,
1038 #[prost(string, optional, tag = "2")]
1039 pub account_type: ::core::option::Option<::prost::alloc::string::String>,
1040 #[prost(string, optional, tag = "3")]
1041 pub currency_code: ::core::option::Option<::prost::alloc::string::String>,
1042 #[prost(int64, optional, tag = "4")]
1043 pub transaction_limit: ::core::option::Option<i64>,
1044 #[prost(string, optional, tag = "5")]
1045 pub subscriber_identifier: ::core::option::Option<::prost::alloc::string::String>,
1046 #[prost(message, optional, tag = "6")]
1047 pub encrypted_subscriber_info: ::core::option::Option<EncryptedSubscriberInfo>,
1048 #[prost(message, optional, tag = "7")]
1049 pub credentials: ::core::option::Option<CarrierBillingCredentials>,
1050 #[prost(message, optional, tag = "8")]
1051 pub accepted_carrier_tos: ::core::option::Option<CarrierTos>,
1052}
1053#[allow(clippy::derive_partial_eq_without_eq)]
1054#[derive(Clone, PartialEq, ::prost::Message)]
1055pub struct CarrierBillingInstrumentStatus {
1056 #[prost(message, optional, tag = "1")]
1057 pub carrier_tos: ::core::option::Option<CarrierTos>,
1058 #[prost(bool, optional, tag = "2")]
1059 pub association_required: ::core::option::Option<bool>,
1060 #[prost(bool, optional, tag = "3")]
1061 pub password_required: ::core::option::Option<bool>,
1062 #[prost(message, optional, tag = "4")]
1063 pub carrier_password_prompt: ::core::option::Option<PasswordPrompt>,
1064 #[prost(int32, optional, tag = "5")]
1065 pub api_version: ::core::option::Option<i32>,
1066 #[prost(string, optional, tag = "6")]
1067 pub name: ::core::option::Option<::prost::alloc::string::String>,
1068 #[prost(message, optional, tag = "7")]
1069 pub device_association: ::core::option::Option<DeviceAssociation>,
1070 #[prost(string, optional, tag = "8")]
1071 pub carrier_support_phone_number: ::core::option::Option<
1072 ::prost::alloc::string::String,
1073 >,
1074}
1075#[allow(clippy::derive_partial_eq_without_eq)]
1076#[derive(Clone, PartialEq, ::prost::Message)]
1077pub struct CarrierTos {
1078 #[prost(message, optional, tag = "1")]
1079 pub dcb_tos: ::core::option::Option<CarrierTosEntry>,
1080 #[prost(message, optional, tag = "2")]
1081 pub pii_tos: ::core::option::Option<CarrierTosEntry>,
1082 #[prost(bool, optional, tag = "3")]
1083 pub needs_dcb_tos_acceptance: ::core::option::Option<bool>,
1084 #[prost(bool, optional, tag = "4")]
1085 pub needs_pii_tos_acceptance: ::core::option::Option<bool>,
1086}
1087#[allow(clippy::derive_partial_eq_without_eq)]
1088#[derive(Clone, PartialEq, ::prost::Message)]
1089pub struct CarrierTosEntry {
1090 #[prost(string, optional, tag = "1")]
1091 pub url: ::core::option::Option<::prost::alloc::string::String>,
1092 #[prost(string, optional, tag = "2")]
1093 pub version: ::core::option::Option<::prost::alloc::string::String>,
1094}
1095#[allow(clippy::derive_partial_eq_without_eq)]
1096#[derive(Clone, PartialEq, ::prost::Message)]
1097pub struct CreditCardInstrument {
1098 #[prost(int32, optional, tag = "1")]
1099 pub r#type: ::core::option::Option<i32>,
1100 #[prost(string, optional, tag = "2")]
1101 pub escrow_handle: ::core::option::Option<::prost::alloc::string::String>,
1102 #[prost(string, optional, tag = "3")]
1103 pub last_digits: ::core::option::Option<::prost::alloc::string::String>,
1104 #[prost(int32, optional, tag = "4")]
1105 pub expiration_month: ::core::option::Option<i32>,
1106 #[prost(int32, optional, tag = "5")]
1107 pub expiration_year: ::core::option::Option<i32>,
1108 #[prost(message, repeated, tag = "6")]
1109 pub escrow_efe_param: ::prost::alloc::vec::Vec<EfeParam>,
1110}
1111#[allow(clippy::derive_partial_eq_without_eq)]
1112#[derive(Clone, PartialEq, ::prost::Message)]
1113pub struct DeviceAssociation {
1114 #[prost(string, optional, tag = "1")]
1115 pub user_token_request_message: ::core::option::Option<
1116 ::prost::alloc::string::String,
1117 >,
1118 #[prost(string, optional, tag = "2")]
1119 pub user_token_request_address: ::core::option::Option<
1120 ::prost::alloc::string::String,
1121 >,
1122}
1123#[allow(clippy::derive_partial_eq_without_eq)]
1124#[derive(Clone, PartialEq, ::prost::Message)]
1125pub struct DisabledInfo {
1126 #[prost(int32, optional, tag = "1")]
1127 pub disabled_reason: ::core::option::Option<i32>,
1128 #[prost(string, optional, tag = "2")]
1129 pub disabled_message_html: ::core::option::Option<::prost::alloc::string::String>,
1130 #[prost(string, optional, tag = "3")]
1131 pub error_message: ::core::option::Option<::prost::alloc::string::String>,
1132}
1133#[allow(clippy::derive_partial_eq_without_eq)]
1134#[derive(Clone, PartialEq, ::prost::Message)]
1135pub struct EfeParam {
1136 #[prost(int32, optional, tag = "1")]
1137 pub key: ::core::option::Option<i32>,
1138 #[prost(string, optional, tag = "2")]
1139 pub value: ::core::option::Option<::prost::alloc::string::String>,
1140}
1141#[allow(clippy::derive_partial_eq_without_eq)]
1142#[derive(Clone, PartialEq, ::prost::Message)]
1143pub struct Instrument {
1144 #[prost(string, optional, tag = "1")]
1145 pub instrument_id: ::core::option::Option<::prost::alloc::string::String>,
1146 #[prost(message, optional, tag = "2")]
1147 pub billing_address: ::core::option::Option<Address>,
1148 #[prost(message, optional, tag = "3")]
1149 pub credit_card: ::core::option::Option<CreditCardInstrument>,
1150 #[prost(message, optional, tag = "4")]
1151 pub carrier_billing: ::core::option::Option<CarrierBillingInstrument>,
1152 #[prost(message, optional, tag = "5")]
1153 pub billing_address_spec: ::core::option::Option<BillingAddressSpec>,
1154 #[prost(int32, optional, tag = "6")]
1155 pub instrument_family: ::core::option::Option<i32>,
1156 #[prost(message, optional, tag = "7")]
1157 pub carrier_billing_status: ::core::option::Option<CarrierBillingInstrumentStatus>,
1158 #[prost(string, optional, tag = "8")]
1159 pub display_title: ::core::option::Option<::prost::alloc::string::String>,
1160 #[prost(message, optional, tag = "9")]
1161 pub topup_info_deprecated: ::core::option::Option<TopupInfo>,
1162 #[prost(int32, optional, tag = "10")]
1163 pub version: ::core::option::Option<i32>,
1164 #[prost(message, optional, tag = "11")]
1165 pub stored_value: ::core::option::Option<StoredValueInstrument>,
1166 #[prost(message, repeated, tag = "12")]
1167 pub disabled_info: ::prost::alloc::vec::Vec<DisabledInfo>,
1168}
1169#[allow(clippy::derive_partial_eq_without_eq)]
1170#[derive(Clone, PartialEq, ::prost::Message)]
1171pub struct InstrumentSetupInfo {
1172 #[prost(int32, optional, tag = "1")]
1173 pub instrument_family: ::core::option::Option<i32>,
1174 #[prost(bool, optional, tag = "2")]
1175 pub supported: ::core::option::Option<bool>,
1176 #[prost(message, optional, tag = "3")]
1177 pub address_challenge: ::core::option::Option<AddressChallenge>,
1178 #[prost(message, optional, tag = "4")]
1179 pub balance: ::core::option::Option<Money>,
1180 #[prost(string, repeated, tag = "5")]
1181 pub footer_html: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1182}
1183#[allow(clippy::derive_partial_eq_without_eq)]
1184#[derive(Clone, PartialEq, ::prost::Message)]
1185pub struct PasswordPrompt {
1186 #[prost(string, optional, tag = "1")]
1187 pub prompt: ::core::option::Option<::prost::alloc::string::String>,
1188 #[prost(string, optional, tag = "2")]
1189 pub forgot_password_url: ::core::option::Option<::prost::alloc::string::String>,
1190}
1191#[allow(clippy::derive_partial_eq_without_eq)]
1192#[derive(Clone, PartialEq, ::prost::Message)]
1193pub struct StoredValueInstrument {
1194 #[prost(int32, optional, tag = "1")]
1195 pub r#type: ::core::option::Option<i32>,
1196 #[prost(message, optional, tag = "2")]
1197 pub balance: ::core::option::Option<Money>,
1198 #[prost(message, optional, tag = "3")]
1199 pub topup_info: ::core::option::Option<TopupInfo>,
1200}
1201#[allow(clippy::derive_partial_eq_without_eq)]
1202#[derive(Clone, PartialEq, ::prost::Message)]
1203pub struct TopupInfo {
1204 #[prost(string, optional, tag = "1")]
1205 pub options_container_doc_id_deprecated: ::core::option::Option<
1206 ::prost::alloc::string::String,
1207 >,
1208 #[prost(string, optional, tag = "2")]
1209 pub options_list_url: ::core::option::Option<::prost::alloc::string::String>,
1210 #[prost(string, optional, tag = "3")]
1211 pub subtitle: ::core::option::Option<::prost::alloc::string::String>,
1212 #[prost(message, optional, tag = "4")]
1213 pub options_container_doc_id: ::core::option::Option<DocId>,
1214}
1215#[allow(clippy::derive_partial_eq_without_eq)]
1216#[derive(Clone, PartialEq, ::prost::Message)]
1217pub struct ConsumePurchaseResponse {
1218 #[prost(message, optional, tag = "1")]
1219 pub library_update: ::core::option::Option<LibraryUpdate>,
1220 #[prost(int32, optional, tag = "2")]
1221 pub status: ::core::option::Option<i32>,
1222}
1223#[allow(clippy::derive_partial_eq_without_eq)]
1224#[derive(Clone, PartialEq, ::prost::Message)]
1225pub struct ContainerMetadata {
1226 #[prost(string, optional, tag = "1")]
1227 pub browse_url: ::core::option::Option<::prost::alloc::string::String>,
1228 #[prost(string, optional, tag = "2")]
1229 pub next_page_url: ::core::option::Option<::prost::alloc::string::String>,
1230 #[prost(double, optional, tag = "3")]
1231 pub relevance: ::core::option::Option<f64>,
1232 #[prost(int64, optional, tag = "4")]
1233 pub estimated_results: ::core::option::Option<i64>,
1234 #[prost(string, optional, tag = "5")]
1235 pub analytics_cookie: ::core::option::Option<::prost::alloc::string::String>,
1236 #[prost(bool, optional, tag = "6")]
1237 pub ordered: ::core::option::Option<bool>,
1238 #[prost(message, repeated, tag = "7")]
1239 pub container_view: ::prost::alloc::vec::Vec<ContainerView>,
1240 #[prost(message, optional, tag = "8")]
1241 pub left_icon: ::core::option::Option<Image>,
1242}
1243#[allow(clippy::derive_partial_eq_without_eq)]
1244#[derive(Clone, PartialEq, ::prost::Message)]
1245pub struct ContainerView {
1246 #[prost(bool, optional, tag = "1")]
1247 pub selected: ::core::option::Option<bool>,
1248 #[prost(string, optional, tag = "2")]
1249 pub title: ::core::option::Option<::prost::alloc::string::String>,
1250 #[prost(string, optional, tag = "3")]
1251 pub list_url: ::core::option::Option<::prost::alloc::string::String>,
1252 #[prost(bytes = "vec", optional, tag = "4")]
1253 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1254}
1255#[allow(clippy::derive_partial_eq_without_eq)]
1256#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1257pub struct FlagContentResponse {}
1258#[allow(clippy::derive_partial_eq_without_eq)]
1259#[derive(Clone, PartialEq, ::prost::Message)]
1260pub struct ClientDownloadRequest {
1261 #[prost(string, optional, tag = "1")]
1262 pub url: ::core::option::Option<::prost::alloc::string::String>,
1263 #[prost(message, optional, tag = "2")]
1264 pub digests: ::core::option::Option<client_download_request::Digests>,
1265 #[prost(int64, optional, tag = "3")]
1266 pub length: ::core::option::Option<i64>,
1267 #[prost(message, repeated, tag = "4")]
1268 pub resources: ::prost::alloc::vec::Vec<client_download_request::Resource>,
1269 #[prost(message, optional, tag = "5")]
1270 pub signature: ::core::option::Option<client_download_request::SignatureInfo>,
1271 #[prost(bool, optional, tag = "6")]
1272 pub user_initiated: ::core::option::Option<bool>,
1273 #[prost(string, repeated, tag = "8")]
1274 pub client_asn: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1275 #[prost(string, optional, tag = "9")]
1276 pub file_basename: ::core::option::Option<::prost::alloc::string::String>,
1277 #[prost(int32, optional, tag = "10")]
1278 pub download_type: ::core::option::Option<i32>,
1279 #[prost(string, optional, tag = "11")]
1280 pub locale: ::core::option::Option<::prost::alloc::string::String>,
1281 #[prost(message, optional, tag = "12")]
1282 pub apk_info: ::core::option::Option<client_download_request::ApkInfo>,
1283 #[prost(fixed64, optional, tag = "13")]
1284 pub android_id: ::core::option::Option<u64>,
1285 #[prost(string, repeated, tag = "15")]
1286 pub originating_packages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1287 #[prost(message, optional, tag = "17")]
1288 pub originating_signature: ::core::option::Option<
1289 client_download_request::SignatureInfo,
1290 >,
1291}
1292pub mod client_download_request {
1294 #[allow(clippy::derive_partial_eq_without_eq)]
1295 #[derive(Clone, PartialEq, ::prost::Message)]
1296 pub struct ApkInfo {
1297 #[prost(string, optional, tag = "1")]
1298 pub package_name: ::core::option::Option<::prost::alloc::string::String>,
1299 #[prost(int32, optional, tag = "2")]
1300 pub version_code: ::core::option::Option<i32>,
1301 }
1302 #[allow(clippy::derive_partial_eq_without_eq)]
1303 #[derive(Clone, PartialEq, ::prost::Message)]
1304 pub struct CertificateChain {
1305 #[prost(message, repeated, tag = "1")]
1306 pub element: ::prost::alloc::vec::Vec<certificate_chain::Element>,
1307 }
1308 pub mod certificate_chain {
1310 #[allow(clippy::derive_partial_eq_without_eq)]
1311 #[derive(Clone, PartialEq, ::prost::Message)]
1312 pub struct Element {
1313 #[prost(bytes = "vec", optional, tag = "1")]
1314 pub certificate: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1315 #[prost(bool, optional, tag = "2")]
1316 pub parsed_successfully: ::core::option::Option<bool>,
1317 #[prost(bytes = "vec", optional, tag = "3")]
1318 pub subject: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1319 #[prost(bytes = "vec", optional, tag = "4")]
1320 pub issuer: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1321 #[prost(bytes = "vec", optional, tag = "5")]
1322 pub fingerprint: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1323 #[prost(int64, optional, tag = "6")]
1324 pub expiry_time: ::core::option::Option<i64>,
1325 #[prost(int64, optional, tag = "7")]
1326 pub start_time: ::core::option::Option<i64>,
1327 }
1328 }
1329 #[allow(clippy::derive_partial_eq_without_eq)]
1330 #[derive(Clone, PartialEq, ::prost::Message)]
1331 pub struct Digests {
1332 #[prost(bytes = "vec", optional, tag = "1")]
1333 pub sha256: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1334 #[prost(bytes = "vec", optional, tag = "2")]
1335 pub sha1: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1336 #[prost(bytes = "vec", optional, tag = "3")]
1337 pub md5: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1338 }
1339 #[allow(clippy::derive_partial_eq_without_eq)]
1340 #[derive(Clone, PartialEq, ::prost::Message)]
1341 pub struct Resource {
1342 #[prost(string, optional, tag = "1")]
1343 pub url: ::core::option::Option<::prost::alloc::string::String>,
1344 #[prost(int32, optional, tag = "2")]
1345 pub r#type: ::core::option::Option<i32>,
1346 #[prost(bytes = "vec", optional, tag = "3")]
1347 pub remote_ip: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1348 #[prost(string, optional, tag = "4")]
1349 pub referrer: ::core::option::Option<::prost::alloc::string::String>,
1350 }
1351 #[allow(clippy::derive_partial_eq_without_eq)]
1352 #[derive(Clone, PartialEq, ::prost::Message)]
1353 pub struct SignatureInfo {
1354 #[prost(message, repeated, tag = "1")]
1355 pub certificate_chain: ::prost::alloc::vec::Vec<CertificateChain>,
1356 #[prost(bool, optional, tag = "2")]
1357 pub trusted: ::core::option::Option<bool>,
1358 }
1359}
1360#[allow(clippy::derive_partial_eq_without_eq)]
1361#[derive(Clone, PartialEq, ::prost::Message)]
1362pub struct ClientDownloadResponse {
1363 #[prost(int32, optional, tag = "1")]
1364 pub verdict: ::core::option::Option<i32>,
1365 #[prost(message, optional, tag = "2")]
1366 pub more_info: ::core::option::Option<client_download_response::MoreInfo>,
1367 #[prost(bytes = "vec", optional, tag = "3")]
1368 pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1369}
1370pub mod client_download_response {
1372 #[allow(clippy::derive_partial_eq_without_eq)]
1373 #[derive(Clone, PartialEq, ::prost::Message)]
1374 pub struct MoreInfo {
1375 #[prost(string, optional, tag = "1")]
1376 pub description: ::core::option::Option<::prost::alloc::string::String>,
1377 #[prost(string, optional, tag = "2")]
1378 pub url: ::core::option::Option<::prost::alloc::string::String>,
1379 }
1380}
1381#[allow(clippy::derive_partial_eq_without_eq)]
1382#[derive(Clone, PartialEq, ::prost::Message)]
1383pub struct ClientDownloadStatsRequest {
1384 #[prost(int32, optional, tag = "1")]
1385 pub user_decision: ::core::option::Option<i32>,
1386 #[prost(bytes = "vec", optional, tag = "2")]
1387 pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1388}
1389#[allow(clippy::derive_partial_eq_without_eq)]
1390#[derive(Clone, PartialEq, ::prost::Message)]
1391pub struct DebugInfo {
1392 #[prost(string, repeated, tag = "1")]
1393 pub message: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1394 #[prost(group, repeated, tag = "2")]
1395 pub timing: ::prost::alloc::vec::Vec<debug_info::Timing>,
1396}
1397pub mod debug_info {
1399 #[allow(clippy::derive_partial_eq_without_eq)]
1400 #[derive(Clone, PartialEq, ::prost::Message)]
1401 pub struct Timing {
1402 #[prost(string, optional, tag = "3")]
1403 pub name: ::core::option::Option<::prost::alloc::string::String>,
1404 #[prost(double, optional, tag = "4")]
1405 pub time_in_ms: ::core::option::Option<f64>,
1406 }
1407}
1408#[allow(clippy::derive_partial_eq_without_eq)]
1409#[derive(Clone, PartialEq, ::prost::Message)]
1410pub struct DebugSettingsResponse {
1411 #[prost(string, optional, tag = "1")]
1412 pub play_country_override: ::core::option::Option<::prost::alloc::string::String>,
1413 #[prost(string, optional, tag = "2")]
1414 pub play_country_debug_info: ::core::option::Option<::prost::alloc::string::String>,
1415}
1416#[allow(clippy::derive_partial_eq_without_eq)]
1417#[derive(Clone, PartialEq, ::prost::Message)]
1418pub struct DeliveryResponse {
1419 #[prost(int32, optional, tag = "1", default = "1")]
1420 pub status: ::core::option::Option<i32>,
1421 #[prost(message, optional, tag = "2")]
1422 pub app_delivery_data: ::core::option::Option<AndroidAppDeliveryData>,
1423}
1424#[allow(clippy::derive_partial_eq_without_eq)]
1425#[derive(Clone, PartialEq, ::prost::Message)]
1426pub struct BulkDetailsEntry {
1427 #[prost(message, optional, tag = "1")]
1428 pub item: ::core::option::Option<Item>,
1429}
1430#[allow(clippy::derive_partial_eq_without_eq)]
1431#[derive(Clone, PartialEq, ::prost::Message)]
1432pub struct BulkDetailsRequest {
1433 #[prost(string, repeated, tag = "1")]
1434 pub doc_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1435 #[prost(bool, optional, tag = "2", default = "true")]
1436 pub include_child_docs: ::core::option::Option<bool>,
1437 #[prost(bool, optional, tag = "3")]
1438 pub include_details: ::core::option::Option<bool>,
1439 #[prost(string, optional, tag = "4")]
1440 pub source_package_name: ::core::option::Option<::prost::alloc::string::String>,
1441 #[prost(int32, repeated, packed = "false", tag = "7")]
1442 pub installed_version_code: ::prost::alloc::vec::Vec<i32>,
1443}
1444#[allow(clippy::derive_partial_eq_without_eq)]
1445#[derive(Clone, PartialEq, ::prost::Message)]
1446pub struct BulkDetailsResponse {
1447 #[prost(message, repeated, tag = "1")]
1448 pub entry: ::prost::alloc::vec::Vec<BulkDetailsEntry>,
1449}
1450#[allow(clippy::derive_partial_eq_without_eq)]
1451#[derive(Clone, PartialEq, ::prost::Message)]
1452pub struct DetailsResponse {
1453 #[prost(string, optional, tag = "2")]
1454 pub analytics_cookie: ::core::option::Option<::prost::alloc::string::String>,
1455 #[prost(message, optional, tag = "3")]
1456 pub user_review: ::core::option::Option<Review>,
1457 #[prost(message, optional, tag = "4")]
1458 pub item: ::core::option::Option<Item>,
1459 #[prost(string, optional, tag = "5")]
1460 pub footer_html: ::core::option::Option<::prost::alloc::string::String>,
1461 #[prost(bytes = "vec", optional, tag = "6")]
1462 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1463 #[prost(message, repeated, tag = "7")]
1464 pub discovery_badge: ::prost::alloc::vec::Vec<DiscoveryBadge>,
1465 #[prost(bool, optional, tag = "8", default = "true")]
1466 pub enable_reviews: ::core::option::Option<bool>,
1467 #[prost(message, optional, tag = "12")]
1468 pub features: ::core::option::Option<Features>,
1469 #[prost(string, optional, tag = "13")]
1470 pub details_stream_url: ::core::option::Option<::prost::alloc::string::String>,
1471 #[prost(string, optional, tag = "14")]
1472 pub user_review_url: ::core::option::Option<::prost::alloc::string::String>,
1473 #[prost(string, optional, tag = "17")]
1474 pub post_acquire_details_stream_url: ::core::option::Option<
1475 ::prost::alloc::string::String,
1476 >,
1477}
1478#[allow(clippy::derive_partial_eq_without_eq)]
1479#[derive(Clone, PartialEq, ::prost::Message)]
1480pub struct DiscoveryBadge {
1481 #[prost(string, optional, tag = "1")]
1482 pub label: ::core::option::Option<::prost::alloc::string::String>,
1483 #[prost(message, optional, tag = "2")]
1484 pub image: ::core::option::Option<Image>,
1485 #[prost(int32, optional, tag = "3")]
1486 pub background_color: ::core::option::Option<i32>,
1487 #[prost(message, optional, tag = "4")]
1488 pub badge_container1: ::core::option::Option<DiscoveryBadgeLink>,
1489 #[prost(bytes = "vec", optional, tag = "5")]
1490 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1491 #[prost(bool, optional, tag = "6")]
1492 pub is_plus_one: ::core::option::Option<bool>,
1493 #[prost(float, optional, tag = "7")]
1494 pub aggregate_rating: ::core::option::Option<f32>,
1495 #[prost(int32, optional, tag = "8")]
1496 pub user_star_rating: ::core::option::Option<i32>,
1497 #[prost(string, optional, tag = "9")]
1498 pub download_count: ::core::option::Option<::prost::alloc::string::String>,
1499 #[prost(string, optional, tag = "10")]
1500 pub download_units: ::core::option::Option<::prost::alloc::string::String>,
1501 #[prost(string, optional, tag = "11")]
1502 pub content_description: ::core::option::Option<::prost::alloc::string::String>,
1503 #[prost(message, optional, tag = "12")]
1504 pub player_badge: ::core::option::Option<PlayerBadge>,
1505 #[prost(bytes = "vec", optional, tag = "13")]
1506 pub family_age_range_badge: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1507 #[prost(bytes = "vec", optional, tag = "14")]
1508 pub family_category_badge: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
1509}
1510#[allow(clippy::derive_partial_eq_without_eq)]
1511#[derive(Clone, PartialEq, ::prost::Message)]
1512pub struct PlayerBadge {
1513 #[prost(message, optional, tag = "1")]
1514 pub overlay_icon: ::core::option::Option<Image>,
1515}
1516#[allow(clippy::derive_partial_eq_without_eq)]
1517#[derive(Clone, PartialEq, ::prost::Message)]
1518pub struct DiscoveryBadgeLink {
1519 #[prost(message, optional, tag = "1")]
1520 pub link: ::core::option::Option<Link>,
1521 #[prost(string, optional, tag = "2")]
1522 pub user_reviews_url: ::core::option::Option<::prost::alloc::string::String>,
1523 #[prost(string, optional, tag = "3")]
1524 pub critic_reviews_url: ::core::option::Option<::prost::alloc::string::String>,
1525}
1526#[allow(clippy::derive_partial_eq_without_eq)]
1527#[derive(Clone, PartialEq, ::prost::Message)]
1528pub struct Features {
1529 #[prost(message, repeated, tag = "1")]
1530 pub feature_presence: ::prost::alloc::vec::Vec<Feature>,
1531 #[prost(message, repeated, tag = "2")]
1532 pub feature_rating: ::prost::alloc::vec::Vec<Feature>,
1533}
1534#[allow(clippy::derive_partial_eq_without_eq)]
1535#[derive(Clone, PartialEq, ::prost::Message)]
1536pub struct Feature {
1537 #[prost(string, optional, tag = "1")]
1538 pub label: ::core::option::Option<::prost::alloc::string::String>,
1539 #[prost(string, optional, tag = "3")]
1540 pub value: ::core::option::Option<::prost::alloc::string::String>,
1541}
1542#[allow(clippy::derive_partial_eq_without_eq)]
1543#[derive(Clone, PartialEq, ::prost::Message)]
1544pub struct DeviceConfigurationProto {
1545 #[prost(int32, optional, tag = "1")]
1546 pub touch_screen: ::core::option::Option<i32>,
1547 #[prost(int32, optional, tag = "2")]
1548 pub keyboard: ::core::option::Option<i32>,
1549 #[prost(int32, optional, tag = "3")]
1550 pub navigation: ::core::option::Option<i32>,
1551 #[prost(int32, optional, tag = "4")]
1552 pub screen_layout: ::core::option::Option<i32>,
1553 #[prost(bool, optional, tag = "5")]
1554 pub has_hard_keyboard: ::core::option::Option<bool>,
1555 #[prost(bool, optional, tag = "6")]
1556 pub has_five_way_navigation: ::core::option::Option<bool>,
1557 #[prost(int32, optional, tag = "7")]
1558 pub screen_density: ::core::option::Option<i32>,
1559 #[prost(int32, optional, tag = "8")]
1560 pub gl_es_version: ::core::option::Option<i32>,
1561 #[prost(string, repeated, tag = "9")]
1562 pub system_shared_library: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1563 #[prost(string, repeated, tag = "10")]
1564 pub system_available_feature: ::prost::alloc::vec::Vec<
1565 ::prost::alloc::string::String,
1566 >,
1567 #[prost(string, repeated, tag = "11")]
1568 pub native_platform: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1569 #[prost(int32, optional, tag = "12")]
1570 pub screen_width: ::core::option::Option<i32>,
1571 #[prost(int32, optional, tag = "13")]
1572 pub screen_height: ::core::option::Option<i32>,
1573 #[prost(string, repeated, tag = "14")]
1574 pub system_supported_locale: ::prost::alloc::vec::Vec<
1575 ::prost::alloc::string::String,
1576 >,
1577 #[prost(string, repeated, tag = "15")]
1578 pub gl_extension: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1579 #[prost(int32, optional, tag = "16")]
1580 pub device_class: ::core::option::Option<i32>,
1581 #[prost(int32, optional, tag = "17", default = "50")]
1582 pub max_apk_download_size_mb: ::core::option::Option<i32>,
1583 #[prost(int32, optional, tag = "18")]
1584 pub smallest_screen_width_dp: ::core::option::Option<i32>,
1585 #[prost(int32, optional, tag = "19", default = "0")]
1586 pub low_ram_device: ::core::option::Option<i32>,
1587 #[prost(int64, optional, tag = "20", default = "8354971648")]
1588 pub total_memory_bytes: ::core::option::Option<i64>,
1589 #[prost(int32, optional, tag = "21", default = "8")]
1590 pub max_num_of_cpu_cores: ::core::option::Option<i32>,
1591 #[prost(message, repeated, tag = "26")]
1592 pub device_feature: ::prost::alloc::vec::Vec<DeviceFeature>,
1593 #[prost(int32, optional, tag = "28", default = "0")]
1594 pub unknown28: ::core::option::Option<i32>,
1595 #[prost(int32, optional, tag = "30", default = "4")]
1596 pub unknown30: ::core::option::Option<i32>,
1597}
1598#[allow(clippy::derive_partial_eq_without_eq)]
1599#[derive(Clone, PartialEq, ::prost::Message)]
1600pub struct DeviceFeature {
1601 #[prost(string, optional, tag = "1")]
1602 pub name: ::core::option::Option<::prost::alloc::string::String>,
1603 #[prost(int32, optional, tag = "2")]
1604 pub value: ::core::option::Option<i32>,
1605}
1606#[allow(clippy::derive_partial_eq_without_eq)]
1607#[derive(Clone, PartialEq, ::prost::Message)]
1608pub struct Document {
1609 #[prost(message, optional, tag = "1")]
1610 pub doc_id: ::core::option::Option<DocId>,
1611 #[prost(message, optional, tag = "2")]
1612 pub fetch_doc_id: ::core::option::Option<DocId>,
1613 #[prost(message, optional, tag = "3")]
1614 pub sample_doc_id: ::core::option::Option<DocId>,
1615 #[prost(string, optional, tag = "4")]
1616 pub title: ::core::option::Option<::prost::alloc::string::String>,
1617 #[prost(string, optional, tag = "5")]
1618 pub url: ::core::option::Option<::prost::alloc::string::String>,
1619 #[prost(string, repeated, tag = "6")]
1620 pub snippet: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1621 #[prost(message, optional, tag = "7")]
1622 pub price_deprecated: ::core::option::Option<Offer>,
1623 #[prost(message, optional, tag = "9")]
1624 pub availability: ::core::option::Option<Availability>,
1625 #[prost(message, repeated, tag = "10")]
1626 pub image: ::prost::alloc::vec::Vec<Image>,
1627 #[prost(message, repeated, tag = "11")]
1628 pub child: ::prost::alloc::vec::Vec<Document>,
1629 #[prost(message, optional, tag = "13")]
1630 pub aggregate_rating: ::core::option::Option<AggregateRating>,
1631 #[prost(message, repeated, tag = "14")]
1632 pub offer: ::prost::alloc::vec::Vec<Offer>,
1633 #[prost(message, repeated, tag = "15")]
1634 pub translated_snippet: ::prost::alloc::vec::Vec<TranslatedText>,
1635 #[prost(message, repeated, tag = "16")]
1636 pub document_variant: ::prost::alloc::vec::Vec<DocumentVariant>,
1637 #[prost(string, repeated, tag = "17")]
1638 pub category_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1639 #[prost(message, repeated, tag = "18")]
1640 pub decoration: ::prost::alloc::vec::Vec<Document>,
1641 #[prost(message, repeated, tag = "19")]
1642 pub parent: ::prost::alloc::vec::Vec<Document>,
1643 #[prost(string, optional, tag = "20")]
1644 pub privacy_policy_url: ::core::option::Option<::prost::alloc::string::String>,
1645 #[prost(string, optional, tag = "21")]
1646 pub consumption_url: ::core::option::Option<::prost::alloc::string::String>,
1647 #[prost(int32, optional, tag = "22")]
1648 pub estimated_num_children: ::core::option::Option<i32>,
1649 #[prost(string, optional, tag = "23")]
1650 pub subtitle: ::core::option::Option<::prost::alloc::string::String>,
1651}
1652#[allow(clippy::derive_partial_eq_without_eq)]
1653#[derive(Clone, PartialEq, ::prost::Message)]
1654pub struct DocumentVariant {
1655 #[prost(int32, optional, tag = "1")]
1656 pub variation_type: ::core::option::Option<i32>,
1657 #[prost(message, optional, tag = "2")]
1658 pub rule: ::core::option::Option<Rule>,
1659 #[prost(string, optional, tag = "3")]
1660 pub title: ::core::option::Option<::prost::alloc::string::String>,
1661 #[prost(string, repeated, tag = "4")]
1662 pub snippet: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1663 #[prost(string, optional, tag = "5")]
1664 pub recent_changes: ::core::option::Option<::prost::alloc::string::String>,
1665 #[prost(message, repeated, tag = "6")]
1666 pub auto_translation: ::prost::alloc::vec::Vec<TranslatedText>,
1667 #[prost(message, repeated, tag = "7")]
1668 pub offer: ::prost::alloc::vec::Vec<Offer>,
1669 #[prost(int64, optional, tag = "9")]
1670 pub channel_id: ::core::option::Option<i64>,
1671 #[prost(message, repeated, tag = "10")]
1672 pub child: ::prost::alloc::vec::Vec<Document>,
1673 #[prost(message, repeated, tag = "11")]
1674 pub decoration: ::prost::alloc::vec::Vec<Document>,
1675 #[prost(message, repeated, tag = "12")]
1676 pub image: ::prost::alloc::vec::Vec<Image>,
1677 #[prost(string, repeated, tag = "13")]
1678 pub category_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1679 #[prost(string, optional, tag = "14")]
1680 pub subtitle: ::core::option::Option<::prost::alloc::string::String>,
1681}
1682#[allow(clippy::derive_partial_eq_without_eq)]
1683#[derive(Clone, PartialEq, ::prost::Message)]
1684pub struct SectionImage {
1685 #[prost(message, repeated, tag = "1")]
1686 pub image_container: ::prost::alloc::vec::Vec<ImageContainer>,
1687}
1688#[allow(clippy::derive_partial_eq_without_eq)]
1689#[derive(Clone, PartialEq, ::prost::Message)]
1690pub struct ImageContainer {
1691 #[prost(message, optional, tag = "4")]
1692 pub image: ::core::option::Option<Image>,
1693}
1694#[allow(clippy::derive_partial_eq_without_eq)]
1695#[derive(Clone, PartialEq, ::prost::Message)]
1696pub struct Image {
1697 #[prost(int32, optional, tag = "1")]
1698 pub image_type: ::core::option::Option<i32>,
1699 #[prost(group, optional, tag = "2")]
1700 pub dimension: ::core::option::Option<image::Dimension>,
1701 #[prost(string, optional, tag = "5")]
1702 pub image_url: ::core::option::Option<::prost::alloc::string::String>,
1703 #[prost(string, optional, tag = "6")]
1704 pub alt_text_localized: ::core::option::Option<::prost::alloc::string::String>,
1705 #[prost(string, optional, tag = "7")]
1706 pub secure_url: ::core::option::Option<::prost::alloc::string::String>,
1707 #[prost(int32, optional, tag = "8")]
1708 pub position_in_sequence: ::core::option::Option<i32>,
1709 #[prost(bool, optional, tag = "9")]
1710 pub supports_fife_url_options: ::core::option::Option<bool>,
1711 #[prost(group, optional, tag = "10")]
1712 pub citation: ::core::option::Option<image::Citation>,
1713 #[prost(int32, optional, tag = "14")]
1714 pub duration_seconds: ::core::option::Option<i32>,
1715 #[prost(string, optional, tag = "15")]
1716 pub fill_color_rgb: ::core::option::Option<::prost::alloc::string::String>,
1717 #[prost(bool, optional, tag = "16")]
1718 pub autogen: ::core::option::Option<bool>,
1719 #[prost(message, optional, tag = "17")]
1720 pub attribution: ::core::option::Option<Attribution>,
1721 #[prost(string, optional, tag = "19")]
1722 pub background_color_rgb: ::core::option::Option<::prost::alloc::string::String>,
1723 #[prost(message, optional, tag = "20")]
1724 pub palette: ::core::option::Option<ImagePalette>,
1725 #[prost(int32, optional, tag = "21")]
1726 pub device_class: ::core::option::Option<i32>,
1727 #[prost(bool, optional, tag = "22")]
1728 pub supports_fife_monogram_option: ::core::option::Option<bool>,
1729 #[prost(string, optional, tag = "28")]
1730 pub image_url_alt: ::core::option::Option<::prost::alloc::string::String>,
1731}
1732pub mod image {
1734 #[allow(clippy::derive_partial_eq_without_eq)]
1735 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1736 pub struct Dimension {
1737 #[prost(int32, optional, tag = "3")]
1738 pub width: ::core::option::Option<i32>,
1739 #[prost(int32, optional, tag = "4")]
1740 pub height: ::core::option::Option<i32>,
1741 #[prost(int32, optional, tag = "18")]
1742 pub aspect_ratio: ::core::option::Option<i32>,
1743 }
1744 #[allow(clippy::derive_partial_eq_without_eq)]
1745 #[derive(Clone, PartialEq, ::prost::Message)]
1746 pub struct Citation {
1747 #[prost(string, optional, tag = "11")]
1748 pub title_localized: ::core::option::Option<::prost::alloc::string::String>,
1749 #[prost(string, optional, tag = "12")]
1750 pub url: ::core::option::Option<::prost::alloc::string::String>,
1751 }
1752}
1753#[allow(clippy::derive_partial_eq_without_eq)]
1754#[derive(Clone, PartialEq, ::prost::Message)]
1755pub struct Attribution {
1756 #[prost(string, optional, tag = "1")]
1757 pub source_title: ::core::option::Option<::prost::alloc::string::String>,
1758 #[prost(string, optional, tag = "2")]
1759 pub source_url: ::core::option::Option<::prost::alloc::string::String>,
1760 #[prost(string, optional, tag = "3")]
1761 pub license_title: ::core::option::Option<::prost::alloc::string::String>,
1762 #[prost(string, optional, tag = "4")]
1763 pub license_url: ::core::option::Option<::prost::alloc::string::String>,
1764}
1765#[allow(clippy::derive_partial_eq_without_eq)]
1766#[derive(Clone, PartialEq, ::prost::Message)]
1767pub struct ImagePalette {
1768 #[prost(string, optional, tag = "1")]
1769 pub light_vibrant_rgb: ::core::option::Option<::prost::alloc::string::String>,
1770 #[prost(string, optional, tag = "2")]
1771 pub vibrant_rgb: ::core::option::Option<::prost::alloc::string::String>,
1772 #[prost(string, optional, tag = "3")]
1773 pub dark_vibrant_rgb: ::core::option::Option<::prost::alloc::string::String>,
1774 #[prost(string, optional, tag = "4")]
1775 pub light_muted_rgb: ::core::option::Option<::prost::alloc::string::String>,
1776 #[prost(string, optional, tag = "5")]
1777 pub muted_rgb: ::core::option::Option<::prost::alloc::string::String>,
1778 #[prost(string, optional, tag = "6")]
1779 pub dark_muted_rgb: ::core::option::Option<::prost::alloc::string::String>,
1780}
1781#[allow(clippy::derive_partial_eq_without_eq)]
1782#[derive(Clone, PartialEq, ::prost::Message)]
1783pub struct TranslatedText {
1784 #[prost(string, optional, tag = "1")]
1785 pub text: ::core::option::Option<::prost::alloc::string::String>,
1786 #[prost(string, optional, tag = "2")]
1787 pub source_locale: ::core::option::Option<::prost::alloc::string::String>,
1788 #[prost(string, optional, tag = "3")]
1789 pub target_locale: ::core::option::Option<::prost::alloc::string::String>,
1790}
1791#[allow(clippy::derive_partial_eq_without_eq)]
1792#[derive(Clone, PartialEq, ::prost::Message)]
1793pub struct PlusOneData {
1794 #[prost(bool, optional, tag = "1")]
1795 pub set_by_user: ::core::option::Option<bool>,
1796 #[prost(int64, optional, tag = "2")]
1797 pub total: ::core::option::Option<i64>,
1798 #[prost(int64, optional, tag = "3")]
1799 pub circles_total: ::core::option::Option<i64>,
1800 #[prost(message, repeated, tag = "4")]
1801 pub circles_people: ::prost::alloc::vec::Vec<PlusPerson>,
1802}
1803#[allow(clippy::derive_partial_eq_without_eq)]
1804#[derive(Clone, PartialEq, ::prost::Message)]
1805pub struct PlusPerson {
1806 #[prost(string, optional, tag = "2")]
1807 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
1808 #[prost(string, optional, tag = "4")]
1809 pub profile_image_url: ::core::option::Option<::prost::alloc::string::String>,
1810}
1811#[allow(clippy::derive_partial_eq_without_eq)]
1812#[derive(Clone, PartialEq, ::prost::Message)]
1813pub struct AppDetails {
1814 #[prost(string, optional, tag = "1")]
1815 pub developer_name: ::core::option::Option<::prost::alloc::string::String>,
1816 #[prost(int32, optional, tag = "2")]
1817 pub major_version_number: ::core::option::Option<i32>,
1818 #[prost(int32, optional, tag = "3")]
1819 pub version_code: ::core::option::Option<i32>,
1820 #[prost(string, optional, tag = "4")]
1821 pub version_string: ::core::option::Option<::prost::alloc::string::String>,
1822 #[prost(string, optional, tag = "5")]
1823 pub title: ::core::option::Option<::prost::alloc::string::String>,
1824 #[prost(string, repeated, tag = "7")]
1825 pub app_category: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1826 #[prost(int32, optional, tag = "8")]
1827 pub content_rating: ::core::option::Option<i32>,
1828 #[prost(int64, optional, tag = "9")]
1829 pub info_download_size: ::core::option::Option<i64>,
1830 #[prost(string, repeated, tag = "10")]
1831 pub permission: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1832 #[prost(string, optional, tag = "11")]
1833 pub developer_email: ::core::option::Option<::prost::alloc::string::String>,
1834 #[prost(string, optional, tag = "12")]
1835 pub developer_website: ::core::option::Option<::prost::alloc::string::String>,
1836 #[prost(string, optional, tag = "13")]
1837 pub info_download: ::core::option::Option<::prost::alloc::string::String>,
1838 #[prost(string, optional, tag = "14")]
1839 pub package_name: ::core::option::Option<::prost::alloc::string::String>,
1840 #[prost(string, optional, tag = "15")]
1841 pub recent_changes_html: ::core::option::Option<::prost::alloc::string::String>,
1842 #[prost(string, optional, tag = "16")]
1843 pub info_updated_on: ::core::option::Option<::prost::alloc::string::String>,
1844 #[prost(message, repeated, tag = "17")]
1845 pub file: ::prost::alloc::vec::Vec<FileMetadata>,
1846 #[prost(string, optional, tag = "18")]
1847 pub app_type: ::core::option::Option<::prost::alloc::string::String>,
1848 #[prost(string, repeated, tag = "19")]
1849 pub certificate_hash: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1850 #[prost(bool, optional, tag = "21", default = "true")]
1851 pub varies_with_device: ::core::option::Option<bool>,
1852 #[prost(message, repeated, tag = "22")]
1853 pub certificate_set: ::prost::alloc::vec::Vec<CertificateSet>,
1854 #[prost(string, repeated, tag = "23")]
1855 pub auto_acquire_free_app_if_higher_version_available_tag: ::prost::alloc::vec::Vec<
1856 ::prost::alloc::string::String,
1857 >,
1858 #[prost(bool, optional, tag = "24")]
1859 pub has_instant_link: ::core::option::Option<bool>,
1860 #[prost(string, repeated, tag = "25")]
1861 pub split_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1862 #[prost(bool, optional, tag = "26")]
1863 pub gamepad_required: ::core::option::Option<bool>,
1864 #[prost(bool, optional, tag = "27")]
1865 pub externally_hosted: ::core::option::Option<bool>,
1866 #[prost(bool, optional, tag = "28")]
1867 pub ever_externally_hosted: ::core::option::Option<bool>,
1868 #[prost(string, optional, tag = "30")]
1869 pub install_notes: ::core::option::Option<::prost::alloc::string::String>,
1870 #[prost(int32, optional, tag = "31")]
1871 pub install_location: ::core::option::Option<i32>,
1872 #[prost(int32, optional, tag = "32")]
1873 pub target_sdk_version: ::core::option::Option<i32>,
1874 #[prost(string, optional, tag = "33")]
1875 pub has_preregistration_promo_code: ::core::option::Option<
1876 ::prost::alloc::string::String,
1877 >,
1878 #[prost(message, optional, tag = "34")]
1879 pub dependencies: ::core::option::Option<Dependencies>,
1880 #[prost(message, optional, tag = "35")]
1881 pub testing_program_info: ::core::option::Option<TestingProgramInfo>,
1882 #[prost(message, optional, tag = "36")]
1883 pub early_access_info: ::core::option::Option<EarlyAccessInfo>,
1884 #[prost(message, optional, tag = "41")]
1885 pub editor_choice: ::core::option::Option<EditorChoice>,
1886 #[prost(string, optional, tag = "43")]
1887 pub instant_link: ::core::option::Option<::prost::alloc::string::String>,
1888 #[prost(string, optional, tag = "45")]
1889 pub developer_address: ::core::option::Option<::prost::alloc::string::String>,
1890 #[prost(message, optional, tag = "46")]
1891 pub publisher: ::core::option::Option<Publisher>,
1892 #[prost(string, optional, tag = "48")]
1893 pub category_name: ::core::option::Option<::prost::alloc::string::String>,
1894 #[prost(int64, optional, tag = "53")]
1895 pub download_count: ::core::option::Option<i64>,
1896 #[prost(string, optional, tag = "61")]
1897 pub download_label_display: ::core::option::Option<::prost::alloc::string::String>,
1898 #[prost(string, optional, tag = "67")]
1899 pub in_app_product: ::core::option::Option<::prost::alloc::string::String>,
1900 #[prost(string, optional, tag = "77")]
1901 pub download_label_abbreviated: ::core::option::Option<
1902 ::prost::alloc::string::String,
1903 >,
1904 #[prost(string, optional, tag = "78")]
1905 pub download_label: ::core::option::Option<::prost::alloc::string::String>,
1906 #[prost(message, optional, tag = "82")]
1907 pub compatibility: ::core::option::Option<Compatibility>,
1908}
1909#[allow(clippy::derive_partial_eq_without_eq)]
1910#[derive(Clone, PartialEq, ::prost::Message)]
1911pub struct Compatibility {
1912 #[prost(message, repeated, tag = "1")]
1913 pub active_devices: ::prost::alloc::vec::Vec<ActiveDevice>,
1914}
1915#[allow(clippy::derive_partial_eq_without_eq)]
1916#[derive(Clone, PartialEq, ::prost::Message)]
1917pub struct ActiveDevice {
1918 #[prost(string, optional, tag = "1")]
1919 pub required_os: ::core::option::Option<::prost::alloc::string::String>,
1920 #[prost(string, optional, tag = "2")]
1921 pub name: ::core::option::Option<::prost::alloc::string::String>,
1922}
1923#[allow(clippy::derive_partial_eq_without_eq)]
1924#[derive(Clone, PartialEq, ::prost::Message)]
1925pub struct ModifyLibrary {
1926 #[prost(string, optional, tag = "1")]
1927 pub id: ::core::option::Option<::prost::alloc::string::String>,
1928 #[prost(string, optional, tag = "2")]
1929 pub package_to_add: ::core::option::Option<::prost::alloc::string::String>,
1930 #[prost(string, optional, tag = "3")]
1931 pub package_to_remove: ::core::option::Option<::prost::alloc::string::String>,
1932}
1933#[allow(clippy::derive_partial_eq_without_eq)]
1934#[derive(Clone, PartialEq, ::prost::Message)]
1935pub struct Publisher {
1936 #[prost(message, optional, tag = "2")]
1937 pub publisher_stream: ::core::option::Option<PublisherStream>,
1938}
1939#[allow(clippy::derive_partial_eq_without_eq)]
1940#[derive(Clone, PartialEq, ::prost::Message)]
1941pub struct PublisherStream {
1942 #[prost(string, optional, tag = "3")]
1943 pub more_url: ::core::option::Option<::prost::alloc::string::String>,
1944 #[prost(string, optional, tag = "11")]
1945 pub query: ::core::option::Option<::prost::alloc::string::String>,
1946}
1947#[allow(clippy::derive_partial_eq_without_eq)]
1948#[derive(Clone, PartialEq, ::prost::Message)]
1949pub struct EditorChoice {
1950 #[prost(string, repeated, tag = "1")]
1951 pub bulletins: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1952 #[prost(string, optional, tag = "2")]
1953 pub description: ::core::option::Option<::prost::alloc::string::String>,
1954 #[prost(message, optional, tag = "3")]
1955 pub stream: ::core::option::Option<SubStream>,
1956 #[prost(string, optional, tag = "4")]
1957 pub title: ::core::option::Option<::prost::alloc::string::String>,
1958 #[prost(string, optional, tag = "5")]
1959 pub subtitle: ::core::option::Option<::prost::alloc::string::String>,
1960}
1961#[allow(clippy::derive_partial_eq_without_eq)]
1962#[derive(Clone, PartialEq, ::prost::Message)]
1963pub struct CertificateSet {
1964 #[prost(string, optional, tag = "1")]
1965 pub certificate_hash: ::core::option::Option<::prost::alloc::string::String>,
1966 #[prost(string, optional, tag = "2")]
1967 pub sha256: ::core::option::Option<::prost::alloc::string::String>,
1968}
1969#[allow(clippy::derive_partial_eq_without_eq)]
1970#[derive(Clone, PartialEq, ::prost::Message)]
1971pub struct Dependencies {
1972 #[prost(int32, optional, tag = "1")]
1973 pub unknown: ::core::option::Option<i32>,
1974 #[prost(int64, optional, tag = "2")]
1975 pub size: ::core::option::Option<i64>,
1976 #[prost(message, repeated, tag = "3")]
1977 pub dependency: ::prost::alloc::vec::Vec<Dependency>,
1978 #[prost(int32, optional, tag = "4")]
1979 pub target_sdk: ::core::option::Option<i32>,
1980 #[prost(int32, optional, tag = "5")]
1981 pub unknown2: ::core::option::Option<i32>,
1982 #[prost(string, repeated, tag = "11")]
1983 pub split_apks: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1984 #[prost(message, repeated, tag = "13")]
1985 pub library_dependency: ::prost::alloc::vec::Vec<LibraryDependency>,
1986}
1987#[allow(clippy::derive_partial_eq_without_eq)]
1988#[derive(Clone, PartialEq, ::prost::Message)]
1989pub struct Dependency {
1990 #[prost(string, optional, tag = "1")]
1991 pub package_name: ::core::option::Option<::prost::alloc::string::String>,
1992 #[prost(int32, optional, tag = "2")]
1993 pub version: ::core::option::Option<i32>,
1994 #[prost(int32, optional, tag = "4")]
1995 pub unknown4: ::core::option::Option<i32>,
1996}
1997#[allow(clippy::derive_partial_eq_without_eq)]
1998#[derive(Clone, PartialEq, ::prost::Message)]
1999pub struct LibraryDependency {
2000 #[prost(string, optional, tag = "1")]
2001 pub package_name: ::core::option::Option<::prost::alloc::string::String>,
2002 #[prost(int32, optional, tag = "2")]
2003 pub version_code: ::core::option::Option<i32>,
2004}
2005#[allow(clippy::derive_partial_eq_without_eq)]
2006#[derive(Clone, PartialEq, ::prost::Message)]
2007pub struct TestingProgramInfo {
2008 #[prost(bool, optional, tag = "2")]
2009 pub subscribed: ::core::option::Option<bool>,
2010 #[prost(bool, optional, tag = "3")]
2011 pub subscribed_and_installed: ::core::option::Option<bool>,
2012 #[prost(string, optional, tag = "5")]
2013 pub email: ::core::option::Option<::prost::alloc::string::String>,
2014 #[prost(string, optional, tag = "7")]
2015 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
2016 #[prost(message, optional, tag = "6")]
2017 pub image: ::core::option::Option<Image>,
2018}
2019#[allow(clippy::derive_partial_eq_without_eq)]
2020#[derive(Clone, PartialEq, ::prost::Message)]
2021pub struct EarlyAccessInfo {
2022 #[prost(string, optional, tag = "3")]
2023 pub email: ::core::option::Option<::prost::alloc::string::String>,
2024}
2025#[allow(clippy::derive_partial_eq_without_eq)]
2026#[derive(Clone, PartialEq, ::prost::Message)]
2027pub struct DocumentDetails {
2028 #[prost(message, optional, tag = "1")]
2029 pub app_details: ::core::option::Option<AppDetails>,
2030 #[prost(message, optional, tag = "7")]
2031 pub subscription_details: ::core::option::Option<SubscriptionDetails>,
2032}
2033#[allow(clippy::derive_partial_eq_without_eq)]
2034#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2035pub struct PatchDetails {
2036 #[prost(int32, optional, tag = "1")]
2037 pub base_version_code: ::core::option::Option<i32>,
2038 #[prost(int64, optional, tag = "2")]
2039 pub size: ::core::option::Option<i64>,
2040}
2041#[allow(clippy::derive_partial_eq_without_eq)]
2042#[derive(Clone, PartialEq, ::prost::Message)]
2043pub struct FileMetadata {
2044 #[prost(int32, optional, tag = "1")]
2045 pub file_type: ::core::option::Option<i32>,
2046 #[prost(int32, optional, tag = "2")]
2047 pub version_code: ::core::option::Option<i32>,
2048 #[prost(int64, optional, tag = "3")]
2049 pub size: ::core::option::Option<i64>,
2050 #[prost(string, optional, tag = "4")]
2051 pub split_id: ::core::option::Option<::prost::alloc::string::String>,
2052 #[prost(int64, optional, tag = "5")]
2053 pub compressed_size: ::core::option::Option<i64>,
2054 #[prost(message, repeated, tag = "6")]
2055 pub patch_details: ::prost::alloc::vec::Vec<PatchDetails>,
2056}
2057#[allow(clippy::derive_partial_eq_without_eq)]
2058#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2059pub struct SubscriptionDetails {
2060 #[prost(int32, optional, tag = "1")]
2061 pub subscription_period: ::core::option::Option<i32>,
2062}
2063#[allow(clippy::derive_partial_eq_without_eq)]
2064#[derive(Clone, PartialEq, ::prost::Message)]
2065pub struct Bucket {
2066 #[prost(bool, optional, tag = "2")]
2067 pub multi_corpus: ::core::option::Option<bool>,
2068 #[prost(string, optional, tag = "3")]
2069 pub title: ::core::option::Option<::prost::alloc::string::String>,
2070 #[prost(string, optional, tag = "4")]
2071 pub icon_url: ::core::option::Option<::prost::alloc::string::String>,
2072 #[prost(string, optional, tag = "5")]
2073 pub full_contents_url: ::core::option::Option<::prost::alloc::string::String>,
2074 #[prost(double, optional, tag = "6")]
2075 pub relevance: ::core::option::Option<f64>,
2076 #[prost(int64, optional, tag = "7")]
2077 pub estimated_results: ::core::option::Option<i64>,
2078 #[prost(string, optional, tag = "8")]
2079 pub analytics_cookie: ::core::option::Option<::prost::alloc::string::String>,
2080 #[prost(string, optional, tag = "9")]
2081 pub full_contents_list_url: ::core::option::Option<::prost::alloc::string::String>,
2082 #[prost(string, optional, tag = "10")]
2083 pub next_page_url: ::core::option::Option<::prost::alloc::string::String>,
2084 #[prost(bool, optional, tag = "11")]
2085 pub ordered: ::core::option::Option<bool>,
2086}
2087#[allow(clippy::derive_partial_eq_without_eq)]
2088#[derive(Clone, PartialEq, ::prost::Message)]
2089pub struct ListResponse {
2090 #[prost(message, repeated, tag = "1")]
2091 pub bucket: ::prost::alloc::vec::Vec<Bucket>,
2092 #[prost(message, repeated, tag = "2")]
2093 pub item: ::prost::alloc::vec::Vec<Item>,
2094}
2095#[allow(clippy::derive_partial_eq_without_eq)]
2096#[derive(Clone, PartialEq, ::prost::Message)]
2097pub struct Item {
2098 #[prost(string, optional, tag = "1")]
2099 pub id: ::core::option::Option<::prost::alloc::string::String>,
2100 #[prost(string, optional, tag = "2")]
2101 pub sub_id: ::core::option::Option<::prost::alloc::string::String>,
2102 #[prost(int32, optional, tag = "3")]
2103 pub r#type: ::core::option::Option<i32>,
2104 #[prost(int32, optional, tag = "4")]
2105 pub category_id: ::core::option::Option<i32>,
2106 #[prost(string, optional, tag = "5")]
2107 pub title: ::core::option::Option<::prost::alloc::string::String>,
2108 #[prost(string, optional, tag = "6")]
2109 pub creator: ::core::option::Option<::prost::alloc::string::String>,
2110 #[prost(string, optional, tag = "7")]
2111 pub description_html: ::core::option::Option<::prost::alloc::string::String>,
2112 #[prost(message, repeated, tag = "8")]
2113 pub offer: ::prost::alloc::vec::Vec<Offer>,
2114 #[prost(message, optional, tag = "9")]
2115 pub availability: ::core::option::Option<Availability>,
2116 #[prost(message, repeated, tag = "10")]
2117 pub image: ::prost::alloc::vec::Vec<Image>,
2118 #[prost(message, repeated, tag = "11")]
2119 pub sub_item: ::prost::alloc::vec::Vec<Item>,
2120 #[prost(message, optional, tag = "12")]
2121 pub container_metadata: ::core::option::Option<ContainerMetadata>,
2122 #[prost(message, optional, tag = "13")]
2123 pub details: ::core::option::Option<DocumentDetails>,
2124 #[prost(message, optional, tag = "14")]
2125 pub aggregate_rating: ::core::option::Option<AggregateRating>,
2126 #[prost(message, optional, tag = "15")]
2127 pub annotations: ::core::option::Option<Annotations>,
2128 #[prost(string, optional, tag = "16")]
2129 pub details_url: ::core::option::Option<::prost::alloc::string::String>,
2130 #[prost(string, optional, tag = "17")]
2131 pub share_url: ::core::option::Option<::prost::alloc::string::String>,
2132 #[prost(string, optional, tag = "18")]
2133 pub reviews_url: ::core::option::Option<::prost::alloc::string::String>,
2134 #[prost(string, optional, tag = "19")]
2135 pub backend_url: ::core::option::Option<::prost::alloc::string::String>,
2136 #[prost(string, optional, tag = "20")]
2137 pub purchase_details_url: ::core::option::Option<::prost::alloc::string::String>,
2138 #[prost(bool, optional, tag = "21")]
2139 pub details_reusable: ::core::option::Option<bool>,
2140 #[prost(string, optional, tag = "22")]
2141 pub subtitle: ::core::option::Option<::prost::alloc::string::String>,
2142 #[prost(string, optional, tag = "23")]
2143 pub translated_description_html: ::core::option::Option<
2144 ::prost::alloc::string::String,
2145 >,
2146 #[prost(bytes = "vec", optional, tag = "24")]
2147 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2148 #[prost(message, optional, tag = "25")]
2149 pub app_info: ::core::option::Option<AppInfo>,
2150 #[prost(bool, optional, tag = "26")]
2151 pub mature: ::core::option::Option<bool>,
2152 #[prost(string, optional, tag = "27")]
2153 pub promotional_description: ::core::option::Option<::prost::alloc::string::String>,
2154 #[prost(bool, optional, tag = "29")]
2155 pub available_for_preregistration: ::core::option::Option<bool>,
2156 #[prost(message, repeated, tag = "30")]
2157 pub tip: ::prost::alloc::vec::Vec<ReviewTip>,
2158 #[prost(string, optional, tag = "31")]
2159 pub review_snippets_url: ::core::option::Option<::prost::alloc::string::String>,
2160 #[prost(bool, optional, tag = "32")]
2161 pub force_shareability: ::core::option::Option<bool>,
2162 #[prost(bool, optional, tag = "33")]
2163 pub use_wishlist_as_primary_action: ::core::option::Option<bool>,
2164 #[prost(string, optional, tag = "34")]
2165 pub review_questions_url: ::core::option::Option<::prost::alloc::string::String>,
2166 #[prost(string, optional, tag = "39")]
2167 pub review_summary_url: ::core::option::Option<::prost::alloc::string::String>,
2168 #[prost(message, optional, tag = "50")]
2169 pub content_rating: ::core::option::Option<ContentRating>,
2170}
2171#[allow(clippy::derive_partial_eq_without_eq)]
2172#[derive(Clone, PartialEq, ::prost::Message)]
2173pub struct ContentRating {
2174 #[prost(string, optional, tag = "1")]
2175 pub title: ::core::option::Option<::prost::alloc::string::String>,
2176 #[prost(string, optional, tag = "2")]
2177 pub recommendation_and_description_html: ::core::option::Option<
2178 ::prost::alloc::string::String,
2179 >,
2180 #[prost(message, optional, tag = "3")]
2181 pub content_rating_image: ::core::option::Option<content_rating::ContentRatingImage>,
2182 #[prost(string, optional, tag = "5")]
2183 pub recommendation: ::core::option::Option<::prost::alloc::string::String>,
2184 #[prost(string, optional, tag = "6")]
2185 pub description: ::core::option::Option<::prost::alloc::string::String>,
2186}
2187pub mod content_rating {
2189 #[allow(clippy::derive_partial_eq_without_eq)]
2190 #[derive(Clone, PartialEq, ::prost::Message)]
2191 pub struct ContentRatingImage {
2192 #[prost(message, optional, tag = "3")]
2193 pub dimension: ::core::option::Option<content_rating_image::Dimension>,
2194 #[prost(message, optional, tag = "6")]
2195 pub image: ::core::option::Option<content_rating_image::Image>,
2196 }
2197 pub mod content_rating_image {
2199 #[allow(clippy::derive_partial_eq_without_eq)]
2200 #[derive(Clone, Copy, PartialEq, ::prost::Message)]
2201 pub struct Dimension {
2202 #[prost(int32, optional, tag = "3")]
2203 pub width: ::core::option::Option<i32>,
2204 #[prost(int32, optional, tag = "4")]
2205 pub height: ::core::option::Option<i32>,
2206 }
2207 #[allow(clippy::derive_partial_eq_without_eq)]
2208 #[derive(Clone, PartialEq, ::prost::Message)]
2209 pub struct Image {
2210 #[prost(string, optional, tag = "1")]
2211 pub url: ::core::option::Option<::prost::alloc::string::String>,
2212 }
2213 }
2214}
2215#[allow(clippy::derive_partial_eq_without_eq)]
2216#[derive(Clone, PartialEq, ::prost::Message)]
2217pub struct AppInfo {
2218 #[prost(string, optional, tag = "1")]
2219 pub title: ::core::option::Option<::prost::alloc::string::String>,
2220 #[prost(message, repeated, tag = "2")]
2221 pub section: ::prost::alloc::vec::Vec<AppInfoSection>,
2222}
2223#[allow(clippy::derive_partial_eq_without_eq)]
2224#[derive(Clone, PartialEq, ::prost::Message)]
2225pub struct AppInfoSection {
2226 #[prost(string, optional, tag = "1")]
2227 pub label: ::core::option::Option<::prost::alloc::string::String>,
2228 #[prost(message, optional, tag = "3")]
2229 pub container: ::core::option::Option<AppInfoContainer>,
2230}
2231#[allow(clippy::derive_partial_eq_without_eq)]
2232#[derive(Clone, PartialEq, ::prost::Message)]
2233pub struct AppInfoContainer {
2234 #[prost(message, optional, tag = "1")]
2235 pub image: ::core::option::Option<Image>,
2236 #[prost(string, optional, tag = "2")]
2237 pub description: ::core::option::Option<::prost::alloc::string::String>,
2238}
2239#[allow(clippy::derive_partial_eq_without_eq)]
2240#[derive(Clone, PartialEq, ::prost::Message)]
2241pub struct Annotations {
2242 #[prost(message, optional, tag = "1")]
2243 pub section_related: ::core::option::Option<SectionMetaData>,
2244 #[prost(message, optional, tag = "2")]
2245 pub section_more_by: ::core::option::Option<SectionMetaData>,
2246 #[prost(message, repeated, tag = "4")]
2247 pub warning: ::prost::alloc::vec::Vec<Warning>,
2248 #[prost(message, optional, tag = "5")]
2249 pub section_body_of_work: ::core::option::Option<SectionMetaData>,
2250 #[prost(message, optional, tag = "6")]
2251 pub section_core_content: ::core::option::Option<SectionMetaData>,
2252 #[prost(message, optional, tag = "7")]
2253 pub overlay_meta_data: ::core::option::Option<OverlayMetaData>,
2254 #[prost(message, repeated, tag = "8")]
2255 pub badge_for_creator: ::prost::alloc::vec::Vec<Badge>,
2256 #[prost(message, repeated, tag = "9")]
2257 pub info_badge: ::prost::alloc::vec::Vec<Badge>,
2258 #[prost(message, optional, tag = "10")]
2259 pub annotation_link: ::core::option::Option<AnnotationLink>,
2260 #[prost(message, optional, tag = "11")]
2261 pub section_cross_sell: ::core::option::Option<SectionMetaData>,
2262 #[prost(message, optional, tag = "12")]
2263 pub section_related_item_type: ::core::option::Option<SectionMetaData>,
2264 #[prost(message, repeated, tag = "13")]
2265 pub promoted_doc: ::prost::alloc::vec::Vec<PromotedDoc>,
2266 #[prost(string, optional, tag = "14")]
2267 pub offer_note: ::core::option::Option<::prost::alloc::string::String>,
2268 #[prost(string, optional, tag = "18")]
2269 pub privacy_policy_url: ::core::option::Option<::prost::alloc::string::String>,
2270 #[prost(message, optional, tag = "19")]
2271 pub suggestion_reasons: ::core::option::Option<SuggestionReasons>,
2272 #[prost(message, optional, tag = "20")]
2273 pub optimal_device_class_warning: ::core::option::Option<Warning>,
2274 #[prost(message, repeated, tag = "21")]
2275 pub badge_container: ::prost::alloc::vec::Vec<BadgeContainer>,
2276 #[prost(message, optional, tag = "22")]
2277 pub section_suggest_for_rating: ::core::option::Option<SectionMetaData>,
2278 #[prost(message, optional, tag = "24")]
2279 pub section_purchase_cross_sell: ::core::option::Option<SectionMetaData>,
2280 #[prost(message, repeated, tag = "25")]
2281 pub overflow_link: ::prost::alloc::vec::Vec<OverflowLink>,
2282 #[prost(string, optional, tag = "27")]
2283 pub attribution_html: ::core::option::Option<::prost::alloc::string::String>,
2284 #[prost(message, optional, tag = "28")]
2285 pub purchase_history_details: ::core::option::Option<PurchaseHistoryDetails>,
2286 #[prost(message, optional, tag = "29")]
2287 pub badge_for_legacy_rating: ::core::option::Option<Badge>,
2288 #[prost(message, repeated, tag = "30")]
2289 pub voucher_info: ::prost::alloc::vec::Vec<VoucherInfo>,
2290 #[prost(message, optional, tag = "32")]
2291 pub section_featured_apps: ::core::option::Option<SectionMetaData>,
2292 #[prost(message, repeated, tag = "34")]
2293 pub details_page_cluster: ::prost::alloc::vec::Vec<SectionMetaData>,
2294 #[prost(message, optional, tag = "35")]
2295 pub video_annotations: ::core::option::Option<VideoAnnotations>,
2296 #[prost(message, optional, tag = "36")]
2297 pub section_purchase_related_topics: ::core::option::Option<SectionMetaData>,
2298 #[prost(message, optional, tag = "37")]
2299 pub my_subscription_details: ::core::option::Option<MySubscriptionDetails>,
2300 #[prost(message, optional, tag = "38")]
2301 pub my_reward_details: ::core::option::Option<MyRewardDetails>,
2302 #[prost(message, repeated, tag = "39")]
2303 pub feature_badge: ::prost::alloc::vec::Vec<Badge>,
2304 #[prost(message, optional, tag = "42")]
2305 pub snippet: ::core::option::Option<Snippet>,
2306 #[prost(string, optional, tag = "48")]
2307 pub downloads_label: ::core::option::Option<::prost::alloc::string::String>,
2308 #[prost(message, optional, tag = "50")]
2309 pub badge_for_rating: ::core::option::Option<Badge>,
2310 #[prost(message, optional, tag = "53")]
2311 pub category_info: ::core::option::Option<CategoryInfo>,
2312 #[prost(message, optional, tag = "60")]
2313 pub reasons: ::core::option::Option<EditorReason>,
2314 #[prost(message, optional, tag = "65")]
2315 pub top_chart_stream: ::core::option::Option<Stream>,
2316 #[prost(string, optional, tag = "66")]
2317 pub category_name: ::core::option::Option<::prost::alloc::string::String>,
2318 #[prost(message, repeated, tag = "71")]
2319 pub chip: ::prost::alloc::vec::Vec<Chip>,
2320 #[prost(message, repeated, tag = "72")]
2321 pub display_badge: ::prost::alloc::vec::Vec<Badge>,
2322 #[prost(string, optional, tag = "80")]
2323 pub live_stream_url: ::core::option::Option<::prost::alloc::string::String>,
2324 #[prost(string, optional, tag = "85")]
2325 pub promotion_stream_url: ::core::option::Option<::prost::alloc::string::String>,
2326 #[prost(message, optional, tag = "91")]
2327 pub overlay_meta_data_extra: ::core::option::Option<OverlayMetaData>,
2328 #[prost(message, optional, tag = "94")]
2329 pub section_image: ::core::option::Option<SectionImage>,
2330 #[prost(message, optional, tag = "97")]
2331 pub category_stream: ::core::option::Option<SubStream>,
2332}
2333#[allow(clippy::derive_partial_eq_without_eq)]
2334#[derive(Clone, PartialEq, ::prost::Message)]
2335pub struct EditorReason {
2336 #[prost(string, repeated, tag = "1")]
2337 pub bulletin: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2338 #[prost(string, optional, tag = "2")]
2339 pub description: ::core::option::Option<::prost::alloc::string::String>,
2340}
2341#[allow(clippy::derive_partial_eq_without_eq)]
2342#[derive(Clone, PartialEq, ::prost::Message)]
2343pub struct SectionMetaData {
2344 #[prost(string, optional, tag = "1")]
2345 pub header: ::core::option::Option<::prost::alloc::string::String>,
2346 #[prost(string, optional, tag = "2")]
2347 pub list_url: ::core::option::Option<::prost::alloc::string::String>,
2348 #[prost(string, optional, tag = "3")]
2349 pub browse_url: ::core::option::Option<::prost::alloc::string::String>,
2350 #[prost(string, optional, tag = "4")]
2351 pub description: ::core::option::Option<::prost::alloc::string::String>,
2352}
2353#[allow(clippy::derive_partial_eq_without_eq)]
2354#[derive(Clone, PartialEq, ::prost::Message)]
2355pub struct OverlayMetaData {
2356 #[prost(message, optional, tag = "1")]
2357 pub overlay_header: ::core::option::Option<OverlayHeader>,
2358 #[prost(message, optional, tag = "181")]
2359 pub overlay_title: ::core::option::Option<OverlayTitle>,
2360 #[prost(message, optional, tag = "182")]
2361 pub overlay_description: ::core::option::Option<OverlayDescription>,
2362}
2363#[allow(clippy::derive_partial_eq_without_eq)]
2364#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2365pub struct OverlayHeader {}
2366#[allow(clippy::derive_partial_eq_without_eq)]
2367#[derive(Clone, PartialEq, ::prost::Message)]
2368pub struct OverlayTitle {
2369 #[prost(string, optional, tag = "1")]
2370 pub title: ::core::option::Option<::prost::alloc::string::String>,
2371 #[prost(message, optional, tag = "3")]
2372 pub composite_image: ::core::option::Option<CompositeImage>,
2373}
2374#[allow(clippy::derive_partial_eq_without_eq)]
2375#[derive(Clone, PartialEq, ::prost::Message)]
2376pub struct CompositeImage {
2377 #[prost(int32, optional, tag = "1")]
2378 pub r#type: ::core::option::Option<i32>,
2379 #[prost(string, optional, tag = "5")]
2380 pub url: ::core::option::Option<::prost::alloc::string::String>,
2381 #[prost(int32, optional, tag = "9")]
2382 pub type_alt: ::core::option::Option<i32>,
2383 #[prost(string, optional, tag = "24")]
2384 pub title: ::core::option::Option<::prost::alloc::string::String>,
2385 #[prost(string, optional, tag = "28")]
2386 pub url_alt: ::core::option::Option<::prost::alloc::string::String>,
2387}
2388#[allow(clippy::derive_partial_eq_without_eq)]
2389#[derive(Clone, PartialEq, ::prost::Message)]
2390pub struct OverlayDescription {
2391 #[prost(string, optional, tag = "2")]
2392 pub description: ::core::option::Option<::prost::alloc::string::String>,
2393}
2394#[allow(clippy::derive_partial_eq_without_eq)]
2395#[derive(Clone, PartialEq, ::prost::Message)]
2396pub struct SuggestionReasons {
2397 #[prost(message, repeated, tag = "2")]
2398 pub reason: ::prost::alloc::vec::Vec<Reason>,
2399 #[prost(message, optional, tag = "4")]
2400 pub neutral_dismissal: ::core::option::Option<Dismissal>,
2401 #[prost(message, optional, tag = "5")]
2402 pub positive_dismissal: ::core::option::Option<Dismissal>,
2403}
2404#[allow(clippy::derive_partial_eq_without_eq)]
2405#[derive(Clone, PartialEq, ::prost::Message)]
2406pub struct Reason {
2407 #[prost(string, optional, tag = "3")]
2408 pub description_html: ::core::option::Option<::prost::alloc::string::String>,
2409 #[prost(message, optional, tag = "4")]
2410 pub reason_plus_one: ::core::option::Option<ReasonPlusOne>,
2411 #[prost(message, optional, tag = "5")]
2412 pub reason_review: ::core::option::Option<ReasonReview>,
2413 #[prost(message, optional, tag = "7")]
2414 pub dismissal: ::core::option::Option<Dismissal>,
2415 #[prost(message, optional, tag = "9")]
2416 pub reason_user_action: ::core::option::Option<ReasonUserAction>,
2417}
2418#[allow(clippy::derive_partial_eq_without_eq)]
2419#[derive(Clone, PartialEq, ::prost::Message)]
2420pub struct ReasonPlusOne {
2421 #[prost(string, optional, tag = "1")]
2422 pub localized_description_html: ::core::option::Option<
2423 ::prost::alloc::string::String,
2424 >,
2425 #[prost(message, repeated, tag = "3")]
2426 pub user_profile: ::prost::alloc::vec::Vec<UserProfile>,
2427}
2428#[allow(clippy::derive_partial_eq_without_eq)]
2429#[derive(Clone, PartialEq, ::prost::Message)]
2430pub struct ReasonReview {
2431 #[prost(message, optional, tag = "1")]
2432 pub review: ::core::option::Option<Review>,
2433}
2434#[allow(clippy::derive_partial_eq_without_eq)]
2435#[derive(Clone, PartialEq, ::prost::Message)]
2436pub struct ReasonUserAction {
2437 #[prost(message, optional, tag = "1")]
2438 pub user_profile: ::core::option::Option<UserProfile>,
2439 #[prost(string, optional, tag = "2")]
2440 pub localized_description_html: ::core::option::Option<
2441 ::prost::alloc::string::String,
2442 >,
2443}
2444#[allow(clippy::derive_partial_eq_without_eq)]
2445#[derive(Clone, PartialEq, ::prost::Message)]
2446pub struct Dismissal {
2447 #[prost(string, optional, tag = "1")]
2448 pub url: ::core::option::Option<::prost::alloc::string::String>,
2449 #[prost(string, optional, tag = "2")]
2450 pub description_html: ::core::option::Option<::prost::alloc::string::String>,
2451}
2452#[allow(clippy::derive_partial_eq_without_eq)]
2453#[derive(Clone, PartialEq, ::prost::Message)]
2454pub struct Snippet {
2455 #[prost(string, optional, tag = "1")]
2456 pub snippet_html: ::core::option::Option<::prost::alloc::string::String>,
2457}
2458#[allow(clippy::derive_partial_eq_without_eq)]
2459#[derive(Clone, PartialEq, ::prost::Message)]
2460pub struct MyRewardDetails {
2461 #[prost(int64, optional, tag = "1")]
2462 pub expiration_time_millis: ::core::option::Option<i64>,
2463 #[prost(string, optional, tag = "2")]
2464 pub expiration_description: ::core::option::Option<::prost::alloc::string::String>,
2465 #[prost(string, optional, tag = "3")]
2466 pub button_label: ::core::option::Option<::prost::alloc::string::String>,
2467 #[prost(message, optional, tag = "4")]
2468 pub link_action: ::core::option::Option<Link>,
2469}
2470#[allow(clippy::derive_partial_eq_without_eq)]
2471#[derive(Clone, PartialEq, ::prost::Message)]
2472pub struct MySubscriptionDetails {
2473 #[prost(string, optional, tag = "1")]
2474 pub subscription_status_html: ::core::option::Option<::prost::alloc::string::String>,
2475 #[prost(string, optional, tag = "2")]
2476 pub title: ::core::option::Option<::prost::alloc::string::String>,
2477 #[prost(string, optional, tag = "3")]
2478 pub title_by_line_html: ::core::option::Option<::prost::alloc::string::String>,
2479 #[prost(string, optional, tag = "4")]
2480 pub formatted_price: ::core::option::Option<::prost::alloc::string::String>,
2481 #[prost(string, optional, tag = "5")]
2482 pub price_by_line_html: ::core::option::Option<::prost::alloc::string::String>,
2483 #[prost(bool, optional, tag = "6")]
2484 pub cancel_subscription: ::core::option::Option<bool>,
2485 #[prost(message, optional, tag = "7")]
2486 pub payment_declined_learn_more_link: ::core::option::Option<Link>,
2487 #[prost(bool, optional, tag = "8")]
2488 pub in_trial_period: ::core::option::Option<bool>,
2489 #[prost(message, optional, tag = "9")]
2490 pub title_by_line_icon: ::core::option::Option<Image>,
2491}
2492#[allow(clippy::derive_partial_eq_without_eq)]
2493#[derive(Clone, PartialEq, ::prost::Message)]
2494pub struct VideoAnnotations {
2495 #[prost(bool, optional, tag = "1")]
2496 pub bundle: ::core::option::Option<bool>,
2497 #[prost(string, optional, tag = "2")]
2498 pub bundle_content_list_url: ::core::option::Option<::prost::alloc::string::String>,
2499 #[prost(string, optional, tag = "3")]
2500 pub extras_content_list_url: ::core::option::Option<::prost::alloc::string::String>,
2501 #[prost(string, optional, tag = "4")]
2502 pub also_available_in_list_url: ::core::option::Option<
2503 ::prost::alloc::string::String,
2504 >,
2505 #[prost(message, repeated, tag = "5")]
2506 pub bundle_doc_id: ::prost::alloc::vec::Vec<DocId>,
2507}
2508#[allow(clippy::derive_partial_eq_without_eq)]
2509#[derive(Clone, PartialEq, ::prost::Message)]
2510pub struct VoucherInfo {
2511 #[prost(message, optional, tag = "1")]
2512 pub item: ::core::option::Option<Item>,
2513 #[prost(message, repeated, tag = "2")]
2514 pub offer: ::prost::alloc::vec::Vec<Offer>,
2515}
2516#[allow(clippy::derive_partial_eq_without_eq)]
2517#[derive(Clone, PartialEq, ::prost::Message)]
2518pub struct BadgeContainer {
2519 #[prost(string, optional, tag = "1")]
2520 pub title: ::core::option::Option<::prost::alloc::string::String>,
2521 #[prost(message, repeated, tag = "2")]
2522 pub image: ::prost::alloc::vec::Vec<Image>,
2523 #[prost(message, repeated, tag = "3")]
2524 pub badge: ::prost::alloc::vec::Vec<Badge>,
2525}
2526#[allow(clippy::derive_partial_eq_without_eq)]
2527#[derive(Clone, PartialEq, ::prost::Message)]
2528pub struct OverflowLink {
2529 #[prost(string, optional, tag = "1")]
2530 pub title: ::core::option::Option<::prost::alloc::string::String>,
2531 #[prost(message, optional, tag = "2")]
2532 pub link: ::core::option::Option<Link>,
2533}
2534#[allow(clippy::derive_partial_eq_without_eq)]
2535#[derive(Clone, PartialEq, ::prost::Message)]
2536pub struct PromotedDoc {
2537 #[prost(string, optional, tag = "1")]
2538 pub title: ::core::option::Option<::prost::alloc::string::String>,
2539 #[prost(string, optional, tag = "2")]
2540 pub subtitle: ::core::option::Option<::prost::alloc::string::String>,
2541 #[prost(message, repeated, tag = "3")]
2542 pub image: ::prost::alloc::vec::Vec<Image>,
2543 #[prost(string, optional, tag = "4")]
2544 pub description: ::core::option::Option<::prost::alloc::string::String>,
2545 #[prost(string, optional, tag = "5")]
2546 pub details_url: ::core::option::Option<::prost::alloc::string::String>,
2547}
2548#[allow(clippy::derive_partial_eq_without_eq)]
2549#[derive(Clone, PartialEq, ::prost::Message)]
2550pub struct Warning {
2551 #[prost(string, optional, tag = "1")]
2552 pub localized_message: ::core::option::Option<::prost::alloc::string::String>,
2553}
2554#[allow(clippy::derive_partial_eq_without_eq)]
2555#[derive(Clone, PartialEq, ::prost::Message)]
2556pub struct AnnotationLink {
2557 #[prost(string, optional, tag = "1")]
2558 pub uri: ::core::option::Option<::prost::alloc::string::String>,
2559 #[prost(message, optional, tag = "2")]
2560 pub resolved_link: ::core::option::Option<ResolvedLink>,
2561 #[prost(int32, optional, tag = "3")]
2562 pub uri_backend: ::core::option::Option<i32>,
2563}
2564#[allow(clippy::derive_partial_eq_without_eq)]
2565#[derive(Clone, PartialEq, ::prost::Message)]
2566pub struct Rated {
2567 #[prost(string, optional, tag = "1")]
2568 pub label: ::core::option::Option<::prost::alloc::string::String>,
2569 #[prost(message, optional, tag = "2")]
2570 pub image: ::core::option::Option<Image>,
2571 #[prost(string, optional, tag = "4")]
2572 pub learn_more_html_link: ::core::option::Option<::prost::alloc::string::String>,
2573}
2574#[allow(clippy::derive_partial_eq_without_eq)]
2575#[derive(Clone, PartialEq, ::prost::Message)]
2576pub struct Badge {
2577 #[prost(string, optional, tag = "1")]
2578 pub major: ::core::option::Option<::prost::alloc::string::String>,
2579 #[prost(message, optional, tag = "2")]
2580 pub image: ::core::option::Option<Image>,
2581 #[prost(string, optional, tag = "3")]
2582 pub minor: ::core::option::Option<::prost::alloc::string::String>,
2583 #[prost(string, optional, tag = "4")]
2584 pub minor_html: ::core::option::Option<::prost::alloc::string::String>,
2585 #[prost(message, optional, tag = "6")]
2586 pub sub_badge: ::core::option::Option<SubBadge>,
2587 #[prost(message, optional, tag = "7")]
2588 pub link: ::core::option::Option<StreamLink>,
2589 #[prost(string, optional, tag = "8")]
2590 pub description: ::core::option::Option<::prost::alloc::string::String>,
2591 #[prost(message, optional, tag = "12")]
2592 pub stream: ::core::option::Option<SubStream>,
2593}
2594#[allow(clippy::derive_partial_eq_without_eq)]
2595#[derive(Clone, PartialEq, ::prost::Message)]
2596pub struct SubBadge {
2597 #[prost(message, optional, tag = "1")]
2598 pub image: ::core::option::Option<Image>,
2599 #[prost(string, optional, tag = "4")]
2600 pub description: ::core::option::Option<::prost::alloc::string::String>,
2601 #[prost(message, optional, tag = "5")]
2602 pub link: ::core::option::Option<StreamLink>,
2603}
2604#[allow(clippy::derive_partial_eq_without_eq)]
2605#[derive(Clone, PartialEq, ::prost::Message)]
2606pub struct Stream {
2607 #[prost(string, optional, tag = "1")]
2608 pub title: ::core::option::Option<::prost::alloc::string::String>,
2609 #[prost(message, optional, tag = "2")]
2610 pub stream: ::core::option::Option<SubStream>,
2611 #[prost(string, optional, tag = "3")]
2612 pub subtitle: ::core::option::Option<::prost::alloc::string::String>,
2613}
2614#[allow(clippy::derive_partial_eq_without_eq)]
2615#[derive(Clone, PartialEq, ::prost::Message)]
2616pub struct SubStream {
2617 #[prost(message, optional, tag = "2")]
2618 pub link: ::core::option::Option<StreamLink>,
2619}
2620#[allow(clippy::derive_partial_eq_without_eq)]
2621#[derive(Clone, PartialEq, ::prost::Message)]
2622pub struct Link {
2623 #[prost(string, optional, tag = "1")]
2624 pub uri: ::core::option::Option<::prost::alloc::string::String>,
2625 #[prost(message, optional, tag = "2")]
2626 pub resolved_link: ::core::option::Option<ResolvedLink>,
2627 #[prost(int32, optional, tag = "3")]
2628 pub uri_backend: ::core::option::Option<i32>,
2629}
2630#[allow(clippy::derive_partial_eq_without_eq)]
2631#[derive(Clone, PartialEq, ::prost::Message)]
2632pub struct StreamLink {
2633 #[prost(string, optional, tag = "1")]
2634 pub url: ::core::option::Option<::prost::alloc::string::String>,
2635 #[prost(string, optional, tag = "2")]
2636 pub stream_url: ::core::option::Option<::prost::alloc::string::String>,
2637 #[prost(string, optional, tag = "3")]
2638 pub search_url: ::core::option::Option<::prost::alloc::string::String>,
2639 #[prost(string, optional, tag = "5")]
2640 pub sub_category_url: ::core::option::Option<::prost::alloc::string::String>,
2641 #[prost(string, optional, tag = "11")]
2642 pub search_query: ::core::option::Option<::prost::alloc::string::String>,
2643}
2644#[allow(clippy::derive_partial_eq_without_eq)]
2645#[derive(Clone, PartialEq, ::prost::Message)]
2646pub struct Chip {
2647 #[prost(string, optional, tag = "1")]
2648 pub title: ::core::option::Option<::prost::alloc::string::String>,
2649 #[prost(message, optional, tag = "2")]
2650 pub stream: ::core::option::Option<SubStream>,
2651}
2652#[allow(clippy::derive_partial_eq_without_eq)]
2653#[derive(Clone, PartialEq, ::prost::Message)]
2654pub struct CategoryInfo {
2655 #[prost(string, optional, tag = "1")]
2656 pub category: ::core::option::Option<::prost::alloc::string::String>,
2657 #[prost(string, optional, tag = "2")]
2658 pub app_category: ::core::option::Option<::prost::alloc::string::String>,
2659}
2660#[allow(clippy::derive_partial_eq_without_eq)]
2661#[derive(Clone, PartialEq, ::prost::Message)]
2662pub struct EncryptedSubscriberInfo {
2663 #[prost(string, optional, tag = "1")]
2664 pub data: ::core::option::Option<::prost::alloc::string::String>,
2665 #[prost(string, optional, tag = "2")]
2666 pub encrypted_key: ::core::option::Option<::prost::alloc::string::String>,
2667 #[prost(string, optional, tag = "3")]
2668 pub signature: ::core::option::Option<::prost::alloc::string::String>,
2669 #[prost(string, optional, tag = "4")]
2670 pub init_vector: ::core::option::Option<::prost::alloc::string::String>,
2671 #[prost(int32, optional, tag = "5")]
2672 pub google_key_version: ::core::option::Option<i32>,
2673 #[prost(int32, optional, tag = "6")]
2674 pub carrier_key_version: ::core::option::Option<i32>,
2675}
2676#[allow(clippy::derive_partial_eq_without_eq)]
2677#[derive(Clone, PartialEq, ::prost::Message)]
2678pub struct Availability {
2679 #[prost(int32, optional, tag = "5")]
2680 pub restriction: ::core::option::Option<i32>,
2681 #[prost(int32, optional, tag = "6")]
2682 pub offer_type: ::core::option::Option<i32>,
2683 #[prost(message, optional, tag = "7")]
2684 pub rule: ::core::option::Option<Rule>,
2685 #[prost(group, repeated, tag = "9")]
2686 pub perdeviceavailabilityrestriction: ::prost::alloc::vec::Vec<
2687 availability::PerDeviceAvailabilityRestriction,
2688 >,
2689 #[prost(bool, optional, tag = "13")]
2690 pub available_if_owned: ::core::option::Option<bool>,
2691 #[prost(message, repeated, tag = "14")]
2692 pub install: ::prost::alloc::vec::Vec<Install>,
2693 #[prost(message, optional, tag = "16")]
2694 pub filter_info: ::core::option::Option<FilterEvaluationInfo>,
2695 #[prost(message, optional, tag = "17")]
2696 pub ownership_info: ::core::option::Option<OwnershipInfo>,
2697 #[prost(message, repeated, tag = "18")]
2698 pub availability_problem: ::prost::alloc::vec::Vec<AvailabilityProblem>,
2699 #[prost(bool, optional, tag = "21")]
2700 pub hidden: ::core::option::Option<bool>,
2701}
2702pub mod availability {
2704 #[allow(clippy::derive_partial_eq_without_eq)]
2705 #[derive(Clone, PartialEq, ::prost::Message)]
2706 pub struct PerDeviceAvailabilityRestriction {
2707 #[prost(fixed64, optional, tag = "10")]
2708 pub android_id: ::core::option::Option<u64>,
2709 #[prost(int32, optional, tag = "11")]
2710 pub device_restriction: ::core::option::Option<i32>,
2711 #[prost(int64, optional, tag = "12")]
2712 pub channel_id: ::core::option::Option<i64>,
2713 #[prost(message, optional, tag = "15")]
2714 pub filter_info: ::core::option::Option<super::FilterEvaluationInfo>,
2715 }
2716}
2717#[allow(clippy::derive_partial_eq_without_eq)]
2718#[derive(Clone, PartialEq, ::prost::Message)]
2719pub struct AvailabilityProblem {
2720 #[prost(int32, optional, tag = "1")]
2721 pub problem_type: ::core::option::Option<i32>,
2722 #[prost(string, repeated, tag = "2")]
2723 pub missing_value: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2724}
2725#[allow(clippy::derive_partial_eq_without_eq)]
2726#[derive(Clone, PartialEq, ::prost::Message)]
2727pub struct FilterEvaluationInfo {
2728 #[prost(message, repeated, tag = "1")]
2729 pub rule_evaluation: ::prost::alloc::vec::Vec<RuleEvaluation>,
2730}
2731#[allow(clippy::derive_partial_eq_without_eq)]
2732#[derive(Clone, PartialEq, ::prost::Message)]
2733pub struct Rule {
2734 #[prost(bool, optional, tag = "1")]
2735 pub negate: ::core::option::Option<bool>,
2736 #[prost(int32, optional, tag = "2")]
2737 pub operator: ::core::option::Option<i32>,
2738 #[prost(int32, optional, tag = "3")]
2739 pub key: ::core::option::Option<i32>,
2740 #[prost(string, repeated, tag = "4")]
2741 pub string_arg: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2742 #[prost(int64, repeated, packed = "false", tag = "5")]
2743 pub long_arg: ::prost::alloc::vec::Vec<i64>,
2744 #[prost(double, repeated, packed = "false", tag = "6")]
2745 pub double_arg: ::prost::alloc::vec::Vec<f64>,
2746 #[prost(message, repeated, tag = "7")]
2747 pub sub_rule: ::prost::alloc::vec::Vec<Rule>,
2748 #[prost(int32, optional, tag = "8")]
2749 pub response_code: ::core::option::Option<i32>,
2750 #[prost(string, optional, tag = "9")]
2751 pub comment: ::core::option::Option<::prost::alloc::string::String>,
2752 #[prost(fixed64, repeated, packed = "false", tag = "10")]
2753 pub string_arg_hash: ::prost::alloc::vec::Vec<u64>,
2754 #[prost(int32, repeated, packed = "false", tag = "11")]
2755 pub const_arg: ::prost::alloc::vec::Vec<i32>,
2756 #[prost(int32, optional, tag = "12")]
2757 pub availability_problem_type: ::core::option::Option<i32>,
2758 #[prost(bool, optional, tag = "13")]
2759 pub include_missing_values: ::core::option::Option<bool>,
2760}
2761#[allow(clippy::derive_partial_eq_without_eq)]
2762#[derive(Clone, PartialEq, ::prost::Message)]
2763pub struct RuleEvaluation {
2764 #[prost(message, optional, tag = "1")]
2765 pub rule: ::core::option::Option<Rule>,
2766 #[prost(string, repeated, tag = "2")]
2767 pub actual_string_value: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2768 #[prost(int64, repeated, packed = "false", tag = "3")]
2769 pub actual_long_value: ::prost::alloc::vec::Vec<i64>,
2770 #[prost(bool, repeated, packed = "false", tag = "4")]
2771 pub actual_bool_value: ::prost::alloc::vec::Vec<bool>,
2772 #[prost(double, repeated, packed = "false", tag = "5")]
2773 pub actual_double_value: ::prost::alloc::vec::Vec<f64>,
2774}
2775#[allow(clippy::derive_partial_eq_without_eq)]
2776#[derive(Clone, PartialEq, ::prost::Message)]
2777pub struct LibraryAppDetails {
2778 #[prost(string, optional, tag = "2")]
2779 pub certificate_hash: ::core::option::Option<::prost::alloc::string::String>,
2780 #[prost(int64, optional, tag = "3")]
2781 pub refund_timeout_timestamp: ::core::option::Option<i64>,
2782 #[prost(int64, optional, tag = "4")]
2783 pub post_delivery_refund_window_millis: ::core::option::Option<i64>,
2784}
2785#[allow(clippy::derive_partial_eq_without_eq)]
2786#[derive(Clone, PartialEq, ::prost::Message)]
2787pub struct LibraryInAppDetails {
2788 #[prost(string, optional, tag = "1")]
2789 pub signed_purchase_data: ::core::option::Option<::prost::alloc::string::String>,
2790 #[prost(string, optional, tag = "2")]
2791 pub signature: ::core::option::Option<::prost::alloc::string::String>,
2792}
2793#[allow(clippy::derive_partial_eq_without_eq)]
2794#[derive(Clone, PartialEq, ::prost::Message)]
2795pub struct LibraryMutation {
2796 #[prost(message, optional, tag = "1")]
2797 pub doc_id: ::core::option::Option<DocId>,
2798 #[prost(int32, optional, tag = "2")]
2799 pub offer_type: ::core::option::Option<i32>,
2800 #[prost(int64, optional, tag = "3")]
2801 pub document_hash: ::core::option::Option<i64>,
2802 #[prost(bool, optional, tag = "4")]
2803 pub deleted: ::core::option::Option<bool>,
2804 #[prost(message, optional, tag = "5")]
2805 pub app_details: ::core::option::Option<LibraryAppDetails>,
2806 #[prost(message, optional, tag = "6")]
2807 pub subscription_details: ::core::option::Option<LibrarySubscriptionDetails>,
2808 #[prost(message, optional, tag = "7")]
2809 pub in_app_details: ::core::option::Option<LibraryInAppDetails>,
2810}
2811#[allow(clippy::derive_partial_eq_without_eq)]
2812#[derive(Clone, PartialEq, ::prost::Message)]
2813pub struct LibrarySubscriptionDetails {
2814 #[prost(int64, optional, tag = "1")]
2815 pub initiation_timestamp: ::core::option::Option<i64>,
2816 #[prost(int64, optional, tag = "2")]
2817 pub valid_until_timestamp: ::core::option::Option<i64>,
2818 #[prost(bool, optional, tag = "3")]
2819 pub auto_renewing: ::core::option::Option<bool>,
2820 #[prost(int64, optional, tag = "4")]
2821 pub trial_until_timestamp: ::core::option::Option<i64>,
2822 #[prost(string, optional, tag = "5")]
2823 pub signed_purchase_data: ::core::option::Option<::prost::alloc::string::String>,
2824 #[prost(string, optional, tag = "6")]
2825 pub signature: ::core::option::Option<::prost::alloc::string::String>,
2826}
2827#[allow(clippy::derive_partial_eq_without_eq)]
2828#[derive(Clone, PartialEq, ::prost::Message)]
2829pub struct LibraryUpdate {
2830 #[prost(int32, optional, tag = "1")]
2831 pub status: ::core::option::Option<i32>,
2832 #[prost(int32, optional, tag = "2")]
2833 pub corpus: ::core::option::Option<i32>,
2834 #[prost(bytes = "vec", optional, tag = "3")]
2835 pub server_token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
2836 #[prost(message, repeated, tag = "4")]
2837 pub mutation: ::prost::alloc::vec::Vec<LibraryMutation>,
2838 #[prost(bool, optional, tag = "5")]
2839 pub has_more: ::core::option::Option<bool>,
2840 #[prost(string, optional, tag = "6")]
2841 pub library_id: ::core::option::Option<::prost::alloc::string::String>,
2842}
2843#[allow(clippy::derive_partial_eq_without_eq)]
2844#[derive(Clone, PartialEq, ::prost::Message)]
2845pub struct AndroidAppNotificationData {
2846 #[prost(int32, optional, tag = "1")]
2847 pub version_code: ::core::option::Option<i32>,
2848 #[prost(string, optional, tag = "2")]
2849 pub asset_id: ::core::option::Option<::prost::alloc::string::String>,
2850}
2851#[allow(clippy::derive_partial_eq_without_eq)]
2852#[derive(Clone, PartialEq, ::prost::Message)]
2853pub struct InAppNotificationData {
2854 #[prost(string, optional, tag = "1")]
2855 pub checkout_order_id: ::core::option::Option<::prost::alloc::string::String>,
2856 #[prost(string, optional, tag = "2")]
2857 pub in_app_notification_id: ::core::option::Option<::prost::alloc::string::String>,
2858}
2859#[allow(clippy::derive_partial_eq_without_eq)]
2860#[derive(Clone, PartialEq, ::prost::Message)]
2861pub struct LibraryDirtyData {
2862 #[prost(int32, optional, tag = "1")]
2863 pub backend: ::core::option::Option<i32>,
2864 #[prost(string, optional, tag = "2")]
2865 pub library_id: ::core::option::Option<::prost::alloc::string::String>,
2866}
2867#[allow(clippy::derive_partial_eq_without_eq)]
2868#[derive(Clone, PartialEq, ::prost::Message)]
2869pub struct Notification {
2870 #[prost(int32, optional, tag = "1")]
2871 pub notification_type: ::core::option::Option<i32>,
2872 #[prost(int64, optional, tag = "3")]
2873 pub timestamp: ::core::option::Option<i64>,
2874 #[prost(message, optional, tag = "4")]
2875 pub doc_id: ::core::option::Option<DocId>,
2876 #[prost(string, optional, tag = "5")]
2877 pub doc_title: ::core::option::Option<::prost::alloc::string::String>,
2878 #[prost(string, optional, tag = "6")]
2879 pub user_email: ::core::option::Option<::prost::alloc::string::String>,
2880 #[prost(message, optional, tag = "7")]
2881 pub app_data: ::core::option::Option<AndroidAppNotificationData>,
2882 #[prost(message, optional, tag = "8")]
2883 pub app_delivery_data: ::core::option::Option<AndroidAppDeliveryData>,
2884 #[prost(message, optional, tag = "9")]
2885 pub purchase_removal_data: ::core::option::Option<PurchaseRemovalData>,
2886 #[prost(message, optional, tag = "10")]
2887 pub user_notification_data: ::core::option::Option<UserNotificationData>,
2888 #[prost(message, optional, tag = "11")]
2889 pub in_app_notification_data: ::core::option::Option<InAppNotificationData>,
2890 #[prost(message, optional, tag = "12")]
2891 pub purchase_declined_data: ::core::option::Option<PurchaseDeclinedData>,
2892 #[prost(string, optional, tag = "13")]
2893 pub notification_id: ::core::option::Option<::prost::alloc::string::String>,
2894 #[prost(message, optional, tag = "14")]
2895 pub library_update: ::core::option::Option<LibraryUpdate>,
2896 #[prost(message, optional, tag = "15")]
2897 pub library_dirty_data: ::core::option::Option<LibraryDirtyData>,
2898}
2899#[allow(clippy::derive_partial_eq_without_eq)]
2900#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2901pub struct PurchaseDeclinedData {
2902 #[prost(int32, optional, tag = "1")]
2903 pub reason: ::core::option::Option<i32>,
2904 #[prost(bool, optional, tag = "2")]
2905 pub show_notification: ::core::option::Option<bool>,
2906}
2907#[allow(clippy::derive_partial_eq_without_eq)]
2908#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2909pub struct PurchaseRemovalData {
2910 #[prost(bool, optional, tag = "1")]
2911 pub malicious: ::core::option::Option<bool>,
2912}
2913#[allow(clippy::derive_partial_eq_without_eq)]
2914#[derive(Clone, PartialEq, ::prost::Message)]
2915pub struct UserNotificationData {
2916 #[prost(string, optional, tag = "1")]
2917 pub notification_title: ::core::option::Option<::prost::alloc::string::String>,
2918 #[prost(string, optional, tag = "2")]
2919 pub notification_text: ::core::option::Option<::prost::alloc::string::String>,
2920 #[prost(string, optional, tag = "3")]
2921 pub ticker_text: ::core::option::Option<::prost::alloc::string::String>,
2922 #[prost(string, optional, tag = "4")]
2923 pub dialog_title: ::core::option::Option<::prost::alloc::string::String>,
2924 #[prost(string, optional, tag = "5")]
2925 pub dialog_text: ::core::option::Option<::prost::alloc::string::String>,
2926}
2927#[allow(clippy::derive_partial_eq_without_eq)]
2928#[derive(Clone, PartialEq, ::prost::Message)]
2929pub struct AggregateRating {
2930 #[prost(int32, optional, tag = "1", default = "1")]
2931 pub r#type: ::core::option::Option<i32>,
2932 #[prost(float, optional, tag = "2")]
2933 pub star_rating: ::core::option::Option<f32>,
2934 #[prost(uint64, optional, tag = "3")]
2935 pub ratings_count: ::core::option::Option<u64>,
2936 #[prost(uint64, optional, tag = "4")]
2937 pub one_star_ratings: ::core::option::Option<u64>,
2938 #[prost(uint64, optional, tag = "5")]
2939 pub two_star_ratings: ::core::option::Option<u64>,
2940 #[prost(uint64, optional, tag = "6")]
2941 pub three_star_ratings: ::core::option::Option<u64>,
2942 #[prost(uint64, optional, tag = "7")]
2943 pub four_star_ratings: ::core::option::Option<u64>,
2944 #[prost(uint64, optional, tag = "8")]
2945 pub five_star_ratings: ::core::option::Option<u64>,
2946 #[prost(uint64, optional, tag = "9")]
2947 pub thumbs_up_count: ::core::option::Option<u64>,
2948 #[prost(uint64, optional, tag = "10")]
2949 pub thumbs_down_count: ::core::option::Option<u64>,
2950 #[prost(uint64, optional, tag = "11")]
2951 pub comment_count: ::core::option::Option<u64>,
2952 #[prost(double, optional, tag = "12")]
2953 pub bayesian_mean_rating: ::core::option::Option<f64>,
2954 #[prost(message, repeated, tag = "13")]
2955 pub tip: ::prost::alloc::vec::Vec<Tip>,
2956 #[prost(string, optional, tag = "17")]
2957 pub rating_label: ::core::option::Option<::prost::alloc::string::String>,
2958 #[prost(string, optional, tag = "18")]
2959 pub rating_count_label_abbreviated: ::core::option::Option<
2960 ::prost::alloc::string::String,
2961 >,
2962 #[prost(string, optional, tag = "19")]
2963 pub rating_count_label: ::core::option::Option<::prost::alloc::string::String>,
2964}
2965#[allow(clippy::derive_partial_eq_without_eq)]
2966#[derive(Clone, PartialEq, ::prost::Message)]
2967pub struct Tip {
2968 #[prost(string, optional, tag = "1")]
2969 pub tip_id: ::core::option::Option<::prost::alloc::string::String>,
2970 #[prost(string, optional, tag = "2")]
2971 pub text: ::core::option::Option<::prost::alloc::string::String>,
2972 #[prost(int32, optional, tag = "3")]
2973 pub polarity: ::core::option::Option<i32>,
2974 #[prost(int64, optional, tag = "4")]
2975 pub review_count: ::core::option::Option<i64>,
2976 #[prost(string, optional, tag = "5")]
2977 pub language: ::core::option::Option<::prost::alloc::string::String>,
2978 #[prost(string, repeated, tag = "6")]
2979 pub snippet_review_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2980}
2981#[allow(clippy::derive_partial_eq_without_eq)]
2982#[derive(Clone, PartialEq, ::prost::Message)]
2983pub struct ReviewTip {
2984 #[prost(string, optional, tag = "1")]
2985 pub tip_url: ::core::option::Option<::prost::alloc::string::String>,
2986 #[prost(string, optional, tag = "2")]
2987 pub text: ::core::option::Option<::prost::alloc::string::String>,
2988 #[prost(int32, optional, tag = "3")]
2989 pub polarity: ::core::option::Option<i32>,
2990 #[prost(int64, optional, tag = "4")]
2991 pub review_count: ::core::option::Option<i64>,
2992}
2993#[allow(clippy::derive_partial_eq_without_eq)]
2994#[derive(Clone, Copy, PartialEq, ::prost::Message)]
2995pub struct AcceptTosResponse {}
2996#[allow(clippy::derive_partial_eq_without_eq)]
2997#[derive(Clone, PartialEq, ::prost::Message)]
2998pub struct CarrierBillingConfig {
2999 #[prost(string, optional, tag = "1")]
3000 pub id: ::core::option::Option<::prost::alloc::string::String>,
3001 #[prost(string, optional, tag = "2")]
3002 pub name: ::core::option::Option<::prost::alloc::string::String>,
3003 #[prost(int32, optional, tag = "3")]
3004 pub api_version: ::core::option::Option<i32>,
3005 #[prost(string, optional, tag = "4")]
3006 pub provisioning_url: ::core::option::Option<::prost::alloc::string::String>,
3007 #[prost(string, optional, tag = "5")]
3008 pub credentials_url: ::core::option::Option<::prost::alloc::string::String>,
3009 #[prost(bool, optional, tag = "6")]
3010 pub tos_required: ::core::option::Option<bool>,
3011 #[prost(bool, optional, tag = "7")]
3012 pub per_transaction_credentials_required: ::core::option::Option<bool>,
3013 #[prost(bool, optional, tag = "8")]
3014 pub send_subscriber_id_with_carrier_billing_requests: ::core::option::Option<bool>,
3015}
3016#[allow(clippy::derive_partial_eq_without_eq)]
3017#[derive(Clone, PartialEq, ::prost::Message)]
3018pub struct BillingConfig {
3019 #[prost(message, optional, tag = "1")]
3020 pub carrier_billing_config: ::core::option::Option<CarrierBillingConfig>,
3021 #[prost(int32, optional, tag = "2")]
3022 pub max_iab_api_version: ::core::option::Option<i32>,
3023}
3024#[allow(clippy::derive_partial_eq_without_eq)]
3025#[derive(Clone, PartialEq, ::prost::Message)]
3026pub struct CorpusMetadata {
3027 #[prost(int32, optional, tag = "1")]
3028 pub backend: ::core::option::Option<i32>,
3029 #[prost(string, optional, tag = "2")]
3030 pub name: ::core::option::Option<::prost::alloc::string::String>,
3031 #[prost(string, optional, tag = "3")]
3032 pub landing_url: ::core::option::Option<::prost::alloc::string::String>,
3033 #[prost(string, optional, tag = "4")]
3034 pub library_name: ::core::option::Option<::prost::alloc::string::String>,
3035 #[prost(string, optional, tag = "6")]
3036 pub recs_widget_url: ::core::option::Option<::prost::alloc::string::String>,
3037 #[prost(string, optional, tag = "7")]
3038 pub shop_name: ::core::option::Option<::prost::alloc::string::String>,
3039}
3040#[allow(clippy::derive_partial_eq_without_eq)]
3041#[derive(Clone, PartialEq, ::prost::Message)]
3042pub struct Experiments {
3043 #[prost(string, repeated, tag = "1")]
3044 pub experiment_id: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3045}
3046#[allow(clippy::derive_partial_eq_without_eq)]
3047#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3048pub struct SelfUpdateConfig {
3049 #[prost(int32, optional, tag = "1")]
3050 pub latest_client_version_code: ::core::option::Option<i32>,
3051}
3052#[allow(clippy::derive_partial_eq_without_eq)]
3053#[derive(Clone, PartialEq, ::prost::Message)]
3054pub struct TocResponse {
3055 #[prost(message, repeated, tag = "1")]
3056 pub corpus: ::prost::alloc::vec::Vec<CorpusMetadata>,
3057 #[prost(int32, optional, tag = "2")]
3058 pub tos_version_deprecated: ::core::option::Option<i32>,
3059 #[prost(string, optional, tag = "3")]
3060 pub tos_content: ::core::option::Option<::prost::alloc::string::String>,
3061 #[prost(string, optional, tag = "4")]
3062 pub home_url: ::core::option::Option<::prost::alloc::string::String>,
3063 #[prost(message, optional, tag = "5")]
3064 pub experiments: ::core::option::Option<Experiments>,
3065 #[prost(string, optional, tag = "6")]
3066 pub tos_checkbox_text_marketing_emails: ::core::option::Option<
3067 ::prost::alloc::string::String,
3068 >,
3069 #[prost(string, optional, tag = "7")]
3070 pub tos_token: ::core::option::Option<::prost::alloc::string::String>,
3071 #[prost(message, optional, tag = "8")]
3072 pub user_settings: ::core::option::Option<UserSettings>,
3073 #[prost(string, optional, tag = "9")]
3074 pub icon_override_url: ::core::option::Option<::prost::alloc::string::String>,
3075 #[prost(message, optional, tag = "10")]
3076 pub self_update_config: ::core::option::Option<SelfUpdateConfig>,
3077 #[prost(bool, optional, tag = "11")]
3078 pub requires_upload_device_config: ::core::option::Option<bool>,
3079 #[prost(message, optional, tag = "12")]
3080 pub billing_config: ::core::option::Option<BillingConfig>,
3081 #[prost(string, optional, tag = "13")]
3082 pub recs_widget_url: ::core::option::Option<::prost::alloc::string::String>,
3083 #[prost(string, optional, tag = "15")]
3084 pub social_home_url: ::core::option::Option<::prost::alloc::string::String>,
3085 #[prost(bool, optional, tag = "16")]
3086 pub age_verification_required: ::core::option::Option<bool>,
3087 #[prost(bool, optional, tag = "17")]
3088 pub g_plus_signup_enabled: ::core::option::Option<bool>,
3089 #[prost(bool, optional, tag = "18")]
3090 pub redeem_enabled: ::core::option::Option<bool>,
3091 #[prost(string, optional, tag = "19")]
3092 pub help_url: ::core::option::Option<::prost::alloc::string::String>,
3093 #[prost(int32, optional, tag = "20")]
3094 pub theme_id: ::core::option::Option<i32>,
3095 #[prost(string, optional, tag = "21")]
3096 pub entertainment_home_url: ::core::option::Option<::prost::alloc::string::String>,
3097 #[prost(string, optional, tag = "22")]
3098 pub cookie: ::core::option::Option<::prost::alloc::string::String>,
3099}
3100#[allow(clippy::derive_partial_eq_without_eq)]
3101#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3102pub struct UserSettings {
3103 #[prost(bool, optional, tag = "1")]
3104 pub tos_checkbox_marketing_emails_opted_in: ::core::option::Option<bool>,
3105 #[prost(message, optional, tag = "2")]
3106 pub privacy_setting: ::core::option::Option<PrivacySetting>,
3107}
3108#[allow(clippy::derive_partial_eq_without_eq)]
3109#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3110pub struct PrivacySetting {
3111 #[prost(int32, optional, tag = "1")]
3112 pub r#type: ::core::option::Option<i32>,
3113 #[prost(int32, optional, tag = "2")]
3114 pub current_status: ::core::option::Option<i32>,
3115 #[prost(bool, optional, tag = "3")]
3116 pub enabled_by_default: ::core::option::Option<bool>,
3117}
3118#[allow(clippy::derive_partial_eq_without_eq)]
3119#[derive(Clone, PartialEq, ::prost::Message)]
3120pub struct Payload {
3121 #[prost(message, optional, tag = "1")]
3122 pub list_response: ::core::option::Option<ListResponse>,
3123 #[prost(message, optional, tag = "2")]
3124 pub details_response: ::core::option::Option<DetailsResponse>,
3125 #[prost(message, optional, tag = "3")]
3126 pub review_response: ::core::option::Option<ReviewResponse>,
3127 #[prost(message, optional, tag = "4")]
3128 pub buy_response: ::core::option::Option<BuyResponse>,
3129 #[prost(message, optional, tag = "5")]
3130 pub search_response: ::core::option::Option<SearchResponse>,
3131 #[prost(message, optional, tag = "6")]
3132 pub toc_response: ::core::option::Option<TocResponse>,
3133 #[prost(message, optional, tag = "7")]
3134 pub browse_response: ::core::option::Option<BrowseResponse>,
3135 #[prost(message, optional, tag = "8")]
3136 pub purchase_status_response: ::core::option::Option<PurchaseStatusResponse>,
3137 #[prost(string, optional, tag = "10")]
3138 pub log_response: ::core::option::Option<::prost::alloc::string::String>,
3139 #[prost(string, optional, tag = "13")]
3140 pub flag_content_response: ::core::option::Option<::prost::alloc::string::String>,
3141 #[prost(message, optional, tag = "19")]
3142 pub bulk_details_response: ::core::option::Option<BulkDetailsResponse>,
3143 #[prost(message, optional, tag = "21")]
3144 pub delivery_response: ::core::option::Option<DeliveryResponse>,
3145 #[prost(message, optional, tag = "22")]
3146 pub accept_tos_response: ::core::option::Option<AcceptTosResponse>,
3147 #[prost(message, optional, tag = "24")]
3148 pub check_promo_offer_response: ::core::option::Option<CheckPromoOfferResponse>,
3149 #[prost(message, optional, tag = "25")]
3150 pub instrument_setup_info_response: ::core::option::Option<
3151 InstrumentSetupInfoResponse,
3152 >,
3153 #[prost(message, optional, tag = "26")]
3154 pub android_checkin_response: ::core::option::Option<AndroidCheckinResponse>,
3155 #[prost(message, optional, tag = "28")]
3156 pub upload_device_config_response: ::core::option::Option<
3157 UploadDeviceConfigResponse,
3158 >,
3159 #[prost(message, optional, tag = "40")]
3160 pub search_suggest_response: ::core::option::Option<SearchSuggestResponse>,
3161 #[prost(message, optional, tag = "30")]
3162 pub consume_purchase_response: ::core::option::Option<ConsumePurchaseResponse>,
3163 #[prost(message, optional, tag = "31")]
3164 pub billing_profile_response: ::core::option::Option<BillingProfileResponse>,
3165 #[prost(message, optional, tag = "34")]
3166 pub debug_settings_response: ::core::option::Option<DebugSettingsResponse>,
3167 #[prost(message, optional, tag = "35")]
3168 pub check_iab_promo_response: ::core::option::Option<CheckIabPromoResponse>,
3169 #[prost(message, optional, tag = "36")]
3170 pub user_activity_settings_response: ::core::option::Option<
3171 UserActivitySettingsResponse,
3172 >,
3173 #[prost(message, optional, tag = "37")]
3174 pub record_user_activity_response: ::core::option::Option<
3175 RecordUserActivityResponse,
3176 >,
3177 #[prost(message, optional, tag = "38")]
3178 pub redeem_code_response: ::core::option::Option<RedeemCodeResponse>,
3179 #[prost(message, optional, tag = "39")]
3180 pub self_update_response: ::core::option::Option<SelfUpdateResponse>,
3181 #[prost(message, optional, tag = "41")]
3182 pub get_initial_instrument_flow_state_response: ::core::option::Option<
3183 GetInitialInstrumentFlowStateResponse,
3184 >,
3185 #[prost(message, optional, tag = "42")]
3186 pub create_instrument_response: ::core::option::Option<CreateInstrumentResponse>,
3187 #[prost(message, optional, tag = "43")]
3188 pub challenge_response: ::core::option::Option<ChallengeResponse>,
3189 #[prost(message, optional, tag = "44")]
3190 pub backup_device_choices_response: ::core::option::Option<
3191 BackDeviceChoicesResponse,
3192 >,
3193 #[prost(message, optional, tag = "45")]
3194 pub backup_document_choices_response: ::core::option::Option<
3195 BackupDocumentChoicesResponse,
3196 >,
3197 #[prost(message, optional, tag = "46")]
3198 pub early_update_response: ::core::option::Option<EarlyUpdateResponse>,
3199 #[prost(message, optional, tag = "47")]
3200 pub preloads_response: ::core::option::Option<PreloadsResponse>,
3201 #[prost(message, optional, tag = "48")]
3202 pub my_accounts_response: ::core::option::Option<MyAccountsResponse>,
3203 #[prost(message, optional, tag = "49")]
3204 pub content_filter_response: ::core::option::Option<ContentFilterResponse>,
3205 #[prost(message, optional, tag = "50")]
3206 pub experiments_response: ::core::option::Option<ExperimentsResponse>,
3207 #[prost(message, optional, tag = "51")]
3208 pub survey_response: ::core::option::Option<SurveyResponse>,
3209 #[prost(message, optional, tag = "52")]
3210 pub ping_response: ::core::option::Option<PingResponse>,
3211 #[prost(message, optional, tag = "53")]
3212 pub update_user_setting_response: ::core::option::Option<UpdateUserSettingResponse>,
3213 #[prost(message, optional, tag = "54")]
3214 pub get_user_settings_response: ::core::option::Option<GetUserSettingsResponse>,
3215 #[prost(message, optional, tag = "56")]
3216 pub get_sharing_settings_response: ::core::option::Option<
3217 GetSharingSettingsResponse,
3218 >,
3219 #[prost(message, optional, tag = "57")]
3220 pub update_sharing_settings_response: ::core::option::Option<
3221 UpdateSharingSettingsResponse,
3222 >,
3223 #[prost(message, optional, tag = "58")]
3224 pub review_snippets_response: ::core::option::Option<ReviewSnippetsResponse>,
3225 #[prost(message, optional, tag = "59")]
3226 pub document_sharing_state_response: ::core::option::Option<
3227 DocumentSharingStateResponse,
3228 >,
3229 #[prost(message, optional, tag = "70")]
3230 pub module_delivery_response: ::core::option::Option<ModuleDeliveryResponse>,
3231 #[prost(message, optional, tag = "80")]
3232 pub testing_program_response: ::core::option::Option<TestingProgramResponse>,
3233 #[prost(message, optional, tag = "129")]
3234 pub review_summary_response: ::core::option::Option<ReviewResponse>,
3235}
3236#[allow(clippy::derive_partial_eq_without_eq)]
3237#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3238pub struct CheckIabPromoResponse {}
3239#[allow(clippy::derive_partial_eq_without_eq)]
3240#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3241pub struct UserActivitySettingsResponse {}
3242#[allow(clippy::derive_partial_eq_without_eq)]
3243#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3244pub struct RecordUserActivityResponse {}
3245#[allow(clippy::derive_partial_eq_without_eq)]
3246#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3247pub struct RedeemCodeResponse {}
3248#[allow(clippy::derive_partial_eq_without_eq)]
3249#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3250pub struct SelfUpdateResponse {}
3251#[allow(clippy::derive_partial_eq_without_eq)]
3252#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3253pub struct GetInitialInstrumentFlowStateResponse {}
3254#[allow(clippy::derive_partial_eq_without_eq)]
3255#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3256pub struct CreateInstrumentResponse {}
3257#[allow(clippy::derive_partial_eq_without_eq)]
3258#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3259pub struct ChallengeResponse {}
3260#[allow(clippy::derive_partial_eq_without_eq)]
3261#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3262pub struct BackDeviceChoicesResponse {}
3263#[allow(clippy::derive_partial_eq_without_eq)]
3264#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3265pub struct BackupDocumentChoicesResponse {}
3266#[allow(clippy::derive_partial_eq_without_eq)]
3267#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3268pub struct EarlyUpdateResponse {}
3269#[allow(clippy::derive_partial_eq_without_eq)]
3270#[derive(Clone, PartialEq, ::prost::Message)]
3271pub struct PreloadsResponse {
3272 #[prost(message, optional, tag = "1")]
3273 pub config_preload: ::core::option::Option<preloads_response::Preload>,
3274 #[prost(message, repeated, tag = "2")]
3275 pub app_preload: ::prost::alloc::vec::Vec<preloads_response::Preload>,
3276}
3277pub mod preloads_response {
3279 #[allow(clippy::derive_partial_eq_without_eq)]
3280 #[derive(Clone, PartialEq, ::prost::Message)]
3281 pub struct Preload {
3282 #[prost(message, optional, tag = "1")]
3283 pub doc_id: ::core::option::Option<super::DocId>,
3284 #[prost(int32, optional, tag = "2")]
3285 pub version_code: ::core::option::Option<i32>,
3286 #[prost(string, optional, tag = "3")]
3287 pub title: ::core::option::Option<::prost::alloc::string::String>,
3288 #[prost(message, optional, tag = "4")]
3289 pub icon: ::core::option::Option<super::Image>,
3290 #[prost(string, optional, tag = "5")]
3291 pub delivery_token: ::core::option::Option<::prost::alloc::string::String>,
3292 #[prost(int32, optional, tag = "6")]
3293 pub install_location: ::core::option::Option<i32>,
3294 #[prost(int64, optional, tag = "7")]
3295 pub size: ::core::option::Option<i64>,
3296 }
3297}
3298#[allow(clippy::derive_partial_eq_without_eq)]
3299#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3300pub struct MyAccountsResponse {}
3301#[allow(clippy::derive_partial_eq_without_eq)]
3302#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3303pub struct ContentFilterResponse {}
3304#[allow(clippy::derive_partial_eq_without_eq)]
3305#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3306pub struct ExperimentsResponse {}
3307#[allow(clippy::derive_partial_eq_without_eq)]
3308#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3309pub struct SurveyResponse {}
3310#[allow(clippy::derive_partial_eq_without_eq)]
3311#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3312pub struct PingResponse {}
3313#[allow(clippy::derive_partial_eq_without_eq)]
3314#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3315pub struct UpdateUserSettingResponse {}
3316#[allow(clippy::derive_partial_eq_without_eq)]
3317#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3318pub struct GetUserSettingsResponse {}
3319#[allow(clippy::derive_partial_eq_without_eq)]
3320#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3321pub struct GetSharingSettingsResponse {}
3322#[allow(clippy::derive_partial_eq_without_eq)]
3323#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3324pub struct UpdateSharingSettingsResponse {}
3325#[allow(clippy::derive_partial_eq_without_eq)]
3326#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3327pub struct ReviewSnippetsResponse {}
3328#[allow(clippy::derive_partial_eq_without_eq)]
3329#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3330pub struct DocumentSharingStateResponse {}
3331#[allow(clippy::derive_partial_eq_without_eq)]
3332#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3333pub struct ModuleDeliveryResponse {}
3334#[allow(clippy::derive_partial_eq_without_eq)]
3335#[derive(Clone, PartialEq, ::prost::Message)]
3336pub struct PreFetch {
3337 #[prost(string, optional, tag = "1")]
3338 pub url: ::core::option::Option<::prost::alloc::string::String>,
3339 #[prost(message, optional, tag = "2")]
3340 pub response: ::core::option::Option<ResponseWrapper>,
3341 #[prost(string, optional, tag = "3")]
3342 pub etag: ::core::option::Option<::prost::alloc::string::String>,
3343 #[prost(int64, optional, tag = "4")]
3344 pub ttl: ::core::option::Option<i64>,
3345 #[prost(int64, optional, tag = "5")]
3346 pub soft_ttl: ::core::option::Option<i64>,
3347}
3348#[allow(clippy::derive_partial_eq_without_eq)]
3349#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3350pub struct ServerMetadata {
3351 #[prost(int64, optional, tag = "1")]
3352 pub latency_millis: ::core::option::Option<i64>,
3353}
3354#[allow(clippy::derive_partial_eq_without_eq)]
3355#[derive(Clone, PartialEq, ::prost::Message)]
3356pub struct Targets {
3357 #[prost(int64, repeated, packed = "false", tag = "1")]
3358 pub target_id: ::prost::alloc::vec::Vec<i64>,
3359 #[prost(bytes = "vec", optional, tag = "2")]
3360 pub signature: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3361}
3362#[allow(clippy::derive_partial_eq_without_eq)]
3363#[derive(Clone, PartialEq, ::prost::Message)]
3364pub struct ServerCookie {
3365 #[prost(int32, optional, tag = "1")]
3366 pub r#type: ::core::option::Option<i32>,
3367 #[prost(bytes = "vec", optional, tag = "2")]
3368 pub token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3369}
3370#[allow(clippy::derive_partial_eq_without_eq)]
3371#[derive(Clone, PartialEq, ::prost::Message)]
3372pub struct ServerCookies {
3373 #[prost(message, repeated, tag = "1")]
3374 pub server_cookie: ::prost::alloc::vec::Vec<ServerCookie>,
3375}
3376#[allow(clippy::derive_partial_eq_without_eq)]
3377#[derive(Clone, PartialEq, ::prost::Message)]
3378pub struct ResponseWrapper {
3379 #[prost(message, optional, tag = "1")]
3380 pub payload: ::core::option::Option<Payload>,
3381 #[prost(message, optional, tag = "2")]
3382 pub commands: ::core::option::Option<ServerCommands>,
3383 #[prost(message, repeated, tag = "3")]
3384 pub pre_fetch: ::prost::alloc::vec::Vec<PreFetch>,
3385 #[prost(message, repeated, tag = "4")]
3386 pub notification: ::prost::alloc::vec::Vec<Notification>,
3387 #[prost(message, optional, tag = "5")]
3388 pub server_metadata: ::core::option::Option<ServerMetadata>,
3389 #[prost(message, optional, tag = "6")]
3390 pub targets: ::core::option::Option<Targets>,
3391 #[prost(message, optional, tag = "7")]
3392 pub server_cookies: ::core::option::Option<ServerCookies>,
3393 #[prost(bytes = "vec", optional, tag = "9")]
3394 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3395}
3396#[allow(clippy::derive_partial_eq_without_eq)]
3397#[derive(Clone, PartialEq, ::prost::Message)]
3398pub struct ResponseWrapperApi {
3399 #[prost(message, optional, tag = "1")]
3400 pub payload: ::core::option::Option<PayloadApi>,
3401}
3402#[allow(clippy::derive_partial_eq_without_eq)]
3403#[derive(Clone, PartialEq, ::prost::Message)]
3404pub struct PayloadApi {
3405 #[prost(message, optional, tag = "5")]
3406 pub user_profile_response: ::core::option::Option<UserProfileResponse>,
3407}
3408#[allow(clippy::derive_partial_eq_without_eq)]
3409#[derive(Clone, PartialEq, ::prost::Message)]
3410pub struct UserProfileResponse {
3411 #[prost(message, optional, tag = "1")]
3412 pub user_profile: ::core::option::Option<UserProfile>,
3413}
3414#[allow(clippy::derive_partial_eq_without_eq)]
3415#[derive(Clone, PartialEq, ::prost::Message)]
3416pub struct ServerCommands {
3417 #[prost(bool, optional, tag = "1")]
3418 pub clear_cache: ::core::option::Option<bool>,
3419 #[prost(string, optional, tag = "2")]
3420 pub display_error_message: ::core::option::Option<::prost::alloc::string::String>,
3421 #[prost(string, optional, tag = "3")]
3422 pub log_error_stacktrace: ::core::option::Option<::prost::alloc::string::String>,
3423}
3424#[allow(clippy::derive_partial_eq_without_eq)]
3425#[derive(Clone, PartialEq, ::prost::Message)]
3426pub struct GetReviewsResponse {
3427 #[prost(message, repeated, tag = "1")]
3428 pub review: ::prost::alloc::vec::Vec<Review>,
3429 #[prost(int64, optional, tag = "2")]
3430 pub matching_count: ::core::option::Option<i64>,
3431}
3432#[allow(clippy::derive_partial_eq_without_eq)]
3433#[derive(Clone, PartialEq, ::prost::Message)]
3434pub struct Review {
3435 #[prost(string, optional, tag = "1")]
3436 pub author_name: ::core::option::Option<::prost::alloc::string::String>,
3437 #[prost(string, optional, tag = "2")]
3438 pub url: ::core::option::Option<::prost::alloc::string::String>,
3439 #[prost(string, optional, tag = "3")]
3440 pub source: ::core::option::Option<::prost::alloc::string::String>,
3441 #[prost(string, optional, tag = "4")]
3442 pub version: ::core::option::Option<::prost::alloc::string::String>,
3443 #[prost(int64, optional, tag = "5")]
3444 pub timestamp: ::core::option::Option<i64>,
3445 #[prost(int32, optional, tag = "6")]
3446 pub star_rating: ::core::option::Option<i32>,
3447 #[prost(string, optional, tag = "7")]
3448 pub title: ::core::option::Option<::prost::alloc::string::String>,
3449 #[prost(string, optional, tag = "8")]
3450 pub comment: ::core::option::Option<::prost::alloc::string::String>,
3451 #[prost(string, optional, tag = "9")]
3452 pub comment_id: ::core::option::Option<::prost::alloc::string::String>,
3453 #[prost(string, optional, tag = "19")]
3454 pub device_name: ::core::option::Option<::prost::alloc::string::String>,
3455 #[prost(string, optional, tag = "29")]
3456 pub reply_text: ::core::option::Option<::prost::alloc::string::String>,
3457 #[prost(int64, optional, tag = "30")]
3458 pub reply_time_stamp: ::core::option::Option<i64>,
3459 #[prost(message, optional, tag = "31")]
3460 pub author: ::core::option::Option<ReviewAuthor>,
3461 #[prost(message, optional, tag = "33")]
3462 pub user_profile: ::core::option::Option<UserProfile>,
3463 #[prost(message, optional, tag = "34")]
3464 pub sentiment: ::core::option::Option<Image>,
3465 #[prost(int32, optional, tag = "35")]
3466 pub helpful_count: ::core::option::Option<i32>,
3467 #[prost(int64, optional, tag = "38")]
3468 pub thumbs_up_count: ::core::option::Option<i64>,
3469}
3470#[allow(clippy::derive_partial_eq_without_eq)]
3471#[derive(Clone, PartialEq, ::prost::Message)]
3472pub struct CriticReviewsResponse {
3473 #[prost(string, optional, tag = "1")]
3474 pub title: ::core::option::Option<::prost::alloc::string::String>,
3475 #[prost(message, optional, tag = "2")]
3476 pub image: ::core::option::Option<Image>,
3477 #[prost(uint32, optional, tag = "3")]
3478 pub total_num_reviews: ::core::option::Option<u32>,
3479 #[prost(uint32, optional, tag = "4")]
3480 pub percent_favorable: ::core::option::Option<u32>,
3481 #[prost(string, optional, tag = "5")]
3482 pub source_text: ::core::option::Option<::prost::alloc::string::String>,
3483 #[prost(message, optional, tag = "6")]
3484 pub source: ::core::option::Option<Link>,
3485 #[prost(message, repeated, tag = "7")]
3486 pub review: ::prost::alloc::vec::Vec<Review>,
3487}
3488#[allow(clippy::derive_partial_eq_without_eq)]
3489#[derive(Clone, PartialEq, ::prost::Message)]
3490pub struct ReviewAuthor {
3491 #[prost(string, optional, tag = "2")]
3492 pub name: ::core::option::Option<::prost::alloc::string::String>,
3493 #[prost(message, optional, tag = "5")]
3494 pub avatar: ::core::option::Option<Image>,
3495}
3496#[allow(clippy::derive_partial_eq_without_eq)]
3497#[derive(Clone, PartialEq, ::prost::Message)]
3498pub struct UserProfile {
3499 #[prost(string, optional, tag = "1")]
3500 pub profile_id: ::core::option::Option<::prost::alloc::string::String>,
3501 #[prost(string, optional, tag = "2")]
3502 pub person_id: ::core::option::Option<::prost::alloc::string::String>,
3503 #[prost(int32, optional, tag = "3")]
3504 pub profile_type: ::core::option::Option<i32>,
3505 #[prost(int32, optional, tag = "4")]
3506 pub person_type: ::core::option::Option<i32>,
3507 #[prost(string, optional, tag = "5")]
3508 pub name: ::core::option::Option<::prost::alloc::string::String>,
3509 #[prost(message, repeated, tag = "10")]
3510 pub image: ::prost::alloc::vec::Vec<Image>,
3511 #[prost(string, optional, tag = "19")]
3512 pub profile_url: ::core::option::Option<::prost::alloc::string::String>,
3513 #[prost(string, optional, tag = "22")]
3514 pub profile_description: ::core::option::Option<::prost::alloc::string::String>,
3515}
3516#[allow(clippy::derive_partial_eq_without_eq)]
3517#[derive(Clone, PartialEq, ::prost::Message)]
3518pub struct ReviewResponse {
3519 #[prost(message, optional, tag = "1")]
3520 pub user_reviews_response: ::core::option::Option<GetReviewsResponse>,
3521 #[prost(string, optional, tag = "2")]
3522 pub next_page_url: ::core::option::Option<::prost::alloc::string::String>,
3523 #[prost(message, optional, tag = "3")]
3524 pub user_review: ::core::option::Option<Review>,
3525 #[prost(string, optional, tag = "4")]
3526 pub suggestions_list_url: ::core::option::Option<::prost::alloc::string::String>,
3527 #[prost(message, optional, tag = "5")]
3528 pub critic_reviews_response: ::core::option::Option<CriticReviewsResponse>,
3529}
3530#[allow(clippy::derive_partial_eq_without_eq)]
3531#[derive(Clone, PartialEq, ::prost::Message)]
3532pub struct RelatedSearch {
3533 #[prost(string, optional, tag = "1")]
3534 pub search_url: ::core::option::Option<::prost::alloc::string::String>,
3535 #[prost(string, optional, tag = "2")]
3536 pub header: ::core::option::Option<::prost::alloc::string::String>,
3537 #[prost(int32, optional, tag = "3")]
3538 pub backend_id: ::core::option::Option<i32>,
3539 #[prost(int32, optional, tag = "4", default = "1")]
3540 pub doc_type: ::core::option::Option<i32>,
3541 #[prost(bool, optional, tag = "5")]
3542 pub current: ::core::option::Option<bool>,
3543}
3544#[allow(clippy::derive_partial_eq_without_eq)]
3545#[derive(Clone, PartialEq, ::prost::Message)]
3546pub struct SearchResponse {
3547 #[prost(string, optional, tag = "1")]
3548 pub original_query: ::core::option::Option<::prost::alloc::string::String>,
3549 #[prost(string, optional, tag = "2")]
3550 pub suggested_query: ::core::option::Option<::prost::alloc::string::String>,
3551 #[prost(bool, optional, tag = "3")]
3552 pub aggregate_query: ::core::option::Option<bool>,
3553 #[prost(message, repeated, tag = "4")]
3554 pub bucket: ::prost::alloc::vec::Vec<Bucket>,
3555 #[prost(message, repeated, tag = "5")]
3556 pub item: ::prost::alloc::vec::Vec<Item>,
3557 #[prost(message, repeated, tag = "6")]
3558 pub related_search: ::prost::alloc::vec::Vec<RelatedSearch>,
3559 #[prost(bytes = "vec", optional, tag = "7")]
3560 pub server_logs_cookie: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3561 #[prost(bool, optional, tag = "8")]
3562 pub full_page_replaced: ::core::option::Option<bool>,
3563 #[prost(bool, optional, tag = "9")]
3564 pub contains_snow: ::core::option::Option<bool>,
3565 #[prost(string, optional, tag = "10")]
3566 pub next_page_url: ::core::option::Option<::prost::alloc::string::String>,
3567}
3568#[allow(clippy::derive_partial_eq_without_eq)]
3569#[derive(Clone, PartialEq, ::prost::Message)]
3570pub struct SearchSuggestResponse {
3571 #[prost(message, repeated, tag = "1")]
3572 pub entry: ::prost::alloc::vec::Vec<SearchSuggestEntry>,
3573}
3574#[allow(clippy::derive_partial_eq_without_eq)]
3575#[derive(Clone, PartialEq, ::prost::Message)]
3576pub struct SearchSuggestEntry {
3577 #[prost(int32, optional, tag = "1")]
3578 pub r#type: ::core::option::Option<i32>,
3579 #[prost(string, optional, tag = "2")]
3580 pub suggested_query: ::core::option::Option<::prost::alloc::string::String>,
3581 #[prost(message, optional, tag = "5")]
3582 pub image_container: ::core::option::Option<search_suggest_entry::ImageContainer>,
3583 #[prost(string, optional, tag = "6")]
3584 pub title: ::core::option::Option<::prost::alloc::string::String>,
3585 #[prost(message, optional, tag = "8")]
3586 pub package_name_container: ::core::option::Option<
3587 search_suggest_entry::PackageNameContainer,
3588 >,
3589}
3590pub mod search_suggest_entry {
3592 #[allow(clippy::derive_partial_eq_without_eq)]
3593 #[derive(Clone, PartialEq, ::prost::Message)]
3594 pub struct ImageContainer {
3595 #[prost(string, optional, tag = "5")]
3596 pub image_url: ::core::option::Option<::prost::alloc::string::String>,
3597 }
3598 #[allow(clippy::derive_partial_eq_without_eq)]
3599 #[derive(Clone, PartialEq, ::prost::Message)]
3600 pub struct PackageNameContainer {
3601 #[prost(string, optional, tag = "1")]
3602 pub package_name: ::core::option::Option<::prost::alloc::string::String>,
3603 }
3604}
3605#[allow(clippy::derive_partial_eq_without_eq)]
3606#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3607pub struct TestingProgramResponse {
3608 #[prost(message, optional, tag = "2")]
3609 pub result: ::core::option::Option<TestingProgramResult>,
3610}
3611#[allow(clippy::derive_partial_eq_without_eq)]
3612#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3613pub struct TestingProgramResult {
3614 #[prost(message, optional, tag = "4")]
3615 pub details: ::core::option::Option<TestingProgramDetails>,
3616}
3617#[allow(clippy::derive_partial_eq_without_eq)]
3618#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3619pub struct TestingProgramDetails {
3620 #[prost(bool, optional, tag = "2")]
3621 pub subscribed: ::core::option::Option<bool>,
3622 #[prost(int64, optional, tag = "3")]
3623 pub id: ::core::option::Option<i64>,
3624 #[prost(bool, optional, tag = "4")]
3625 pub unsubscribed: ::core::option::Option<bool>,
3626}
3627#[allow(clippy::derive_partial_eq_without_eq)]
3628#[derive(Clone, PartialEq, ::prost::Message)]
3629pub struct LogRequest {
3630 #[prost(int64, optional, tag = "1")]
3631 pub timestamp: ::core::option::Option<i64>,
3632 #[prost(string, optional, tag = "2")]
3633 pub download_confirmation_query: ::core::option::Option<
3634 ::prost::alloc::string::String,
3635 >,
3636}
3637#[allow(clippy::derive_partial_eq_without_eq)]
3638#[derive(Clone, PartialEq, ::prost::Message)]
3639pub struct TestingProgramRequest {
3640 #[prost(string, optional, tag = "1")]
3641 pub package_name: ::core::option::Option<::prost::alloc::string::String>,
3642 #[prost(bool, optional, tag = "2")]
3643 pub subscribe: ::core::option::Option<bool>,
3644}
3645#[allow(clippy::derive_partial_eq_without_eq)]
3646#[derive(Clone, PartialEq, ::prost::Message)]
3647pub struct UploadDeviceConfigRequest {
3648 #[prost(message, optional, tag = "1")]
3649 pub device_configuration: ::core::option::Option<DeviceConfigurationProto>,
3650 #[prost(string, optional, tag = "2")]
3651 pub manufacturer: ::core::option::Option<::prost::alloc::string::String>,
3652 #[prost(string, optional, tag = "3")]
3653 pub gcm_registration_id: ::core::option::Option<::prost::alloc::string::String>,
3654}
3655#[allow(clippy::derive_partial_eq_without_eq)]
3656#[derive(Clone, PartialEq, ::prost::Message)]
3657pub struct UploadDeviceConfigResponse {
3658 #[prost(string, optional, tag = "1")]
3659 pub upload_device_config_token: ::core::option::Option<
3660 ::prost::alloc::string::String,
3661 >,
3662}
3663#[allow(clippy::derive_partial_eq_without_eq)]
3664#[derive(Clone, PartialEq, ::prost::Message)]
3665pub struct AndroidCheckinRequest {
3666 #[prost(string, optional, tag = "1")]
3667 pub imei: ::core::option::Option<::prost::alloc::string::String>,
3668 #[prost(int64, optional, tag = "2", default = "0")]
3669 pub id: ::core::option::Option<i64>,
3670 #[prost(string, optional, tag = "3")]
3671 pub digest: ::core::option::Option<::prost::alloc::string::String>,
3672 #[prost(message, optional, tag = "4")]
3673 pub checkin: ::core::option::Option<AndroidCheckinProto>,
3674 #[prost(string, optional, tag = "5")]
3675 pub desired_build: ::core::option::Option<::prost::alloc::string::String>,
3676 #[prost(string, optional, tag = "6")]
3677 pub locale: ::core::option::Option<::prost::alloc::string::String>,
3678 #[prost(int64, optional, tag = "7")]
3679 pub logging_id: ::core::option::Option<i64>,
3680 #[prost(string, optional, tag = "8")]
3681 pub market_checkin: ::core::option::Option<::prost::alloc::string::String>,
3682 #[prost(string, repeated, tag = "9")]
3683 pub mac_addr: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3684 #[prost(string, optional, tag = "10")]
3685 pub meid: ::core::option::Option<::prost::alloc::string::String>,
3686 #[prost(string, repeated, tag = "11")]
3687 pub account_cookie: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3688 #[prost(string, optional, tag = "12")]
3689 pub time_zone: ::core::option::Option<::prost::alloc::string::String>,
3690 #[prost(fixed64, optional, tag = "13")]
3691 pub security_token: ::core::option::Option<u64>,
3692 #[prost(int32, optional, tag = "14")]
3693 pub version: ::core::option::Option<i32>,
3694 #[prost(string, repeated, tag = "15")]
3695 pub ota_cert: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3696 #[prost(string, optional, tag = "16")]
3697 pub serial_number: ::core::option::Option<::prost::alloc::string::String>,
3698 #[prost(string, optional, tag = "17")]
3699 pub esn: ::core::option::Option<::prost::alloc::string::String>,
3700 #[prost(message, optional, tag = "18")]
3701 pub device_configuration: ::core::option::Option<DeviceConfigurationProto>,
3702 #[prost(string, repeated, tag = "19")]
3703 pub mac_addr_type: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3704 #[prost(int32, optional, tag = "20")]
3705 pub fragment: ::core::option::Option<i32>,
3706 #[prost(string, optional, tag = "21")]
3707 pub user_name: ::core::option::Option<::prost::alloc::string::String>,
3708 #[prost(int32, optional, tag = "22")]
3709 pub user_serial_number: ::core::option::Option<i32>,
3710}
3711#[allow(clippy::derive_partial_eq_without_eq)]
3712#[derive(Clone, PartialEq, ::prost::Message)]
3713pub struct AndroidCheckinResponse {
3714 #[prost(bool, optional, tag = "1")]
3715 pub stats_ok: ::core::option::Option<bool>,
3716 #[prost(message, repeated, tag = "2")]
3717 pub intent: ::prost::alloc::vec::Vec<AndroidIntentProto>,
3718 #[prost(int64, optional, tag = "3")]
3719 pub time_msec: ::core::option::Option<i64>,
3720 #[prost(string, optional, tag = "4")]
3721 pub digest: ::core::option::Option<::prost::alloc::string::String>,
3722 #[prost(message, repeated, tag = "5")]
3723 pub setting: ::prost::alloc::vec::Vec<GservicesSetting>,
3724 #[prost(bool, optional, tag = "6")]
3725 pub market_ok: ::core::option::Option<bool>,
3726 #[prost(fixed64, optional, tag = "7")]
3727 pub android_id: ::core::option::Option<u64>,
3728 #[prost(fixed64, optional, tag = "8")]
3729 pub security_token: ::core::option::Option<u64>,
3730 #[prost(bool, optional, tag = "9")]
3731 pub settings_diff: ::core::option::Option<bool>,
3732 #[prost(string, repeated, tag = "10")]
3733 pub delete_setting: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3734 #[prost(string, optional, tag = "12")]
3735 pub device_checkin_consistency_token: ::core::option::Option<
3736 ::prost::alloc::string::String,
3737 >,
3738}
3739#[allow(clippy::derive_partial_eq_without_eq)]
3740#[derive(Clone, PartialEq, ::prost::Message)]
3741pub struct GservicesSetting {
3742 #[prost(bytes = "vec", optional, tag = "1")]
3743 pub name: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3744 #[prost(bytes = "vec", optional, tag = "2")]
3745 pub value: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3746}
3747#[allow(clippy::derive_partial_eq_without_eq)]
3748#[derive(Clone, PartialEq, ::prost::Message)]
3749pub struct AndroidBuildProto {
3750 #[prost(string, optional, tag = "1")]
3751 pub id: ::core::option::Option<::prost::alloc::string::String>,
3752 #[prost(string, optional, tag = "2")]
3753 pub product: ::core::option::Option<::prost::alloc::string::String>,
3754 #[prost(string, optional, tag = "3")]
3755 pub carrier: ::core::option::Option<::prost::alloc::string::String>,
3756 #[prost(string, optional, tag = "4")]
3757 pub radio: ::core::option::Option<::prost::alloc::string::String>,
3758 #[prost(string, optional, tag = "5")]
3759 pub bootloader: ::core::option::Option<::prost::alloc::string::String>,
3760 #[prost(string, optional, tag = "6")]
3761 pub client: ::core::option::Option<::prost::alloc::string::String>,
3762 #[prost(int64, optional, tag = "7")]
3763 pub timestamp: ::core::option::Option<i64>,
3764 #[prost(int32, optional, tag = "8")]
3765 pub google_services: ::core::option::Option<i32>,
3766 #[prost(string, optional, tag = "9")]
3767 pub device: ::core::option::Option<::prost::alloc::string::String>,
3768 #[prost(int32, optional, tag = "10")]
3769 pub sdk_version: ::core::option::Option<i32>,
3770 #[prost(string, optional, tag = "11")]
3771 pub model: ::core::option::Option<::prost::alloc::string::String>,
3772 #[prost(string, optional, tag = "12")]
3773 pub manufacturer: ::core::option::Option<::prost::alloc::string::String>,
3774 #[prost(string, optional, tag = "13")]
3775 pub build_product: ::core::option::Option<::prost::alloc::string::String>,
3776 #[prost(bool, optional, tag = "14")]
3777 pub ota_installed: ::core::option::Option<bool>,
3778}
3779#[allow(clippy::derive_partial_eq_without_eq)]
3780#[derive(Clone, PartialEq, ::prost::Message)]
3781pub struct AndroidCheckinProto {
3782 #[prost(message, optional, tag = "1")]
3783 pub build: ::core::option::Option<AndroidBuildProto>,
3784 #[prost(int64, optional, tag = "2")]
3785 pub last_checkin_msec: ::core::option::Option<i64>,
3786 #[prost(message, repeated, tag = "3")]
3787 pub event: ::prost::alloc::vec::Vec<AndroidEventProto>,
3788 #[prost(message, repeated, tag = "4")]
3789 pub stat: ::prost::alloc::vec::Vec<AndroidStatisticProto>,
3790 #[prost(string, repeated, tag = "5")]
3791 pub requested_group: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3792 #[prost(string, optional, tag = "6")]
3793 pub cell_operator: ::core::option::Option<::prost::alloc::string::String>,
3794 #[prost(string, optional, tag = "7")]
3795 pub sim_operator: ::core::option::Option<::prost::alloc::string::String>,
3796 #[prost(string, optional, tag = "8")]
3797 pub roaming: ::core::option::Option<::prost::alloc::string::String>,
3798 #[prost(int32, optional, tag = "9")]
3799 pub user_number: ::core::option::Option<i32>,
3800}
3801#[allow(clippy::derive_partial_eq_without_eq)]
3802#[derive(Clone, PartialEq, ::prost::Message)]
3803pub struct AndroidEventProto {
3804 #[prost(string, optional, tag = "1")]
3805 pub tag: ::core::option::Option<::prost::alloc::string::String>,
3806 #[prost(string, optional, tag = "2")]
3807 pub value: ::core::option::Option<::prost::alloc::string::String>,
3808 #[prost(int64, optional, tag = "3")]
3809 pub time_msec: ::core::option::Option<i64>,
3810}
3811#[allow(clippy::derive_partial_eq_without_eq)]
3812#[derive(Clone, PartialEq, ::prost::Message)]
3813pub struct AndroidIntentProto {
3814 #[prost(string, optional, tag = "1")]
3815 pub action: ::core::option::Option<::prost::alloc::string::String>,
3816 #[prost(string, optional, tag = "2")]
3817 pub data_uri: ::core::option::Option<::prost::alloc::string::String>,
3818 #[prost(string, optional, tag = "3")]
3819 pub mime_type: ::core::option::Option<::prost::alloc::string::String>,
3820 #[prost(string, optional, tag = "4")]
3821 pub java_class: ::core::option::Option<::prost::alloc::string::String>,
3822 #[prost(group, repeated, tag = "5")]
3823 pub extra: ::prost::alloc::vec::Vec<android_intent_proto::Extra>,
3824}
3825pub mod android_intent_proto {
3827 #[allow(clippy::derive_partial_eq_without_eq)]
3828 #[derive(Clone, PartialEq, ::prost::Message)]
3829 pub struct Extra {
3830 #[prost(string, optional, tag = "6")]
3831 pub name: ::core::option::Option<::prost::alloc::string::String>,
3832 #[prost(string, optional, tag = "7")]
3833 pub value: ::core::option::Option<::prost::alloc::string::String>,
3834 }
3835}
3836#[allow(clippy::derive_partial_eq_without_eq)]
3837#[derive(Clone, PartialEq, ::prost::Message)]
3838pub struct AndroidStatisticProto {
3839 #[prost(string, optional, tag = "1")]
3840 pub tag: ::core::option::Option<::prost::alloc::string::String>,
3841 #[prost(int32, optional, tag = "2")]
3842 pub count: ::core::option::Option<i32>,
3843 #[prost(float, optional, tag = "3")]
3844 pub sum: ::core::option::Option<f32>,
3845}
3846#[allow(clippy::derive_partial_eq_without_eq)]
3847#[derive(Clone, PartialEq, ::prost::Message)]
3848pub struct ClientLibraryState {
3849 #[prost(int32, optional, tag = "1")]
3850 pub corpus: ::core::option::Option<i32>,
3851 #[prost(bytes = "vec", optional, tag = "2")]
3852 pub server_token: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
3853 #[prost(int64, optional, tag = "3")]
3854 pub hash_code_sum: ::core::option::Option<i64>,
3855 #[prost(int32, optional, tag = "4")]
3856 pub library_size: ::core::option::Option<i32>,
3857 #[prost(string, optional, tag = "5")]
3858 pub library_id: ::core::option::Option<::prost::alloc::string::String>,
3859}
3860#[allow(clippy::derive_partial_eq_without_eq)]
3861#[derive(Clone, PartialEq, ::prost::Message)]
3862pub struct AndroidDataUsageProto {
3863 #[prost(int32, optional, tag = "1")]
3864 pub version: ::core::option::Option<i32>,
3865 #[prost(int64, optional, tag = "2")]
3866 pub current_report_msec: ::core::option::Option<i64>,
3867 #[prost(message, repeated, tag = "3")]
3868 pub key_to_package_name_mapping: ::prost::alloc::vec::Vec<KeyToPackageNameMapping>,
3869 #[prost(message, repeated, tag = "4")]
3870 pub payload_level_app_stat: ::prost::alloc::vec::Vec<PayloadLevelAppStat>,
3871 #[prost(message, repeated, tag = "5")]
3872 pub ip_layer_network_stat: ::prost::alloc::vec::Vec<IpLayerNetworkStat>,
3873}
3874#[allow(clippy::derive_partial_eq_without_eq)]
3875#[derive(Clone, PartialEq, ::prost::Message)]
3876pub struct AndroidUsageStatsReport {
3877 #[prost(int64, optional, tag = "1")]
3878 pub android_id: ::core::option::Option<i64>,
3879 #[prost(int64, optional, tag = "2")]
3880 pub logging_id: ::core::option::Option<i64>,
3881 #[prost(message, optional, tag = "3")]
3882 pub usage_stats: ::core::option::Option<UsageStatsExtensionProto>,
3883}
3884#[allow(clippy::derive_partial_eq_without_eq)]
3885#[derive(Clone, PartialEq, ::prost::Message)]
3886pub struct AppBucket {
3887 #[prost(int64, optional, tag = "1")]
3888 pub bucket_start_msec: ::core::option::Option<i64>,
3889 #[prost(int64, optional, tag = "2")]
3890 pub bucket_duration_msec: ::core::option::Option<i64>,
3891 #[prost(message, repeated, tag = "3")]
3892 pub stat_counters: ::prost::alloc::vec::Vec<StatCounters>,
3893 #[prost(int64, optional, tag = "4")]
3894 pub operation_count: ::core::option::Option<i64>,
3895}
3896#[allow(clippy::derive_partial_eq_without_eq)]
3897#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3898pub struct CounterData {
3899 #[prost(int64, optional, tag = "1")]
3900 pub bytes: ::core::option::Option<i64>,
3901 #[prost(int64, optional, tag = "2")]
3902 pub packets: ::core::option::Option<i64>,
3903}
3904#[allow(clippy::derive_partial_eq_without_eq)]
3905#[derive(Clone, PartialEq, ::prost::Message)]
3906pub struct IpLayerAppStat {
3907 #[prost(int32, optional, tag = "1")]
3908 pub package_key: ::core::option::Option<i32>,
3909 #[prost(int32, optional, tag = "2")]
3910 pub application_tag: ::core::option::Option<i32>,
3911 #[prost(message, repeated, tag = "3")]
3912 pub ip_layer_app_bucket: ::prost::alloc::vec::Vec<AppBucket>,
3913}
3914#[allow(clippy::derive_partial_eq_without_eq)]
3915#[derive(Clone, PartialEq, ::prost::Message)]
3916pub struct IpLayerNetworkBucket {
3917 #[prost(int64, optional, tag = "1")]
3918 pub bucket_start_msec: ::core::option::Option<i64>,
3919 #[prost(int64, optional, tag = "2")]
3920 pub bucket_duration_msec: ::core::option::Option<i64>,
3921 #[prost(message, repeated, tag = "3")]
3922 pub stat_counters: ::prost::alloc::vec::Vec<StatCounters>,
3923 #[prost(int64, optional, tag = "4")]
3924 pub network_active_duration: ::core::option::Option<i64>,
3925}
3926#[allow(clippy::derive_partial_eq_without_eq)]
3927#[derive(Clone, PartialEq, ::prost::Message)]
3928pub struct IpLayerNetworkStat {
3929 #[prost(string, optional, tag = "1")]
3930 pub network_details: ::core::option::Option<::prost::alloc::string::String>,
3931 #[prost(int32, optional, tag = "2")]
3932 pub r#type: ::core::option::Option<i32>,
3933 #[prost(message, repeated, tag = "3")]
3934 pub ip_layer_network_bucket: ::prost::alloc::vec::Vec<IpLayerNetworkBucket>,
3935 #[prost(message, repeated, tag = "4")]
3936 pub ip_layer_app_stat: ::prost::alloc::vec::Vec<IpLayerAppStat>,
3937}
3938#[allow(clippy::derive_partial_eq_without_eq)]
3939#[derive(Clone, PartialEq, ::prost::Message)]
3940pub struct KeyToPackageNameMapping {
3941 #[prost(int32, optional, tag = "1")]
3942 pub package_key: ::core::option::Option<i32>,
3943 #[prost(string, optional, tag = "2")]
3944 pub uid_name: ::core::option::Option<::prost::alloc::string::String>,
3945 #[prost(message, repeated, tag = "3")]
3946 pub shared_package: ::prost::alloc::vec::Vec<PackageInfo>,
3947}
3948#[allow(clippy::derive_partial_eq_without_eq)]
3949#[derive(Clone, PartialEq, ::prost::Message)]
3950pub struct PackageInfo {
3951 #[prost(string, optional, tag = "1")]
3952 pub pkg_name: ::core::option::Option<::prost::alloc::string::String>,
3953 #[prost(int32, optional, tag = "2")]
3954 pub version_code: ::core::option::Option<i32>,
3955}
3956#[allow(clippy::derive_partial_eq_without_eq)]
3957#[derive(Clone, PartialEq, ::prost::Message)]
3958pub struct PayloadLevelAppStat {
3959 #[prost(int32, optional, tag = "1")]
3960 pub package_key: ::core::option::Option<i32>,
3961 #[prost(int32, optional, tag = "2")]
3962 pub application_tag: ::core::option::Option<i32>,
3963 #[prost(message, repeated, tag = "3")]
3964 pub payload_level_app_bucket: ::prost::alloc::vec::Vec<AppBucket>,
3965}
3966#[allow(clippy::derive_partial_eq_without_eq)]
3967#[derive(Clone, Copy, PartialEq, ::prost::Message)]
3968pub struct StatCounters {
3969 #[prost(int32, optional, tag = "1")]
3970 pub network_proto: ::core::option::Option<i32>,
3971 #[prost(int32, optional, tag = "2")]
3972 pub direction: ::core::option::Option<i32>,
3973 #[prost(message, optional, tag = "3")]
3974 pub counter_data: ::core::option::Option<CounterData>,
3975 #[prost(int32, optional, tag = "4")]
3976 pub fg_bg: ::core::option::Option<i32>,
3977}
3978#[allow(clippy::derive_partial_eq_without_eq)]
3979#[derive(Clone, PartialEq, ::prost::Message)]
3980pub struct UsageStatsExtensionProto {
3981 #[prost(message, optional, tag = "1")]
3982 pub data_usage: ::core::option::Option<AndroidDataUsageProto>,
3983}
3984#[allow(clippy::derive_partial_eq_without_eq)]
3985#[derive(Clone, PartialEq, ::prost::Message)]
3986pub struct ModifyLibraryRequest {
3987 #[prost(string, optional, tag = "1")]
3988 pub library_id: ::core::option::Option<::prost::alloc::string::String>,
3989 #[prost(string, repeated, tag = "2")]
3990 pub add_package_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3991 #[prost(string, repeated, tag = "3")]
3992 pub remove_package_name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
3993}