├── .rspec ├── lib ├── apk_downloader │ ├── version.rb │ ├── configuration.rb │ ├── api.rb │ ├── googleplay.proto │ └── googleplay.pb.rb └── apk_downloader.rb ├── Gemfile ├── .gitignore ├── Rakefile ├── spec └── spec_helper.rb ├── LICENSE.txt ├── apk_downloader.gemspec └── README.md /.rspec: -------------------------------------------------------------------------------- 1 | --color 2 | --format progress 3 | -------------------------------------------------------------------------------- /lib/apk_downloader/version.rb: -------------------------------------------------------------------------------- 1 | module ApkDownloader 2 | VERSION = "1.1.5" 3 | end 4 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | gemspec 3 | 4 | group :development do 5 | gem 'rake' 6 | gem 'pry' 7 | gem 'pry-byebug' 8 | end 9 | 10 | -------------------------------------------------------------------------------- /lib/apk_downloader/configuration.rb: -------------------------------------------------------------------------------- 1 | module ApkDownloader 2 | class Configuration 3 | attr_accessor :android_id, :email, :password, :debug 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.gem 2 | *.rbc 3 | .bundle 4 | .config 5 | .yardoc 6 | Gemfile.lock 7 | InstalledFiles 8 | _yardoc 9 | coverage 10 | doc/ 11 | lib/bundler/man 12 | pkg 13 | rdoc 14 | spec/reports 15 | test/tmp 16 | test/version_tmp 17 | tmp 18 | bin/ 19 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require "bundler/gem_tasks" 2 | 3 | begin 4 | require "rspec/core/rake_task" 5 | 6 | RSpec::Core::RakeTask.new(:spec) 7 | task :default => :spec 8 | rescue LoadError => e 9 | warn "Unable to load rspec/core/rake_task" 10 | end 11 | 12 | -------------------------------------------------------------------------------- /lib/apk_downloader.rb: -------------------------------------------------------------------------------- 1 | require "apk_downloader/version" 2 | require "apk_downloader/googleplay.pb" 3 | 4 | module ApkDownloader 5 | autoload :Configuration, 'apk_downloader/configuration' 6 | autoload :Api, 'apk_downloader/api' 7 | 8 | class << self 9 | attr_reader :configuration, :api 10 | 11 | def configure 12 | @configuration ||= Configuration.new 13 | yield configuration 14 | end 15 | 16 | def download! package, destination 17 | @api ||= Api.new 18 | data = @api.fetch_apk_data package 19 | File.open(destination, 'wb') { |f| f.write data } 20 | end 21 | end 22 | end 23 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | # This file was generated by the `rspec --init` command. Conventionally, all 2 | # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`. 3 | # Require this file using `require "spec_helper"` to ensure that it is only 4 | # loaded once. 5 | # 6 | # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration 7 | RSpec.configure do |config| 8 | config.treat_symbols_as_metadata_keys_with_true_values = true 9 | config.run_all_when_everything_filtered = true 10 | config.filter_run :focus 11 | 12 | # Run specs in random order to surface order dependencies. If you find an 13 | # order dependency and want to debug it, you can fix the order by providing 14 | # the seed, which is printed after each run. 15 | # --seed 1234 16 | config.order = 'random' 17 | end 18 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Josh Lindsey 2 | 3 | MIT License 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /apk_downloader.gemspec: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | lib = File.expand_path('../lib', __FILE__) 3 | $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 4 | require 'apk_downloader/version' 5 | 6 | Gem::Specification.new do |spec| 7 | spec.name = "apk_downloader" 8 | spec.version = ApkDownloader::VERSION 9 | spec.authors = ["Josh Lindsey"] 10 | spec.email = ["joshua.s.lindsey@gmail.com"] 11 | spec.description = %q{Downloads APK files directly from the Play store} 12 | spec.summary = %q{Uses a spoofed request to trick the Play store into thinking you're an Android device, allowing you to download APK files directly} 13 | spec.homepage = "https://github.com/jlindsey/ApkDownloader" 14 | spec.license = "MIT" 15 | 16 | spec.files = `git ls-files`.split($/) 17 | spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } 18 | spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) 19 | spec.require_paths = ["lib"] 20 | 21 | spec.add_dependency "ruby-protocol-buffers" 22 | spec.add_dependency "varint" 23 | 24 | spec.add_development_dependency "bundler", "~> 1.3" 25 | end 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ApkDownloader 2 | [![Gem Version](https://badge.fury.io/rb/apk_downloader.png)](http://badge.fury.io/rb/apk_downloader) 3 | Simply and easily download an APK file from the Google Play store. 4 | 5 | ## Installation 6 | 7 | Add this line to your application's Gemfile: 8 | 9 | gem 'apk_downloader' 10 | 11 | And then execute: 12 | 13 | $ bundle 14 | 15 | Or install it yourself as: 16 | 17 | $ gem install apk_downloader 18 | 19 | ## Usage 20 | 21 | You first must configure the gem: 22 | 23 | ```ruby 24 | ApkDownloader.configure do |config| 25 | config.email = 'you@gmail.com' 26 | config.password = 'password' 27 | config.android_id = 'abc123' 28 | end 29 | ``` 30 | 31 | An `android_id` can be gotten from any Android device by dailing `*#*#8255#*#*`. This will bring up the "GTalk Service Monitor", and you can find the ID as a hex string after `aid:`. 32 | 33 | The email and password provided must be valid Google Account credentials, and they must have been added to the device you got the ID from. 34 | 35 | Then simply call `ApkDownloader.download! '', ''`. 36 | 37 | ### Notes and Warnings ### 38 | 39 | This gem works by way of spoofing a series of requests to the private Google Play API (normally only available to the Play store app) by pretending to be an Android device running that app. This is – as far as the API is concerned – a real app purchase request from the configured device/account, which means that in addition to downloading locally to the file you specify in the `download!` call it will also automatically download on that device. 40 | 41 | I've only ever tried this for free apps. I have no idea what will happen if you attempt to download a non-free app with this gem. 42 | 43 | Note also that doing this sort of API request spoofing is explicitly against the Terms of Service for the Play store. **You use this gem at your own risk!** Neither I, my employer, nor any contributers to this code will be held responsible for any repercussions taken against your accounts or devices from using this gem. 44 | 45 | ## Contributing 46 | 47 | 1. Fork it 48 | 2. Create your feature branch (`git checkout -b my-new-feature`) 49 | 3. Commit your changes (`git commit -am 'Add some feature'`) 50 | 4. Push to the branch (`git push origin my-new-feature`) 51 | 5. Create new Pull Request 52 | -------------------------------------------------------------------------------- /lib/apk_downloader/api.rb: -------------------------------------------------------------------------------- 1 | require 'net/http' 2 | require 'tempfile' 3 | require 'pp' 4 | require 'openssl' 5 | 6 | module ApkDownloader 7 | class Api 8 | LoginUri = URI('https://android.clients.google.com/auth') 9 | GoogleApiUri = URI('https://android.clients.google.com/fdfe') 10 | 11 | attr_reader :auth_token 12 | 13 | def initialize 14 | @details_messages = {} 15 | end 16 | 17 | def logged_in? 18 | !self.auth_token.nil? 19 | end 20 | 21 | def log_in! 22 | return if self.logged_in? 23 | 24 | params = { 25 | "Email" => ApkDownloader.configuration.email, 26 | "Passwd" => ApkDownloader.configuration.password, 27 | "service" => "androidmarket", 28 | "accountType" => "HOSTED_OR_GOOGLE", 29 | "has_permission" => "1", 30 | "source" => "android", 31 | "androidId" => ApkDownloader.configuration.android_id, 32 | "app" => "com.android.vending", 33 | "device_country" => "fr", 34 | "operatorCountry" => "fr", 35 | "lang" => "fr", 36 | "sdk_version" => "16" 37 | } 38 | 39 | login_http = Net::HTTP.new LoginUri.host, LoginUri.port 40 | login_http.use_ssl = true 41 | login_http.verify_mode = OpenSSL::SSL::VERIFY_NONE 42 | 43 | post = Net::HTTP::Post.new LoginUri.to_s 44 | post.set_form_data params 45 | post["Accept-Encoding"] = "" 46 | 47 | response = login_http.request post 48 | 49 | if ApkDownloader.configuration.debug 50 | pp "Login response:" 51 | pp response 52 | end 53 | 54 | if response.body =~ /error/i 55 | raise "Unable to authenticate with Google" 56 | elsif response.body.include? "Auth=" 57 | @auth_token = response.body.scan(/Auth=(.*?)$/).flatten.first 58 | end 59 | end 60 | 61 | def details package 62 | if @details_messages[package].nil? 63 | log_in! 64 | message = api_request :get, '/details', :doc => package 65 | @details_messages[package] = message.payload 66 | end 67 | 68 | return @details_messages[package] 69 | end 70 | 71 | def fetch_apk_data package 72 | log_in! 73 | doc = details(package).detailsResponse.docV2 74 | version_code = doc.details.appDetails.versionCode 75 | offer_type = doc.offer[0].offerType 76 | 77 | message = api_request :post, '/purchase', :ot => offer_type, :doc => package, :vc => version_code 78 | 79 | url = URI(message.payload.buyResponse.purchaseStatusResponse.appDeliveryData.downloadUrl) 80 | cookie = message.payload.buyResponse.purchaseStatusResponse.appDeliveryData.downloadAuthCookie[0] 81 | 82 | resp = recursive_apk_fetch(url, cookie) 83 | 84 | return resp.body 85 | end 86 | 87 | private 88 | def recursive_apk_fetch url, cookie, tries = 5 89 | raise ArgumentError, 'HTTP redirect too deep' if tries == 0 90 | 91 | http = Net::HTTP.new url.host, url.port 92 | http.use_ssl = (url.scheme == 'https') 93 | http.verify_mode = OpenSSL::SSL::VERIFY_NONE 94 | 95 | req = Net::HTTP::Get.new url.to_s 96 | req['Accept-Encoding'] = '' 97 | req['User-Agent'] = 'AndroidDownloadManager/4.1.1 (Linux; U; Android 4.1.1; Nexus S Build/JRO03E)' 98 | req['Cookie'] = [cookie.name, cookie.value].join('=') 99 | 100 | resp = http.request req 101 | 102 | case resp 103 | when Net::HTTPSuccess 104 | return resp 105 | when Net::HTTPRedirection 106 | return recursive_apk_fetch(URI(resp['Location']), cookie, tries - 1) 107 | else 108 | resp.error! 109 | end 110 | end 111 | 112 | def api_request type, path, data = {} 113 | if @http.nil? 114 | @http = Net::HTTP.new GoogleApiUri.host, GoogleApiUri.port 115 | @http.use_ssl = true 116 | @http.verify_mode = OpenSSL::SSL::VERIFY_NONE 117 | end 118 | 119 | api_headers = { 120 | "Accept-Language" => "en_US", 121 | "Authorization" => "GoogleLogin auth=#{@auth_token}", 122 | "X-DFE-Enabled-Experiments" => "cl:billing.select_add_instrument_by_default", 123 | "X-DFE-Unsupported-Experiments" => "nocache:billing.use_charging_poller,market_emails,buyer_currency,prod_baseline,checkin.set_asset_paid_app_field,shekel_test,content_ratings,buyer_currency_in_app,nocache:encrypted_apk,recent_changes", 124 | "X-DFE-Device-Id" => ApkDownloader.configuration.android_id, 125 | "X-DFE-Client-Id" => "am-android-google", 126 | "User-Agent" => "Android-Finsky/5.7.10 (api=3,versionCode=80371000,sdk=19,device=falcon_umts,hardware=qcom,product=falcon_reteu,platformVersionRelease=4.4.4,model=XT1032,buildId=KXB21.14-L1.40,isWideScreen=0)", 127 | "X-DFE-SmallestScreenWidthDp" => "320", 128 | "X-DFE-Filter-Level" => "3", 129 | "Accept-Encoding" => "", 130 | "Host" => "android.clients.google.com" 131 | } 132 | 133 | if type == :post 134 | api_headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8' 135 | end 136 | 137 | uri = URI([GoogleApiUri,path.sub(/^\//,'')].join('/')) 138 | 139 | req = if type == :get 140 | uri.query = URI.encode_www_form data 141 | Net::HTTP::Get.new uri.to_s 142 | else 143 | post = Net::HTTP::Post.new uri.to_s 144 | post.tap { |p| p.set_form_data data } 145 | end 146 | 147 | api_headers.each { |k, v| req[k] = v } 148 | 149 | resp = @http.request req 150 | 151 | unless resp.code.to_i == 200 or resp.code.to_i == 302 152 | raise "Bad status (#{resp.code}) from Play API (#{path}) => #{data}" 153 | end 154 | 155 | if ApkDownloader.configuration.debug 156 | pp "Request response (#{type}):" 157 | pp resp 158 | end 159 | 160 | return ApkDownloader::ProtocolBuffers::ResponseWrapper.new.parse(resp.body) 161 | end 162 | end 163 | end 164 | -------------------------------------------------------------------------------- /lib/apk_downloader/googleplay.proto: -------------------------------------------------------------------------------- 1 | package ApkDownloader.ProtocolBuffers; 2 | 3 | message AckNotificationResponse { 4 | } 5 | message AndroidAppDeliveryData { 6 | optional int64 downloadSize = 1; 7 | optional string signature = 2; 8 | optional string downloadUrl = 3; 9 | repeated AppFileMetadata additionalFile = 4; 10 | repeated HttpCookie downloadAuthCookie = 5; 11 | optional bool forwardLocked = 6; 12 | optional int64 refundTimeout = 7; 13 | optional bool serverInitiated = 8; 14 | optional int64 postInstallRefundWindowMillis = 9; 15 | optional bool immediateStartNeeded = 10; 16 | optional AndroidAppPatchData patchData = 11; 17 | optional EncryptionParams encryptionParams = 12; 18 | } 19 | message AndroidAppPatchData { 20 | optional int32 baseVersionCode = 1; 21 | optional string baseSignature = 2; 22 | optional string downloadUrl = 3; 23 | optional int32 patchFormat = 4; 24 | optional int64 maxPatchSize = 5; 25 | } 26 | message AppFileMetadata { 27 | optional int32 fileType = 1; 28 | optional int32 versionCode = 2; 29 | optional int64 size = 3; 30 | optional string downloadUrl = 4; 31 | } 32 | message EncryptionParams { 33 | optional int32 version = 1; 34 | optional string encryptionKey = 2; 35 | optional string hmacKey = 3; 36 | } 37 | message HttpCookie { 38 | optional string name = 1; 39 | optional string value = 2; 40 | } 41 | message Address { 42 | optional string name = 1; 43 | optional string addressLine1 = 2; 44 | optional string addressLine2 = 3; 45 | optional string city = 4; 46 | optional string state = 5; 47 | optional string postalCode = 6; 48 | optional string postalCountry = 7; 49 | optional string dependentLocality = 8; 50 | optional string sortingCode = 9; 51 | optional string languageCode = 10; 52 | optional string phoneNumber = 11; 53 | optional bool isReduced = 12; 54 | optional string firstName = 13; 55 | optional string lastName = 14; 56 | optional string email = 15; 57 | } 58 | message BookAuthor { 59 | optional string name = 1; 60 | optional string deprecatedQuery = 2; 61 | optional Docid docid = 3; 62 | } 63 | message BookDetails { 64 | repeated BookSubject subject = 3; 65 | optional string publisher = 4; 66 | optional string publicationDate = 5; 67 | optional string isbn = 6; 68 | optional int32 numberOfPages = 7; 69 | optional string subtitle = 8; 70 | repeated BookAuthor author = 9; 71 | optional string readerUrl = 10; 72 | optional string downloadEpubUrl = 11; 73 | optional string downloadPdfUrl = 12; 74 | optional string acsEpubTokenUrl = 13; 75 | optional string acsPdfTokenUrl = 14; 76 | optional bool epubAvailable = 15; 77 | optional bool pdfAvailable = 16; 78 | optional string aboutTheAuthor = 17; 79 | repeated group Identifier = 18 { 80 | optional int32 type = 19; 81 | optional string identifier = 20; 82 | } 83 | } 84 | message BookSubject { 85 | optional string name = 1; 86 | optional string query = 2; 87 | optional string subjectId = 3; 88 | } 89 | message BrowseLink { 90 | optional string name = 1; 91 | optional string dataUrl = 3; 92 | } 93 | message BrowseResponse { 94 | optional string contentsUrl = 1; 95 | optional string promoUrl = 2; 96 | repeated BrowseLink category = 3; 97 | repeated BrowseLink breadcrumb = 4; 98 | } 99 | message AddressChallenge { 100 | optional string responseAddressParam = 1; 101 | optional string responseCheckboxesParam = 2; 102 | optional string title = 3; 103 | optional string descriptionHtml = 4; 104 | repeated FormCheckbox checkbox = 5; 105 | optional Address address = 6; 106 | repeated InputValidationError errorInputField = 7; 107 | optional string errorHtml = 8; 108 | repeated int32 requiredField = 9; 109 | } 110 | message AuthenticationChallenge { 111 | optional int32 authenticationType = 1; 112 | optional string responseAuthenticationTypeParam = 2; 113 | optional string responseRetryCountParam = 3; 114 | optional string pinHeaderText = 4; 115 | optional string pinDescriptionTextHtml = 5; 116 | optional string gaiaHeaderText = 6; 117 | optional string gaiaDescriptionTextHtml = 7; 118 | } 119 | message BuyResponse { 120 | optional PurchaseNotificationResponse purchaseResponse = 1; 121 | optional group CheckoutInfo = 2 { 122 | optional LineItem item = 3; 123 | repeated LineItem subItem = 4; 124 | repeated group CheckoutOption = 5 { 125 | optional string formOfPayment = 6; 126 | optional string encodedAdjustedCart = 7; 127 | optional string instrumentId = 15; 128 | repeated LineItem item = 16; 129 | repeated LineItem subItem = 17; 130 | optional LineItem total = 18; 131 | repeated string footerHtml = 19; 132 | optional int32 instrumentFamily = 29; 133 | repeated int32 deprecatedInstrumentInapplicableReason = 30; 134 | optional bool selectedInstrument = 32; 135 | optional LineItem summary = 33; 136 | repeated string footnoteHtml = 35; 137 | optional Instrument instrument = 43; 138 | optional string purchaseCookie = 45; 139 | repeated string disabledReason = 48; 140 | } 141 | optional string deprecatedCheckoutUrl = 10; 142 | optional string addInstrumentUrl = 11; 143 | repeated string footerHtml = 20; 144 | repeated int32 eligibleInstrumentFamily = 31; 145 | repeated string footnoteHtml = 36; 146 | repeated Instrument eligibleInstrument = 44; 147 | } 148 | optional string continueViaUrl = 8; 149 | optional string purchaseStatusUrl = 9; 150 | optional string checkoutServiceId = 12; 151 | optional bool checkoutTokenRequired = 13; 152 | optional string baseCheckoutUrl = 14; 153 | repeated string tosCheckboxHtml = 37; 154 | optional int32 iabPermissionError = 38; 155 | optional PurchaseStatusResponse purchaseStatusResponse = 39; 156 | optional string purchaseCookie = 46; 157 | optional Challenge challenge = 49; 158 | } 159 | message Challenge { 160 | optional AddressChallenge addressChallenge = 1; 161 | optional AuthenticationChallenge authenticationChallenge = 2; 162 | } 163 | message FormCheckbox { 164 | optional string description = 1; 165 | optional bool checked = 2; 166 | optional bool required = 3; 167 | } 168 | message LineItem { 169 | optional string name = 1; 170 | optional string description = 2; 171 | optional Offer offer = 3; 172 | optional Money amount = 4; 173 | } 174 | message Money { 175 | optional int64 micros = 1; 176 | optional string currencyCode = 2; 177 | optional string formattedAmount = 3; 178 | } 179 | message PurchaseNotificationResponse { 180 | optional int32 status = 1; 181 | optional DebugInfo debugInfo = 2; 182 | optional string localizedErrorMessage = 3; 183 | optional string purchaseId = 4; 184 | } 185 | message PurchaseStatusResponse { 186 | optional int32 status = 1; 187 | optional string statusMsg = 2; 188 | optional string statusTitle = 3; 189 | optional string briefMessage = 4; 190 | optional string infoUrl = 5; 191 | optional LibraryUpdate libraryUpdate = 6; 192 | optional Instrument rejectedInstrument = 7; 193 | optional AndroidAppDeliveryData appDeliveryData = 8; 194 | } 195 | message CheckInstrumentResponse { 196 | optional bool userHasValidInstrument = 1; 197 | optional bool checkoutTokenRequired = 2; 198 | repeated Instrument instrument = 4; 199 | repeated Instrument eligibleInstrument = 5; 200 | } 201 | message UpdateInstrumentRequest { 202 | optional Instrument instrument = 1; 203 | optional string checkoutToken = 2; 204 | } 205 | message UpdateInstrumentResponse { 206 | optional int32 result = 1; 207 | optional string instrumentId = 2; 208 | optional string userMessageHtml = 3; 209 | repeated InputValidationError errorInputField = 4; 210 | optional bool checkoutTokenRequired = 5; 211 | optional RedeemedPromoOffer redeemedOffer = 6; 212 | } 213 | message InitiateAssociationResponse { 214 | optional string userToken = 1; 215 | } 216 | message VerifyAssociationResponse { 217 | optional int32 status = 1; 218 | optional Address billingAddress = 2; 219 | optional CarrierTos carrierTos = 3; 220 | } 221 | message AddCreditCardPromoOffer { 222 | optional string headerText = 1; 223 | optional string descriptionHtml = 2; 224 | optional Image image = 3; 225 | optional string introductoryTextHtml = 4; 226 | optional string offerTitle = 5; 227 | optional string noActionDescription = 6; 228 | optional string termsAndConditionsHtml = 7; 229 | } 230 | message AvailablePromoOffer { 231 | optional AddCreditCardPromoOffer addCreditCardOffer = 1; 232 | } 233 | message CheckPromoOfferResponse { 234 | repeated AvailablePromoOffer availableOffer = 1; 235 | optional RedeemedPromoOffer redeemedOffer = 2; 236 | optional bool checkoutTokenRequired = 3; 237 | } 238 | message RedeemedPromoOffer { 239 | optional string headerText = 1; 240 | optional string descriptionHtml = 2; 241 | optional Image image = 3; 242 | } 243 | message Docid { 244 | optional string backendDocid = 1; 245 | optional int32 type = 2; 246 | optional int32 backend = 3; 247 | } 248 | message Install { 249 | optional fixed64 androidId = 1; 250 | optional int32 version = 2; 251 | optional bool bundled = 3; 252 | } 253 | message Offer { 254 | optional int64 micros = 1; 255 | optional string currencyCode = 2; 256 | optional string formattedAmount = 3; 257 | repeated Offer convertedPrice = 4; 258 | optional bool checkoutFlowRequired = 5; 259 | optional int64 fullPriceMicros = 6; 260 | optional string formattedFullAmount = 7; 261 | optional int32 offerType = 8; 262 | optional RentalTerms rentalTerms = 9; 263 | optional int64 onSaleDate = 10; 264 | repeated string promotionLabel = 11; 265 | optional SubscriptionTerms subscriptionTerms = 12; 266 | optional string formattedName = 13; 267 | optional string formattedDescription = 14; 268 | } 269 | message OwnershipInfo { 270 | optional int64 initiationTimestampMsec = 1; 271 | optional int64 validUntilTimestampMsec = 2; 272 | optional bool autoRenewing = 3; 273 | optional int64 refundTimeoutTimestampMsec = 4; 274 | optional int64 postDeliveryRefundWindowMsec = 5; 275 | } 276 | message RentalTerms { 277 | optional int32 grantPeriodSeconds = 1; 278 | optional int32 activatePeriodSeconds = 2; 279 | } 280 | message SubscriptionTerms { 281 | optional TimePeriod recurringPeriod = 1; 282 | optional TimePeriod trialPeriod = 2; 283 | } 284 | message TimePeriod { 285 | optional int32 unit = 1; 286 | optional int32 count = 2; 287 | } 288 | message BillingAddressSpec { 289 | optional int32 billingAddressType = 1; 290 | repeated int32 requiredField = 2; 291 | } 292 | message CarrierBillingCredentials { 293 | optional string value = 1; 294 | optional int64 expiration = 2; 295 | } 296 | message CarrierBillingInstrument { 297 | optional string instrumentKey = 1; 298 | optional string accountType = 2; 299 | optional string currencyCode = 3; 300 | optional int64 transactionLimit = 4; 301 | optional string subscriberIdentifier = 5; 302 | optional EncryptedSubscriberInfo encryptedSubscriberInfo = 6; 303 | optional CarrierBillingCredentials credentials = 7; 304 | optional CarrierTos acceptedCarrierTos = 8; 305 | } 306 | message CarrierBillingInstrumentStatus { 307 | optional CarrierTos carrierTos = 1; 308 | optional bool associationRequired = 2; 309 | optional bool passwordRequired = 3; 310 | optional PasswordPrompt carrierPasswordPrompt = 4; 311 | optional int32 apiVersion = 5; 312 | optional string name = 6; 313 | } 314 | message CarrierTos { 315 | optional CarrierTosEntry dcbTos = 1; 316 | optional CarrierTosEntry piiTos = 2; 317 | optional bool needsDcbTosAcceptance = 3; 318 | optional bool needsPiiTosAcceptance = 4; 319 | } 320 | message CarrierTosEntry { 321 | optional string url = 1; 322 | optional string version = 2; 323 | } 324 | message CreditCardInstrument { 325 | optional int32 type = 1; 326 | optional string escrowHandle = 2; 327 | optional string lastDigits = 3; 328 | optional int32 expirationMonth = 4; 329 | optional int32 expirationYear = 5; 330 | repeated EfeParam escrowEfeParam = 6; 331 | } 332 | message EfeParam { 333 | optional int32 key = 1; 334 | optional string value = 2; 335 | } 336 | message InputValidationError { 337 | optional int32 inputField = 1; 338 | optional string errorMessage = 2; 339 | } 340 | message Instrument { 341 | optional string instrumentId = 1; 342 | optional Address billingAddress = 2; 343 | optional CreditCardInstrument creditCard = 3; 344 | optional CarrierBillingInstrument carrierBilling = 4; 345 | optional BillingAddressSpec billingAddressSpec = 5; 346 | optional int32 instrumentFamily = 6; 347 | optional CarrierBillingInstrumentStatus carrierBillingStatus = 7; 348 | optional string displayTitle = 8; 349 | } 350 | message PasswordPrompt { 351 | optional string prompt = 1; 352 | optional string forgotPasswordUrl = 2; 353 | } 354 | message ContainerMetadata { 355 | optional string browseUrl = 1; 356 | optional string nextPageUrl = 2; 357 | optional double relevance = 3; 358 | optional int64 estimatedResults = 4; 359 | optional string analyticsCookie = 5; 360 | optional bool ordered = 6; 361 | } 362 | message FlagContentResponse { 363 | } 364 | message DebugInfo { 365 | repeated string message = 1; 366 | repeated group Timing = 2 { 367 | optional string name = 3; 368 | optional double timeInMs = 4; 369 | } 370 | } 371 | message DeliveryResponse { 372 | optional int32 status = 1; 373 | optional AndroidAppDeliveryData appDeliveryData = 2; 374 | } 375 | message BulkDetailsEntry { 376 | optional DocV2 doc = 1; 377 | } 378 | message BulkDetailsRequest { 379 | repeated string docid = 1; 380 | optional bool includeChildDocs = 2; 381 | } 382 | message BulkDetailsResponse { 383 | repeated BulkDetailsEntry entry = 1; 384 | } 385 | message DetailsResponse { 386 | optional DocV1 docV1 = 1; 387 | optional string analyticsCookie = 2; 388 | optional Review userReview = 3; 389 | optional DocV2 docV2 = 4; 390 | optional string footerHtml = 5; 391 | } 392 | message DeviceConfigurationProto { 393 | optional int32 touchScreen = 1; 394 | optional int32 keyboard = 2; 395 | optional int32 navigation = 3; 396 | optional int32 screenLayout = 4; 397 | optional bool hasHardKeyboard = 5; 398 | optional bool hasFiveWayNavigation = 6; 399 | optional int32 screenDensity = 7; 400 | optional int32 glEsVersion = 8; 401 | repeated string systemSharedLibrary = 9; 402 | repeated string systemAvailableFeature = 10; 403 | repeated string nativePlatform = 11; 404 | optional int32 screenWidth = 12; 405 | optional int32 screenHeight = 13; 406 | repeated string systemSupportedLocale = 14; 407 | repeated string glExtension = 15; 408 | optional int32 deviceClass = 16; 409 | optional int32 maxApkDownloadSizeMb = 17; 410 | } 411 | message Document { 412 | optional Docid docid = 1; 413 | optional Docid fetchDocid = 2; 414 | optional Docid sampleDocid = 3; 415 | optional string title = 4; 416 | optional string url = 5; 417 | repeated string snippet = 6; 418 | optional Offer priceDeprecated = 7; 419 | optional Availability availability = 9; 420 | repeated Image image = 10; 421 | repeated Document child = 11; 422 | optional AggregateRating aggregateRating = 13; 423 | repeated Offer offer = 14; 424 | repeated TranslatedText translatedSnippet = 15; 425 | repeated DocumentVariant documentVariant = 16; 426 | repeated string categoryId = 17; 427 | repeated Document decoration = 18; 428 | repeated Document parent = 19; 429 | optional string privacyPolicyUrl = 20; 430 | } 431 | message DocumentVariant { 432 | optional int32 variationType = 1; 433 | optional Rule rule = 2; 434 | optional string title = 3; 435 | repeated string snippet = 4; 436 | optional string recentChanges = 5; 437 | repeated TranslatedText autoTranslation = 6; 438 | repeated Offer offer = 7; 439 | optional int64 channelId = 9; 440 | repeated Document child = 10; 441 | repeated Document decoration = 11; 442 | } 443 | message Image { 444 | optional int32 imageType = 1; 445 | optional group Dimension = 2 { 446 | optional int32 width = 3; 447 | optional int32 height = 4; 448 | } 449 | optional string imageUrl = 5; 450 | optional string altTextLocalized = 6; 451 | optional string secureUrl = 7; 452 | optional int32 positionInSequence = 8; 453 | optional bool supportsFifeUrlOptions = 9; 454 | optional group Citation = 10 { 455 | optional string titleLocalized = 11; 456 | optional string url = 12; 457 | } 458 | } 459 | message TranslatedText { 460 | optional string text = 1; 461 | optional string sourceLocale = 2; 462 | optional string targetLocale = 3; 463 | } 464 | message Badge { 465 | optional string title = 1; 466 | repeated Image image = 2; 467 | optional string browseUrl = 3; 468 | } 469 | message ContainerWithBanner { 470 | optional string colorThemeArgb = 1; 471 | } 472 | message DealOfTheDay { 473 | optional string featuredHeader = 1; 474 | optional string colorThemeArgb = 2; 475 | } 476 | message EditorialSeriesContainer { 477 | optional string seriesTitle = 1; 478 | optional string seriesSubtitle = 2; 479 | optional string episodeTitle = 3; 480 | optional string episodeSubtitle = 4; 481 | optional string colorThemeArgb = 5; 482 | } 483 | message Link { 484 | optional string uri = 1; 485 | } 486 | message PlusOneData { 487 | optional bool setByUser = 1; 488 | optional int64 total = 2; 489 | optional int64 circlesTotal = 3; 490 | repeated PlusPerson circlesPeople = 4; 491 | } 492 | message PlusPerson { 493 | optional string displayName = 2; 494 | optional string profileImageUrl = 4; 495 | } 496 | message PromotedDoc { 497 | optional string title = 1; 498 | optional string subtitle = 2; 499 | repeated Image image = 3; 500 | optional string descriptionHtml = 4; 501 | optional string detailsUrl = 5; 502 | } 503 | message Reason { 504 | optional string briefReason = 1; 505 | optional string detailedReason = 2; 506 | optional string uniqueId = 3; 507 | } 508 | message SectionMetadata { 509 | optional string header = 1; 510 | optional string listUrl = 2; 511 | optional string browseUrl = 3; 512 | optional string descriptionHtml = 4; 513 | } 514 | message SeriesAntenna { 515 | optional string seriesTitle = 1; 516 | optional string seriesSubtitle = 2; 517 | optional string episodeTitle = 3; 518 | optional string episodeSubtitle = 4; 519 | optional string colorThemeArgb = 5; 520 | optional SectionMetadata sectionTracks = 6; 521 | optional SectionMetadata sectionAlbums = 7; 522 | } 523 | message Template { 524 | optional SeriesAntenna seriesAntenna = 1; 525 | optional TileTemplate tileGraphic2X1 = 2; 526 | optional TileTemplate tileGraphic4X2 = 3; 527 | optional TileTemplate tileGraphicColoredTitle2X1 = 4; 528 | optional TileTemplate tileGraphicUpperLeftTitle2X1 = 5; 529 | optional TileTemplate tileDetailsReflectedGraphic2X2 = 6; 530 | optional TileTemplate tileFourBlock4X2 = 7; 531 | optional ContainerWithBanner containerWithBanner = 8; 532 | optional DealOfTheDay dealOfTheDay = 9; 533 | optional TileTemplate tileGraphicColoredTitle4X2 = 10; 534 | optional EditorialSeriesContainer editorialSeriesContainer = 11; 535 | } 536 | message TileTemplate { 537 | optional string colorThemeArgb = 1; 538 | optional string colorTextArgb = 2; 539 | } 540 | message Warning { 541 | optional string localizedMessage = 1; 542 | } 543 | message AlbumDetails { 544 | optional string name = 1; 545 | optional MusicDetails details = 2; 546 | optional ArtistDetails displayArtist = 3; 547 | } 548 | message AppDetails { 549 | optional string developerName = 1; 550 | optional int32 majorVersionNumber = 2; 551 | optional int32 versionCode = 3; 552 | optional string versionString = 4; 553 | optional string title = 5; 554 | repeated string appCategory = 7; 555 | optional int32 contentRating = 8; 556 | optional int64 installationSize = 9; 557 | repeated string permission = 10; 558 | optional string developerEmail = 11; 559 | optional string developerWebsite = 12; 560 | optional string numDownloads = 13; 561 | optional string packageName = 14; 562 | optional string recentChangesHtml = 15; 563 | optional string uploadDate = 16; 564 | repeated FileMetadata file = 17; 565 | optional string appType = 18; 566 | } 567 | message ArtistDetails { 568 | optional string detailsUrl = 1; 569 | optional string name = 2; 570 | optional ArtistExternalLinks externalLinks = 3; 571 | } 572 | message ArtistExternalLinks { 573 | repeated string websiteUrl = 1; 574 | optional string googlePlusProfileUrl = 2; 575 | optional string youtubeChannelUrl = 3; 576 | } 577 | message DocumentDetails { 578 | optional AppDetails appDetails = 1; 579 | optional AlbumDetails albumDetails = 2; 580 | optional ArtistDetails artistDetails = 3; 581 | optional SongDetails songDetails = 4; 582 | optional BookDetails bookDetails = 5; 583 | optional VideoDetails videoDetails = 6; 584 | optional SubscriptionDetails subscriptionDetails = 7; 585 | optional MagazineDetails magazineDetails = 8; 586 | optional TvShowDetails tvShowDetails = 9; 587 | optional TvSeasonDetails tvSeasonDetails = 10; 588 | optional TvEpisodeDetails tvEpisodeDetails = 11; 589 | } 590 | message FileMetadata { 591 | optional int32 fileType = 1; 592 | optional int32 versionCode = 2; 593 | optional int64 size = 3; 594 | } 595 | message MagazineDetails { 596 | optional string parentDetailsUrl = 1; 597 | optional string deviceAvailabilityDescriptionHtml = 2; 598 | optional string psvDescription = 3; 599 | optional string deliveryFrequencyDescription = 4; 600 | } 601 | message MusicDetails { 602 | optional int32 censoring = 1; 603 | optional int32 durationSec = 2; 604 | optional string originalReleaseDate = 3; 605 | optional string label = 4; 606 | repeated ArtistDetails artist = 5; 607 | repeated string genre = 6; 608 | optional string releaseDate = 7; 609 | repeated int32 releaseType = 8; 610 | } 611 | message SongDetails { 612 | optional string name = 1; 613 | optional MusicDetails details = 2; 614 | optional string albumName = 3; 615 | optional int32 trackNumber = 4; 616 | optional string previewUrl = 5; 617 | optional ArtistDetails displayArtist = 6; 618 | } 619 | message SubscriptionDetails { 620 | optional int32 subscriptionPeriod = 1; 621 | } 622 | message Trailer { 623 | optional string trailerId = 1; 624 | optional string title = 2; 625 | optional string thumbnailUrl = 3; 626 | optional string watchUrl = 4; 627 | optional string duration = 5; 628 | } 629 | message TvEpisodeDetails { 630 | optional string parentDetailsUrl = 1; 631 | optional int32 episodeIndex = 2; 632 | optional string releaseDate = 3; 633 | } 634 | message TvSeasonDetails { 635 | optional string parentDetailsUrl = 1; 636 | optional int32 seasonIndex = 2; 637 | optional string releaseDate = 3; 638 | optional string broadcaster = 4; 639 | } 640 | message TvShowDetails { 641 | optional int32 seasonCount = 1; 642 | optional int32 startYear = 2; 643 | optional int32 endYear = 3; 644 | optional string broadcaster = 4; 645 | } 646 | message VideoCredit { 647 | optional int32 creditType = 1; 648 | optional string credit = 2; 649 | repeated string name = 3; 650 | } 651 | message VideoDetails { 652 | repeated VideoCredit credit = 1; 653 | optional string duration = 2; 654 | optional string releaseDate = 3; 655 | optional string contentRating = 4; 656 | optional int64 likes = 5; 657 | optional int64 dislikes = 6; 658 | repeated string genre = 7; 659 | repeated Trailer trailer = 8; 660 | repeated VideoRentalTerm rentalTerm = 9; 661 | } 662 | message VideoRentalTerm { 663 | optional int32 offerType = 1; 664 | optional string offerAbbreviation = 2; 665 | optional string rentalHeader = 3; 666 | repeated group Term = 4 { 667 | optional string header = 5; 668 | optional string body = 6; 669 | } 670 | } 671 | message Bucket { 672 | repeated DocV1 document = 1; 673 | optional bool multiCorpus = 2; 674 | optional string title = 3; 675 | optional string iconUrl = 4; 676 | optional string fullContentsUrl = 5; 677 | optional double relevance = 6; 678 | optional int64 estimatedResults = 7; 679 | optional string analyticsCookie = 8; 680 | optional string fullContentsListUrl = 9; 681 | optional string nextPageUrl = 10; 682 | optional bool ordered = 11; 683 | } 684 | message ListResponse { 685 | repeated Bucket bucket = 1; 686 | repeated DocV2 doc = 2; 687 | } 688 | message DocV1 { 689 | optional Document finskyDoc = 1; 690 | optional string docid = 2; 691 | optional string detailsUrl = 3; 692 | optional string reviewsUrl = 4; 693 | optional string relatedListUrl = 5; 694 | optional string moreByListUrl = 6; 695 | optional string shareUrl = 7; 696 | optional string creator = 8; 697 | optional DocumentDetails details = 9; 698 | optional string descriptionHtml = 10; 699 | optional string relatedBrowseUrl = 11; 700 | optional string moreByBrowseUrl = 12; 701 | optional string relatedHeader = 13; 702 | optional string moreByHeader = 14; 703 | optional string title = 15; 704 | optional PlusOneData plusOneData = 16; 705 | optional string warningMessage = 17; 706 | } 707 | message Annotations { 708 | optional SectionMetadata sectionRelated = 1; 709 | optional SectionMetadata sectionMoreBy = 2; 710 | optional PlusOneData plusOneData = 3; 711 | repeated Warning warning = 4; 712 | optional SectionMetadata sectionBodyOfWork = 5; 713 | optional SectionMetadata sectionCoreContent = 6; 714 | optional Template template = 7; 715 | repeated Badge badgeForCreator = 8; 716 | repeated Badge badgeForDoc = 9; 717 | optional Link link = 10; 718 | optional SectionMetadata sectionCrossSell = 11; 719 | optional SectionMetadata sectionRelatedDocType = 12; 720 | repeated PromotedDoc promotedDoc = 13; 721 | optional string offerNote = 14; 722 | repeated DocV2 subscription = 16; 723 | optional Reason reason = 17; 724 | optional string privacyPolicyUrl = 18; 725 | } 726 | message DocV2 { 727 | optional string docid = 1; 728 | optional string backendDocid = 2; 729 | optional int32 docType = 3; 730 | optional int32 backendId = 4; 731 | optional string title = 5; 732 | optional string creator = 6; 733 | optional string descriptionHtml = 7; 734 | repeated Offer offer = 8; 735 | optional Availability availability = 9; 736 | repeated Image image = 10; 737 | repeated DocV2 child = 11; 738 | optional ContainerMetadata containerMetadata = 12; 739 | optional DocumentDetails details = 13; 740 | optional AggregateRating aggregateRating = 14; 741 | optional Annotations annotations = 15; 742 | optional string detailsUrl = 16; 743 | optional string shareUrl = 17; 744 | optional string reviewsUrl = 18; 745 | optional string backendUrl = 19; 746 | optional string purchaseDetailsUrl = 20; 747 | optional bool detailsReusable = 21; 748 | optional string subtitle = 22; 749 | } 750 | message EncryptedSubscriberInfo { 751 | optional string data = 1; 752 | optional string encryptedKey = 2; 753 | optional string signature = 3; 754 | optional string initVector = 4; 755 | optional int32 googleKeyVersion = 5; 756 | optional int32 carrierKeyVersion = 6; 757 | } 758 | message Availability { 759 | optional int32 restriction = 5; 760 | optional int32 offerType = 6; 761 | optional Rule rule = 7; 762 | repeated group PerDeviceAvailabilityRestriction = 9 { 763 | optional fixed64 androidId = 10; 764 | optional int32 deviceRestriction = 11; 765 | optional int64 channelId = 12; 766 | optional FilterEvaluationInfo filterInfo = 15; 767 | } 768 | optional bool availableIfOwned = 13; 769 | repeated Install install = 14; 770 | optional FilterEvaluationInfo filterInfo = 16; 771 | optional OwnershipInfo ownershipInfo = 17; 772 | } 773 | message FilterEvaluationInfo { 774 | repeated RuleEvaluation ruleEvaluation = 1; 775 | } 776 | message Rule { 777 | optional bool negate = 1; 778 | optional int32 operator = 2; 779 | optional int32 key = 3; 780 | repeated string stringArg = 4; 781 | repeated int64 longArg = 5; 782 | repeated double doubleArg = 6; 783 | repeated Rule subrule = 7; 784 | optional int32 responseCode = 8; 785 | optional string comment = 9; 786 | repeated fixed64 stringArgHash = 10; 787 | repeated int32 constArg = 11; 788 | } 789 | message RuleEvaluation { 790 | optional Rule rule = 1; 791 | repeated string actualStringValue = 2; 792 | repeated int64 actualLongValue = 3; 793 | repeated bool actualBoolValue = 4; 794 | repeated double actualDoubleValue = 5; 795 | } 796 | message LibraryAppDetails { 797 | optional string certificateHash = 2; 798 | optional int64 refundTimeoutTimestampMsec = 3; 799 | optional int64 postDeliveryRefundWindowMsec = 4; 800 | } 801 | message LibraryMutation { 802 | optional Docid docid = 1; 803 | optional int32 offerType = 2; 804 | optional int64 documentHash = 3; 805 | optional bool deleted = 4; 806 | optional LibraryAppDetails appDetails = 5; 807 | optional LibrarySubscriptionDetails subscriptionDetails = 6; 808 | } 809 | message LibrarySubscriptionDetails { 810 | optional int64 initiationTimestampMsec = 1; 811 | optional int64 validUntilTimestampMsec = 2; 812 | optional bool autoRenewing = 3; 813 | optional int64 trialUntilTimestampMsec = 4; 814 | } 815 | message LibraryUpdate { 816 | optional int32 status = 1; 817 | optional int32 corpus = 2; 818 | optional bytes serverToken = 3; 819 | repeated LibraryMutation mutation = 4; 820 | optional bool hasMore = 5; 821 | optional string libraryId = 6; 822 | } 823 | message ClientLibraryState { 824 | optional int32 corpus = 1; 825 | optional bytes serverToken = 2; 826 | optional int64 hashCodeSum = 3; 827 | optional int32 librarySize = 4; 828 | } 829 | message LibraryReplicationRequest { 830 | repeated ClientLibraryState libraryState = 1; 831 | } 832 | message LibraryReplicationResponse { 833 | repeated LibraryUpdate update = 1; 834 | } 835 | message ClickLogEvent { 836 | optional int64 eventTime = 1; 837 | optional string url = 2; 838 | optional string listId = 3; 839 | optional string referrerUrl = 4; 840 | optional string referrerListId = 5; 841 | } 842 | message LogRequest { 843 | repeated ClickLogEvent clickEvent = 1; 844 | } 845 | message LogResponse { 846 | } 847 | message AndroidAppNotificationData { 848 | optional int32 versionCode = 1; 849 | optional string assetId = 2; 850 | } 851 | message InAppNotificationData { 852 | optional string checkoutOrderId = 1; 853 | optional string inAppNotificationId = 2; 854 | } 855 | message LibraryDirtyData { 856 | optional int32 backend = 1; 857 | } 858 | message Notification { 859 | optional int32 notificationType = 1; 860 | optional int64 timestamp = 3; 861 | optional Docid docid = 4; 862 | optional string docTitle = 5; 863 | optional string userEmail = 6; 864 | optional AndroidAppNotificationData appData = 7; 865 | optional AndroidAppDeliveryData appDeliveryData = 8; 866 | optional PurchaseRemovalData purchaseRemovalData = 9; 867 | optional UserNotificationData userNotificationData = 10; 868 | optional InAppNotificationData inAppNotificationData = 11; 869 | optional PurchaseDeclinedData purchaseDeclinedData = 12; 870 | optional string notificationId = 13; 871 | optional LibraryUpdate libraryUpdate = 14; 872 | optional LibraryDirtyData libraryDirtyData = 15; 873 | } 874 | message PurchaseDeclinedData { 875 | optional int32 reason = 1; 876 | optional bool showNotification = 2; 877 | } 878 | message PurchaseRemovalData { 879 | optional bool malicious = 1; 880 | } 881 | message UserNotificationData { 882 | optional string notificationTitle = 1; 883 | optional string notificationText = 2; 884 | optional string tickerText = 3; 885 | optional string dialogTitle = 4; 886 | optional string dialogText = 5; 887 | } 888 | message PlusOneResponse { 889 | } 890 | message RateSuggestedContentResponse { 891 | } 892 | message AggregateRating { 893 | optional int32 type = 1; 894 | optional float starRating = 2; 895 | optional uint64 ratingsCount = 3; 896 | optional uint64 oneStarRatings = 4; 897 | optional uint64 twoStarRatings = 5; 898 | optional uint64 threeStarRatings = 6; 899 | optional uint64 fourStarRatings = 7; 900 | optional uint64 fiveStarRatings = 8; 901 | optional uint64 thumbsUpCount = 9; 902 | optional uint64 thumbsDownCount = 10; 903 | optional uint64 commentCount = 11; 904 | optional double bayesianMeanRating = 12; 905 | } 906 | message DirectPurchase { 907 | optional string detailsUrl = 1; 908 | optional string purchaseDocid = 2; 909 | optional string parentDocid = 3; 910 | optional int32 offerType = 4; 911 | } 912 | message ResolveLinkResponse { 913 | optional string detailsUrl = 1; 914 | optional string browseUrl = 2; 915 | optional string searchUrl = 3; 916 | optional DirectPurchase directPurchase = 4; 917 | optional string homeUrl = 5; 918 | } 919 | message Payload { 920 | optional ListResponse listResponse = 1; 921 | optional DetailsResponse detailsResponse = 2; 922 | optional ReviewResponse reviewResponse = 3; 923 | optional BuyResponse buyResponse = 4; 924 | optional SearchResponse searchResponse = 5; 925 | optional TocResponse tocResponse = 6; 926 | optional BrowseResponse browseResponse = 7; 927 | optional PurchaseStatusResponse purchaseStatusResponse = 8; 928 | optional UpdateInstrumentResponse updateInstrumentResponse = 9; 929 | optional LogResponse logResponse = 10; 930 | optional CheckInstrumentResponse checkInstrumentResponse = 11; 931 | optional PlusOneResponse plusOneResponse = 12; 932 | optional FlagContentResponse flagContentResponse = 13; 933 | optional AckNotificationResponse ackNotificationResponse = 14; 934 | optional InitiateAssociationResponse initiateAssociationResponse = 15; 935 | optional VerifyAssociationResponse verifyAssociationResponse = 16; 936 | optional LibraryReplicationResponse libraryReplicationResponse = 17; 937 | optional RevokeResponse revokeResponse = 18; 938 | optional BulkDetailsResponse bulkDetailsResponse = 19; 939 | optional ResolveLinkResponse resolveLinkResponse = 20; 940 | optional DeliveryResponse deliveryResponse = 21; 941 | optional AcceptTosResponse acceptTosResponse = 22; 942 | optional RateSuggestedContentResponse rateSuggestedContentResponse = 23; 943 | optional CheckPromoOfferResponse checkPromoOfferResponse = 24; 944 | } 945 | message PreFetch { 946 | optional string url = 1; 947 | optional bytes response = 2; 948 | optional string etag = 3; 949 | optional int64 ttl = 4; 950 | optional int64 softTtl = 5; 951 | } 952 | message ResponseWrapper { 953 | optional Payload payload = 1; 954 | optional ServerCommands commands = 2; 955 | repeated PreFetch preFetch = 3; 956 | repeated Notification notification = 4; 957 | } 958 | message ServerCommands { 959 | optional bool clearCache = 1; 960 | optional string displayErrorMessage = 2; 961 | optional string logErrorStacktrace = 3; 962 | } 963 | message GetReviewsResponse { 964 | repeated Review review = 1; 965 | optional int64 matchingCount = 2; 966 | } 967 | message Review { 968 | optional string authorName = 1; 969 | optional string url = 2; 970 | optional string source = 3; 971 | optional string documentVersion = 4; 972 | optional int64 timestampMsec = 5; 973 | optional int32 starRating = 6; 974 | optional string title = 7; 975 | optional string comment = 8; 976 | optional string commentId = 9; 977 | optional string deviceName = 19; 978 | optional string replyText = 29; 979 | optional int64 replyTimestampMsec = 30; 980 | } 981 | message ReviewResponse { 982 | optional GetReviewsResponse getResponse = 1; 983 | optional string nextPageUrl = 2; 984 | } 985 | message RevokeResponse { 986 | optional LibraryUpdate libraryUpdate = 1; 987 | } 988 | message RelatedSearch { 989 | optional string searchUrl = 1; 990 | optional string header = 2; 991 | optional int32 backendId = 3; 992 | optional int32 docType = 4; 993 | optional bool current = 5; 994 | } 995 | message SearchResponse { 996 | optional string originalQuery = 1; 997 | optional string suggestedQuery = 2; 998 | optional bool aggregateQuery = 3; 999 | repeated Bucket bucket = 4; 1000 | repeated DocV2 doc = 5; 1001 | repeated RelatedSearch relatedSearch = 6; 1002 | } 1003 | message CorpusMetadata { 1004 | optional int32 backend = 1; 1005 | optional string name = 2; 1006 | optional string landingUrl = 3; 1007 | optional string libraryName = 4; 1008 | } 1009 | message Experiments { 1010 | repeated string experimentId = 1; 1011 | } 1012 | message TocResponse { 1013 | repeated CorpusMetadata corpus = 1; 1014 | optional int32 tosVersionDeprecated = 2; 1015 | optional string tosContent = 3; 1016 | optional string homeUrl = 4; 1017 | optional Experiments experiments = 5; 1018 | optional string tosCheckboxTextMarketingEmails = 6; 1019 | optional string tosToken = 7; 1020 | optional UserSettings userSettings = 8; 1021 | optional string iconOverrideUrl = 9; 1022 | } 1023 | message UserSettings { 1024 | optional bool tosCheckboxMarketingEmailsOptedIn = 1; 1025 | } 1026 | message AcceptTosResponse { 1027 | } 1028 | message AckNotificationsRequestProto { 1029 | repeated string notificationId = 1; 1030 | optional SignatureHashProto signatureHash = 2; 1031 | repeated string nackNotificationId = 3; 1032 | } 1033 | message AckNotificationsResponseProto { 1034 | } 1035 | message AddressProto { 1036 | optional string address1 = 1; 1037 | optional string address2 = 2; 1038 | optional string city = 3; 1039 | optional string state = 4; 1040 | optional string postalCode = 5; 1041 | optional string country = 6; 1042 | optional string name = 7; 1043 | optional string type = 8; 1044 | optional string phone = 9; 1045 | } 1046 | message AppDataProto { 1047 | optional string key = 1; 1048 | optional string value = 2; 1049 | } 1050 | message AppSuggestionProto { 1051 | optional ExternalAssetProto assetInfo = 1; 1052 | } 1053 | message AssetIdentifierProto { 1054 | optional string packageName = 1; 1055 | optional int32 versionCode = 2; 1056 | optional string assetId = 3; 1057 | } 1058 | message AssetsRequestProto { 1059 | optional int32 assetType = 1; 1060 | optional string query = 2; 1061 | optional string categoryId = 3; 1062 | repeated string assetId = 4; 1063 | optional bool retrieveVendingHistory = 5; 1064 | optional bool retrieveExtendedInfo = 6; 1065 | optional int32 sortOrder = 7; 1066 | optional int64 startIndex = 8; 1067 | optional int64 numEntries = 9; 1068 | optional int32 viewFilter = 10; 1069 | optional string rankingType = 11; 1070 | optional bool retrieveCarrierChannel = 12; 1071 | repeated string pendingDownloadAssetId = 13; 1072 | optional bool reconstructVendingHistory = 14; 1073 | optional bool unfilteredResults = 15; 1074 | repeated string badgeId = 16; 1075 | } 1076 | message AssetsResponseProto { 1077 | repeated ExternalAssetProto asset = 1; 1078 | optional int64 numTotalEntries = 2; 1079 | optional string correctedQuery = 3; 1080 | repeated ExternalAssetProto altAsset = 4; 1081 | optional int64 numCorrectedEntries = 5; 1082 | optional string header = 6; 1083 | optional int32 listType = 7; 1084 | } 1085 | message BillingEventRequestProto { 1086 | optional int32 eventType = 1; 1087 | optional string billingParametersId = 2; 1088 | optional bool resultSuccess = 3; 1089 | optional string clientMessage = 4; 1090 | optional ExternalCarrierBillingInstrumentProto carrierInstrument = 5; 1091 | } 1092 | message BillingEventResponseProto { 1093 | } 1094 | message BillingParameterProto { 1095 | optional string id = 1; 1096 | optional string name = 2; 1097 | repeated string mncMcc = 3; 1098 | repeated string backendUrl = 4; 1099 | optional string iconId = 5; 1100 | optional int32 billingInstrumentType = 6; 1101 | optional string applicationId = 7; 1102 | optional string tosUrl = 8; 1103 | optional bool instrumentTosRequired = 9; 1104 | optional int32 apiVersion = 10; 1105 | optional bool perTransactionCredentialsRequired = 11; 1106 | optional bool sendSubscriberIdWithCarrierBillingRequests = 12; 1107 | optional int32 deviceAssociationMethod = 13; 1108 | optional string userTokenRequestMessage = 14; 1109 | optional string userTokenRequestAddress = 15; 1110 | optional bool passphraseRequired = 16; 1111 | } 1112 | message CarrierBillingCredentialsProto { 1113 | optional string credentials = 1; 1114 | optional int64 credentialsTimeout = 2; 1115 | } 1116 | message CategoryProto { 1117 | optional int32 assetType = 2; 1118 | optional string categoryId = 3; 1119 | optional string categoryDisplay = 4; 1120 | optional string categorySubtitle = 5; 1121 | repeated string promotedAssetsNew = 6; 1122 | repeated string promotedAssetsHome = 7; 1123 | repeated CategoryProto subCategories = 8; 1124 | repeated string promotedAssetsPaid = 9; 1125 | repeated string promotedAssetsFree = 10; 1126 | } 1127 | message CheckForNotificationsRequestProto { 1128 | optional int64 alarmDuration = 1; 1129 | } 1130 | message CheckForNotificationsResponseProto { 1131 | } 1132 | message CheckLicenseRequestProto { 1133 | optional string packageName = 1; 1134 | optional int32 versionCode = 2; 1135 | optional int64 nonce = 3; 1136 | } 1137 | message CheckLicenseResponseProto { 1138 | optional int32 responseCode = 1; 1139 | optional string signedData = 2; 1140 | optional string signature = 3; 1141 | } 1142 | message CommentsRequestProto { 1143 | optional string assetId = 1; 1144 | optional int64 startIndex = 2; 1145 | optional int64 numEntries = 3; 1146 | optional bool shouldReturnSelfComment = 4; 1147 | optional string assetReferrer = 5; 1148 | } 1149 | message CommentsResponseProto { 1150 | repeated ExternalCommentProto comment = 1; 1151 | optional int64 numTotalEntries = 2; 1152 | optional ExternalCommentProto selfComment = 3; 1153 | } 1154 | message ContentSyncRequestProto { 1155 | optional bool incremental = 1; 1156 | repeated group AssetInstallState = 2 { 1157 | optional string assetId = 3; 1158 | optional int32 assetState = 4; 1159 | optional int64 installTime = 5; 1160 | optional int64 uninstallTime = 6; 1161 | optional string packageName = 7; 1162 | optional int32 versionCode = 8; 1163 | optional string assetReferrer = 9; 1164 | } 1165 | repeated group SystemApp = 10 { 1166 | optional string packageName = 11; 1167 | optional int32 versionCode = 12; 1168 | repeated string certificateHash = 13; 1169 | } 1170 | optional int32 sideloadedAppCount = 14; 1171 | } 1172 | message ContentSyncResponseProto { 1173 | optional int32 numUpdatesAvailable = 1; 1174 | } 1175 | message DataMessageProto { 1176 | optional string category = 1; 1177 | repeated AppDataProto appData = 3; 1178 | } 1179 | message DownloadInfoProto { 1180 | optional int64 apkSize = 1; 1181 | repeated FileMetadataProto additionalFile = 2; 1182 | } 1183 | message ExternalAssetProto { 1184 | optional string id = 1; 1185 | optional string title = 2; 1186 | optional int32 assetType = 3; 1187 | optional string owner = 4; 1188 | optional string version = 5; 1189 | optional string price = 6; 1190 | optional string averageRating = 7; 1191 | optional int64 numRatings = 8; 1192 | optional group PurchaseInformation = 9 { 1193 | optional int64 purchaseTime = 10; 1194 | optional int64 refundTimeoutTime = 11; 1195 | optional int32 refundStartPolicy = 45; 1196 | optional int64 refundWindowDuration = 46; 1197 | } 1198 | optional group ExtendedInfo = 12 { 1199 | optional string description = 13; 1200 | optional int64 downloadCount = 14; 1201 | repeated string applicationPermissionId = 15; 1202 | optional int64 requiredInstallationSize = 16; 1203 | optional string packageName = 17; 1204 | optional string category = 18; 1205 | optional bool forwardLocked = 19; 1206 | optional string contactEmail = 20; 1207 | optional bool everInstalledByUser = 21; 1208 | optional string downloadCountString = 23; 1209 | optional string contactPhone = 26; 1210 | optional string contactWebsite = 27; 1211 | optional bool nextPurchaseRefundable = 28; 1212 | optional int32 numScreenshots = 30; 1213 | optional string promotionalDescription = 31; 1214 | optional int32 serverAssetState = 34; 1215 | optional int32 contentRatingLevel = 36; 1216 | optional string contentRatingString = 37; 1217 | optional string recentChanges = 38; 1218 | repeated group PackageDependency = 39 { 1219 | optional string packageName = 41; 1220 | optional bool skipPermissions = 42; 1221 | } 1222 | optional string videoLink = 43; 1223 | optional DownloadInfoProto downloadInfo = 49; 1224 | } 1225 | optional string ownerId = 22; 1226 | optional string packageName = 24; 1227 | optional int32 versionCode = 25; 1228 | optional bool bundledAsset = 29; 1229 | optional string priceCurrency = 32; 1230 | optional int64 priceMicros = 33; 1231 | optional string filterReason = 35; 1232 | optional string actualSellerPrice = 40; 1233 | repeated ExternalBadgeProto appBadge = 47; 1234 | repeated ExternalBadgeProto ownerBadge = 48; 1235 | } 1236 | message ExternalBadgeImageProto { 1237 | optional int32 usage = 1; 1238 | optional string url = 2; 1239 | } 1240 | message ExternalBadgeProto { 1241 | optional string localizedTitle = 1; 1242 | optional string localizedDescription = 2; 1243 | repeated ExternalBadgeImageProto badgeImage = 3; 1244 | optional string searchId = 4; 1245 | } 1246 | message ExternalCarrierBillingInstrumentProto { 1247 | optional string instrumentKey = 1; 1248 | optional string subscriberIdentifier = 2; 1249 | optional string accountType = 3; 1250 | optional string subscriberCurrency = 4; 1251 | optional uint64 transactionLimit = 5; 1252 | optional string subscriberName = 6; 1253 | optional string address1 = 7; 1254 | optional string address2 = 8; 1255 | optional string city = 9; 1256 | optional string state = 10; 1257 | optional string postalCode = 11; 1258 | optional string country = 12; 1259 | optional EncryptedSubscriberInfo encryptedSubscriberInfo = 13; 1260 | } 1261 | message ExternalCommentProto { 1262 | optional string body = 1; 1263 | optional int32 rating = 2; 1264 | optional string creatorName = 3; 1265 | optional int64 creationTime = 4; 1266 | optional string creatorId = 5; 1267 | } 1268 | message ExternalCreditCard { 1269 | optional string type = 1; 1270 | optional string lastDigits = 2; 1271 | optional int32 expYear = 3; 1272 | optional int32 expMonth = 4; 1273 | optional string personName = 5; 1274 | optional string countryCode = 6; 1275 | optional string postalCode = 7; 1276 | optional bool makeDefault = 8; 1277 | optional string address1 = 9; 1278 | optional string address2 = 10; 1279 | optional string city = 11; 1280 | optional string state = 12; 1281 | optional string phone = 13; 1282 | } 1283 | message ExternalPaypalInstrumentProto { 1284 | optional string instrumentKey = 1; 1285 | optional string preapprovalKey = 2; 1286 | optional string paypalEmail = 3; 1287 | optional AddressProto paypalAddress = 4; 1288 | optional bool multiplePaypalInstrumentsSupported = 5; 1289 | } 1290 | message FileMetadataProto { 1291 | optional int32 fileType = 1; 1292 | optional int32 versionCode = 2; 1293 | optional int64 size = 3; 1294 | optional string downloadUrl = 4; 1295 | } 1296 | message GetAddressSnippetRequestProto { 1297 | optional EncryptedSubscriberInfo encryptedSubscriberInfo = 1; 1298 | } 1299 | message GetAddressSnippetResponseProto { 1300 | optional string addressSnippet = 1; 1301 | } 1302 | message GetAssetRequestProto { 1303 | optional string assetId = 1; 1304 | optional string directDownloadKey = 2; 1305 | } 1306 | message GetAssetResponseProto { 1307 | optional group InstallAsset = 1 { 1308 | optional string assetId = 2; 1309 | optional string assetName = 3; 1310 | optional string assetType = 4; 1311 | optional string assetPackage = 5; 1312 | optional string blobUrl = 6; 1313 | optional string assetSignature = 7; 1314 | optional int64 assetSize = 8; 1315 | optional int64 refundTimeoutMillis = 9; 1316 | optional bool forwardLocked = 10; 1317 | optional bool secured = 11; 1318 | optional int32 versionCode = 12; 1319 | optional string downloadAuthCookieName = 13; 1320 | optional string downloadAuthCookieValue = 14; 1321 | optional int64 postInstallRefundWindowMillis = 16; 1322 | } 1323 | repeated FileMetadataProto additionalFile = 15; 1324 | } 1325 | message GetCarrierInfoRequestProto { 1326 | } 1327 | message GetCarrierInfoResponseProto { 1328 | optional bool carrierChannelEnabled = 1; 1329 | optional bytes carrierLogoIcon = 2; 1330 | optional bytes carrierBanner = 3; 1331 | optional string carrierSubtitle = 4; 1332 | optional string carrierTitle = 5; 1333 | optional int32 carrierImageDensity = 6; 1334 | } 1335 | message GetCategoriesRequestProto { 1336 | optional bool prefetchPromoData = 1; 1337 | } 1338 | message GetCategoriesResponseProto { 1339 | repeated CategoryProto categories = 1; 1340 | } 1341 | message GetImageRequestProto { 1342 | optional string assetId = 1; 1343 | optional int32 imageUsage = 3; 1344 | optional string imageId = 4; 1345 | optional int32 screenPropertyWidth = 5; 1346 | optional int32 screenPropertyHeight = 6; 1347 | optional int32 screenPropertyDensity = 7; 1348 | optional int32 productType = 8; 1349 | } 1350 | message GetImageResponseProto { 1351 | optional bytes imageData = 1; 1352 | optional int32 imageDensity = 2; 1353 | } 1354 | message GetMarketMetadataRequestProto { 1355 | optional int64 lastRequestTime = 1; 1356 | optional DeviceConfigurationProto deviceConfiguration = 2; 1357 | optional bool deviceRoaming = 3; 1358 | repeated string marketSignatureHash = 4; 1359 | optional int32 contentRating = 5; 1360 | optional string deviceModelName = 6; 1361 | optional string deviceManufacturerName = 7; 1362 | } 1363 | message GetMarketMetadataResponseProto { 1364 | optional int32 latestClientVersionCode = 1; 1365 | optional string latestClientUrl = 2; 1366 | optional bool paidAppsEnabled = 3; 1367 | repeated BillingParameterProto billingParameter = 4; 1368 | optional bool commentPostEnabled = 5; 1369 | optional bool billingEventsEnabled = 6; 1370 | optional string warningMessage = 7; 1371 | optional bool inAppBillingEnabled = 8; 1372 | optional int32 inAppBillingMaxApiVersion = 9; 1373 | } 1374 | message GetSubCategoriesRequestProto { 1375 | optional int32 assetType = 1; 1376 | } 1377 | message GetSubCategoriesResponseProto { 1378 | repeated group SubCategory = 1 { 1379 | optional string subCategoryDisplay = 2; 1380 | optional string subCategoryId = 3; 1381 | } 1382 | } 1383 | message InAppPurchaseInformationRequestProto { 1384 | optional SignatureHashProto signatureHash = 1; 1385 | optional int64 nonce = 2; 1386 | repeated string notificationId = 3; 1387 | optional string signatureAlgorithm = 4; 1388 | optional int32 billingApiVersion = 5; 1389 | } 1390 | message InAppPurchaseInformationResponseProto { 1391 | optional SignedDataProto signedResponse = 1; 1392 | repeated StatusBarNotificationProto statusBarNotification = 2; 1393 | optional PurchaseResultProto purchaseResult = 3; 1394 | } 1395 | message InAppRestoreTransactionsRequestProto { 1396 | optional SignatureHashProto signatureHash = 1; 1397 | optional int64 nonce = 2; 1398 | optional string signatureAlgorithm = 3; 1399 | optional int32 billingApiVersion = 4; 1400 | } 1401 | message InAppRestoreTransactionsResponseProto { 1402 | optional SignedDataProto signedResponse = 1; 1403 | optional PurchaseResultProto purchaseResult = 2; 1404 | } 1405 | /* 1406 | message InputValidationError { 1407 | optional int32 inputField = 1; 1408 | optional string errorMessage = 2; 1409 | } 1410 | */ 1411 | message ModifyCommentRequestProto { 1412 | optional string assetId = 1; 1413 | optional ExternalCommentProto comment = 2; 1414 | optional bool deleteComment = 3; 1415 | optional bool flagAsset = 4; 1416 | optional int32 flagType = 5; 1417 | optional string flagMessage = 6; 1418 | optional bool nonFlagFlow = 7; 1419 | } 1420 | message ModifyCommentResponseProto { 1421 | } 1422 | message PaypalCountryInfoProto { 1423 | optional bool birthDateRequired = 1; 1424 | optional string tosText = 2; 1425 | optional string billingAgreementText = 3; 1426 | optional string preTosText = 4; 1427 | } 1428 | message PaypalCreateAccountRequestProto { 1429 | optional string firstName = 1; 1430 | optional string lastName = 2; 1431 | optional AddressProto address = 3; 1432 | optional string birthDate = 4; 1433 | } 1434 | message PaypalCreateAccountResponseProto { 1435 | optional string createAccountKey = 1; 1436 | } 1437 | message PaypalCredentialsProto { 1438 | optional string preapprovalKey = 1; 1439 | optional string paypalEmail = 2; 1440 | } 1441 | message PaypalMassageAddressRequestProto { 1442 | optional AddressProto address = 1; 1443 | } 1444 | message PaypalMassageAddressResponseProto { 1445 | optional AddressProto address = 1; 1446 | } 1447 | message PaypalPreapprovalCredentialsRequestProto { 1448 | optional string gaiaAuthToken = 1; 1449 | optional string billingInstrumentId = 2; 1450 | } 1451 | message PaypalPreapprovalCredentialsResponseProto { 1452 | optional int32 resultCode = 1; 1453 | optional string paypalAccountKey = 2; 1454 | optional string paypalEmail = 3; 1455 | } 1456 | message PaypalPreapprovalDetailsRequestProto { 1457 | optional bool getAddress = 1; 1458 | optional string preapprovalKey = 2; 1459 | } 1460 | message PaypalPreapprovalDetailsResponseProto { 1461 | optional string paypalEmail = 1; 1462 | optional AddressProto address = 2; 1463 | } 1464 | message PaypalPreapprovalRequestProto { 1465 | } 1466 | message PaypalPreapprovalResponseProto { 1467 | optional string preapprovalKey = 1; 1468 | } 1469 | message PendingNotificationsProto { 1470 | repeated DataMessageProto notification = 1; 1471 | optional int64 nextCheckMillis = 2; 1472 | } 1473 | message PrefetchedBundleProto { 1474 | optional SingleRequestProto request = 1; 1475 | optional SingleResponseProto response = 2; 1476 | } 1477 | message PurchaseCartInfoProto { 1478 | optional string itemPrice = 1; 1479 | optional string taxInclusive = 2; 1480 | optional string taxExclusive = 3; 1481 | optional string total = 4; 1482 | optional string taxMessage = 5; 1483 | optional string footerMessage = 6; 1484 | optional string priceCurrency = 7; 1485 | optional int64 priceMicros = 8; 1486 | } 1487 | message PurchaseInfoProto { 1488 | optional string transactionId = 1; 1489 | optional PurchaseCartInfoProto cartInfo = 2; 1490 | optional group BillingInstruments = 3 { 1491 | repeated group BillingInstrument = 4 { 1492 | optional string id = 5; 1493 | optional string name = 6; 1494 | optional bool isInvalid = 7; 1495 | optional int32 instrumentType = 11; 1496 | optional int32 instrumentStatus = 14; 1497 | } 1498 | optional string defaultBillingInstrumentId = 8; 1499 | } 1500 | repeated int32 errorInputFields = 9; 1501 | optional string refundPolicy = 10; 1502 | optional bool userCanAddGdd = 12; 1503 | repeated int32 eligibleInstrumentTypes = 13; 1504 | optional string orderId = 15; 1505 | } 1506 | message PurchaseMetadataRequestProto { 1507 | optional bool deprecatedRetrieveBillingCountries = 1; 1508 | optional int32 billingInstrumentType = 2; 1509 | } 1510 | message PurchaseMetadataResponseProto { 1511 | optional group Countries = 1 { 1512 | repeated group Country = 2 { 1513 | optional string countryCode = 3; 1514 | optional string countryName = 4; 1515 | optional PaypalCountryInfoProto paypalCountryInfo = 5; 1516 | optional bool allowsReducedBillingAddress = 6; 1517 | repeated group InstrumentAddressSpec = 7 { 1518 | optional int32 instrumentFamily = 8; 1519 | optional BillingAddressSpec billingAddressSpec = 9; 1520 | } 1521 | } 1522 | } 1523 | } 1524 | message PurchaseOrderRequestProto { 1525 | optional string gaiaAuthToken = 1; 1526 | optional string assetId = 2; 1527 | optional string transactionId = 3; 1528 | optional string billingInstrumentId = 4; 1529 | optional bool tosAccepted = 5; 1530 | optional CarrierBillingCredentialsProto carrierBillingCredentials = 6; 1531 | optional string existingOrderId = 7; 1532 | optional int32 billingInstrumentType = 8; 1533 | optional string billingParametersId = 9; 1534 | optional PaypalCredentialsProto paypalCredentials = 10; 1535 | optional RiskHeaderInfoProto riskHeaderInfo = 11; 1536 | optional int32 productType = 12; 1537 | optional SignatureHashProto signatureHash = 13; 1538 | optional string developerPayload = 14; 1539 | } 1540 | message PurchaseOrderResponseProto { 1541 | optional int32 deprecatedResultCode = 1; 1542 | optional PurchaseInfoProto purchaseInfo = 2; 1543 | optional ExternalAssetProto asset = 3; 1544 | optional PurchaseResultProto purchaseResult = 4; 1545 | } 1546 | message PurchasePostRequestProto { 1547 | optional string gaiaAuthToken = 1; 1548 | optional string assetId = 2; 1549 | optional string transactionId = 3; 1550 | optional group BillingInstrumentInfo = 4 { 1551 | optional string billingInstrumentId = 5; 1552 | optional ExternalCreditCard creditCard = 6; 1553 | optional ExternalCarrierBillingInstrumentProto carrierInstrument = 9; 1554 | optional ExternalPaypalInstrumentProto paypalInstrument = 10; 1555 | } 1556 | optional bool tosAccepted = 7; 1557 | optional string cbInstrumentKey = 8; 1558 | optional bool paypalAuthConfirmed = 11; 1559 | optional int32 productType = 12; 1560 | optional SignatureHashProto signatureHash = 13; 1561 | } 1562 | message PurchasePostResponseProto { 1563 | optional int32 deprecatedResultCode = 1; 1564 | optional PurchaseInfoProto purchaseInfo = 2; 1565 | optional string termsOfServiceUrl = 3; 1566 | optional string termsOfServiceText = 4; 1567 | optional string termsOfServiceName = 5; 1568 | optional string termsOfServiceCheckboxText = 6; 1569 | optional string termsOfServiceHeaderText = 7; 1570 | optional PurchaseResultProto purchaseResult = 8; 1571 | } 1572 | message PurchaseProductRequestProto { 1573 | optional int32 productType = 1; 1574 | optional string productId = 2; 1575 | optional SignatureHashProto signatureHash = 3; 1576 | } 1577 | message PurchaseProductResponseProto { 1578 | optional string title = 1; 1579 | optional string itemTitle = 2; 1580 | optional string itemDescription = 3; 1581 | optional string merchantField = 4; 1582 | } 1583 | message PurchaseResultProto { 1584 | optional int32 resultCode = 1; 1585 | optional string resultCodeMessage = 2; 1586 | } 1587 | message QuerySuggestionProto { 1588 | optional string query = 1; 1589 | optional int32 estimatedNumResults = 2; 1590 | optional int32 queryWeight = 3; 1591 | } 1592 | message QuerySuggestionRequestProto { 1593 | optional string query = 1; 1594 | optional int32 requestType = 2; 1595 | } 1596 | message QuerySuggestionResponseProto { 1597 | repeated group Suggestion = 1 { 1598 | optional AppSuggestionProto appSuggestion = 2; 1599 | optional QuerySuggestionProto querySuggestion = 3; 1600 | } 1601 | optional int32 estimatedNumAppSuggestions = 4; 1602 | optional int32 estimatedNumQuerySuggestions = 5; 1603 | } 1604 | message RateCommentRequestProto { 1605 | optional string assetId = 1; 1606 | optional string creatorId = 2; 1607 | optional int32 commentRating = 3; 1608 | } 1609 | message RateCommentResponseProto { 1610 | } 1611 | message ReconstructDatabaseRequestProto { 1612 | optional bool retrieveFullHistory = 1; 1613 | } 1614 | message ReconstructDatabaseResponseProto { 1615 | repeated AssetIdentifierProto asset = 1; 1616 | } 1617 | message RefundRequestProto { 1618 | optional string assetId = 1; 1619 | } 1620 | message RefundResponseProto { 1621 | optional int32 result = 1; 1622 | optional ExternalAssetProto asset = 2; 1623 | optional string resultDetail = 3; 1624 | } 1625 | message RemoveAssetRequestProto { 1626 | optional string assetId = 1; 1627 | } 1628 | message RequestPropertiesProto { 1629 | optional string userAuthToken = 1; 1630 | optional bool userAuthTokenSecure = 2; 1631 | optional int32 softwareVersion = 3; 1632 | optional string aid = 4; 1633 | optional string productNameAndVersion = 5; 1634 | optional string userLanguage = 6; 1635 | optional string userCountry = 7; 1636 | optional string operatorName = 8; 1637 | optional string simOperatorName = 9; 1638 | optional string operatorNumericName = 10; 1639 | optional string simOperatorNumericName = 11; 1640 | optional string clientId = 12; 1641 | optional string loggingId = 13; 1642 | } 1643 | message RequestProto { 1644 | optional RequestPropertiesProto requestProperties = 1; 1645 | repeated group Request = 2 { 1646 | optional RequestSpecificPropertiesProto requestSpecificProperties = 3; 1647 | optional AssetsRequestProto assetRequest = 4; 1648 | optional CommentsRequestProto commentsRequest = 5; 1649 | optional ModifyCommentRequestProto modifyCommentRequest = 6; 1650 | optional PurchasePostRequestProto purchasePostRequest = 7; 1651 | optional PurchaseOrderRequestProto purchaseOrderRequest = 8; 1652 | optional ContentSyncRequestProto contentSyncRequest = 9; 1653 | optional GetAssetRequestProto getAssetRequest = 10; 1654 | optional GetImageRequestProto getImageRequest = 11; 1655 | optional RefundRequestProto refundRequest = 12; 1656 | optional PurchaseMetadataRequestProto purchaseMetadataRequest = 13; 1657 | optional GetSubCategoriesRequestProto subCategoriesRequest = 14; 1658 | optional UninstallReasonRequestProto uninstallReasonRequest = 16; 1659 | optional RateCommentRequestProto rateCommentRequest = 17; 1660 | optional CheckLicenseRequestProto checkLicenseRequest = 18; 1661 | optional GetMarketMetadataRequestProto getMarketMetadataRequest = 19; 1662 | optional GetCategoriesRequestProto getCategoriesRequest = 21; 1663 | optional GetCarrierInfoRequestProto getCarrierInfoRequest = 22; 1664 | optional RemoveAssetRequestProto removeAssetRequest = 23; 1665 | optional RestoreApplicationsRequestProto restoreApplicationsRequest = 24; 1666 | optional QuerySuggestionRequestProto querySuggestionRequest = 25; 1667 | optional BillingEventRequestProto billingEventRequest = 26; 1668 | optional PaypalPreapprovalRequestProto paypalPreapprovalRequest = 27; 1669 | optional PaypalPreapprovalDetailsRequestProto paypalPreapprovalDetailsRequest = 28; 1670 | optional PaypalCreateAccountRequestProto paypalCreateAccountRequest = 29; 1671 | optional PaypalPreapprovalCredentialsRequestProto paypalPreapprovalCredentialsRequest = 30; 1672 | optional InAppRestoreTransactionsRequestProto inAppRestoreTransactionsRequest = 31; 1673 | optional InAppPurchaseInformationRequestProto inAppPurchaseInformationRequest = 32; 1674 | optional CheckForNotificationsRequestProto checkForNotificationsRequest = 33; 1675 | optional AckNotificationsRequestProto ackNotificationsRequest = 34; 1676 | optional PurchaseProductRequestProto purchaseProductRequest = 35; 1677 | optional ReconstructDatabaseRequestProto reconstructDatabaseRequest = 36; 1678 | optional PaypalMassageAddressRequestProto paypalMassageAddressRequest = 37; 1679 | optional GetAddressSnippetRequestProto getAddressSnippetRequest = 38; 1680 | } 1681 | } 1682 | message RequestSpecificPropertiesProto { 1683 | optional string ifNoneMatch = 1; 1684 | } 1685 | message ResponsePropertiesProto { 1686 | optional int32 result = 1; 1687 | optional int32 maxAge = 2; 1688 | optional string etag = 3; 1689 | optional int32 serverVersion = 4; 1690 | optional int32 maxAgeConsumable = 6; 1691 | optional string errorMessage = 7; 1692 | repeated InputValidationError errorInputField = 8; 1693 | } 1694 | message ResponseProto { 1695 | repeated group Response = 1 { 1696 | optional ResponsePropertiesProto responseProperties = 2; 1697 | optional AssetsResponseProto assetsResponse = 3; 1698 | optional CommentsResponseProto commentsResponse = 4; 1699 | optional ModifyCommentResponseProto modifyCommentResponse = 5; 1700 | optional PurchasePostResponseProto purchasePostResponse = 6; 1701 | optional PurchaseOrderResponseProto purchaseOrderResponse = 7; 1702 | optional ContentSyncResponseProto contentSyncResponse = 8; 1703 | optional GetAssetResponseProto getAssetResponse = 9; 1704 | optional GetImageResponseProto getImageResponse = 10; 1705 | optional RefundResponseProto refundResponse = 11; 1706 | optional PurchaseMetadataResponseProto purchaseMetadataResponse = 12; 1707 | optional GetSubCategoriesResponseProto subCategoriesResponse = 13; 1708 | optional UninstallReasonResponseProto uninstallReasonResponse = 15; 1709 | optional RateCommentResponseProto rateCommentResponse = 16; 1710 | optional CheckLicenseResponseProto checkLicenseResponse = 17; 1711 | optional GetMarketMetadataResponseProto getMarketMetadataResponse = 18; 1712 | repeated PrefetchedBundleProto prefetchedBundle = 19; 1713 | optional GetCategoriesResponseProto getCategoriesResponse = 20; 1714 | optional GetCarrierInfoResponseProto getCarrierInfoResponse = 21; 1715 | optional RestoreApplicationsResponseProto restoreApplicationResponse = 23; 1716 | optional QuerySuggestionResponseProto querySuggestionResponse = 24; 1717 | optional BillingEventResponseProto billingEventResponse = 25; 1718 | optional PaypalPreapprovalResponseProto paypalPreapprovalResponse = 26; 1719 | optional PaypalPreapprovalDetailsResponseProto paypalPreapprovalDetailsResponse = 27; 1720 | optional PaypalCreateAccountResponseProto paypalCreateAccountResponse = 28; 1721 | optional PaypalPreapprovalCredentialsResponseProto paypalPreapprovalCredentialsResponse = 29; 1722 | optional InAppRestoreTransactionsResponseProto inAppRestoreTransactionsResponse = 30; 1723 | optional InAppPurchaseInformationResponseProto inAppPurchaseInformationResponse = 31; 1724 | optional CheckForNotificationsResponseProto checkForNotificationsResponse = 32; 1725 | optional AckNotificationsResponseProto ackNotificationsResponse = 33; 1726 | optional PurchaseProductResponseProto purchaseProductResponse = 34; 1727 | optional ReconstructDatabaseResponseProto reconstructDatabaseResponse = 35; 1728 | optional PaypalMassageAddressResponseProto paypalMassageAddressResponse = 36; 1729 | optional GetAddressSnippetResponseProto getAddressSnippetResponse = 37; 1730 | } 1731 | optional PendingNotificationsProto pendingNotifications = 38; 1732 | } 1733 | message RestoreApplicationsRequestProto { 1734 | optional string backupAndroidId = 1; 1735 | optional string tosVersion = 2; 1736 | optional DeviceConfigurationProto deviceConfiguration = 3; 1737 | } 1738 | message RestoreApplicationsResponseProto { 1739 | repeated GetAssetResponseProto asset = 1; 1740 | } 1741 | message RiskHeaderInfoProto { 1742 | optional string hashedDeviceInfo = 1; 1743 | } 1744 | message SignatureHashProto { 1745 | optional string packageName = 1; 1746 | optional int32 versionCode = 2; 1747 | optional bytes hash = 3; 1748 | } 1749 | message SignedDataProto { 1750 | optional string signedData = 1; 1751 | optional string signature = 2; 1752 | } 1753 | message SingleRequestProto { 1754 | optional RequestSpecificPropertiesProto requestSpecificProperties = 3; 1755 | optional AssetsRequestProto assetRequest = 4; 1756 | optional CommentsRequestProto commentsRequest = 5; 1757 | optional ModifyCommentRequestProto modifyCommentRequest = 6; 1758 | optional PurchasePostRequestProto purchasePostRequest = 7; 1759 | optional PurchaseOrderRequestProto purchaseOrderRequest = 8; 1760 | optional ContentSyncRequestProto contentSyncRequest = 9; 1761 | optional GetAssetRequestProto getAssetRequest = 10; 1762 | optional GetImageRequestProto getImageRequest = 11; 1763 | optional RefundRequestProto refundRequest = 12; 1764 | optional PurchaseMetadataRequestProto purchaseMetadataRequest = 13; 1765 | optional GetSubCategoriesRequestProto subCategoriesRequest = 14; 1766 | optional UninstallReasonRequestProto uninstallReasonRequest = 16; 1767 | optional RateCommentRequestProto rateCommentRequest = 17; 1768 | optional CheckLicenseRequestProto checkLicenseRequest = 18; 1769 | optional GetMarketMetadataRequestProto getMarketMetadataRequest = 19; 1770 | optional GetCategoriesRequestProto getCategoriesRequest = 21; 1771 | optional GetCarrierInfoRequestProto getCarrierInfoRequest = 22; 1772 | optional RemoveAssetRequestProto removeAssetRequest = 23; 1773 | optional RestoreApplicationsRequestProto restoreApplicationsRequest = 24; 1774 | optional QuerySuggestionRequestProto querySuggestionRequest = 25; 1775 | optional BillingEventRequestProto billingEventRequest = 26; 1776 | optional PaypalPreapprovalRequestProto paypalPreapprovalRequest = 27; 1777 | optional PaypalPreapprovalDetailsRequestProto paypalPreapprovalDetailsRequest = 28; 1778 | optional PaypalCreateAccountRequestProto paypalCreateAccountRequest = 29; 1779 | optional PaypalPreapprovalCredentialsRequestProto paypalPreapprovalCredentialsRequest = 30; 1780 | optional InAppRestoreTransactionsRequestProto inAppRestoreTransactionsRequest = 31; 1781 | optional InAppPurchaseInformationRequestProto getInAppPurchaseInformationRequest = 32; 1782 | optional CheckForNotificationsRequestProto checkForNotificationsRequest = 33; 1783 | optional AckNotificationsRequestProto ackNotificationsRequest = 34; 1784 | optional PurchaseProductRequestProto purchaseProductRequest = 35; 1785 | optional ReconstructDatabaseRequestProto reconstructDatabaseRequest = 36; 1786 | optional PaypalMassageAddressRequestProto paypalMassageAddressRequest = 37; 1787 | optional GetAddressSnippetRequestProto getAddressSnippetRequest = 38; 1788 | } 1789 | message SingleResponseProto { 1790 | optional ResponsePropertiesProto responseProperties = 2; 1791 | optional AssetsResponseProto assetsResponse = 3; 1792 | optional CommentsResponseProto commentsResponse = 4; 1793 | optional ModifyCommentResponseProto modifyCommentResponse = 5; 1794 | optional PurchasePostResponseProto purchasePostResponse = 6; 1795 | optional PurchaseOrderResponseProto purchaseOrderResponse = 7; 1796 | optional ContentSyncResponseProto contentSyncResponse = 8; 1797 | optional GetAssetResponseProto getAssetResponse = 9; 1798 | optional GetImageResponseProto getImageResponse = 10; 1799 | optional RefundResponseProto refundResponse = 11; 1800 | optional PurchaseMetadataResponseProto purchaseMetadataResponse = 12; 1801 | optional GetSubCategoriesResponseProto subCategoriesResponse = 13; 1802 | optional UninstallReasonResponseProto uninstallReasonResponse = 15; 1803 | optional RateCommentResponseProto rateCommentResponse = 16; 1804 | optional CheckLicenseResponseProto checkLicenseResponse = 17; 1805 | optional GetMarketMetadataResponseProto getMarketMetadataResponse = 18; 1806 | optional GetCategoriesResponseProto getCategoriesResponse = 20; 1807 | optional GetCarrierInfoResponseProto getCarrierInfoResponse = 21; 1808 | optional RestoreApplicationsResponseProto restoreApplicationResponse = 23; 1809 | optional QuerySuggestionResponseProto querySuggestionResponse = 24; 1810 | optional BillingEventResponseProto billingEventResponse = 25; 1811 | optional PaypalPreapprovalResponseProto paypalPreapprovalResponse = 26; 1812 | optional PaypalPreapprovalDetailsResponseProto paypalPreapprovalDetailsResponse = 27; 1813 | optional PaypalCreateAccountResponseProto paypalCreateAccountResponse = 28; 1814 | optional PaypalPreapprovalCredentialsResponseProto paypalPreapprovalCredentialsResponse = 29; 1815 | optional InAppRestoreTransactionsResponseProto inAppRestoreTransactionsResponse = 30; 1816 | optional InAppPurchaseInformationResponseProto getInAppPurchaseInformationResponse = 31; 1817 | optional CheckForNotificationsResponseProto checkForNotificationsResponse = 32; 1818 | optional AckNotificationsResponseProto ackNotificationsResponse = 33; 1819 | optional PurchaseProductResponseProto purchaseProductResponse = 34; 1820 | optional ReconstructDatabaseResponseProto reconstructDatabaseResponse = 35; 1821 | optional PaypalMassageAddressResponseProto paypalMassageAddressResponse = 36; 1822 | optional GetAddressSnippetResponseProto getAddressSnippetResponse = 37; 1823 | } 1824 | message StatusBarNotificationProto { 1825 | optional string tickerText = 1; 1826 | optional string contentTitle = 2; 1827 | optional string contentText = 3; 1828 | } 1829 | message UninstallReasonRequestProto { 1830 | optional string assetId = 1; 1831 | optional int32 reason = 2; 1832 | } 1833 | message UninstallReasonResponseProto { 1834 | } 1835 | -------------------------------------------------------------------------------- /lib/apk_downloader/googleplay.pb.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | # Generated by the protocol buffer compiler. DO NOT EDIT! 3 | 4 | require 'protocol_buffers' 5 | 6 | module ApkDownloader 7 | module ProtocolBuffers 8 | # forward declarations 9 | class AckNotificationResponse < ::ProtocolBuffers::Message; end 10 | class AndroidAppDeliveryData < ::ProtocolBuffers::Message; end 11 | class AndroidAppPatchData < ::ProtocolBuffers::Message; end 12 | class AppFileMetadata < ::ProtocolBuffers::Message; end 13 | class EncryptionParams < ::ProtocolBuffers::Message; end 14 | class HttpCookie < ::ProtocolBuffers::Message; end 15 | class Address < ::ProtocolBuffers::Message; end 16 | class BookAuthor < ::ProtocolBuffers::Message; end 17 | class BookDetails < ::ProtocolBuffers::Message; end 18 | class BookSubject < ::ProtocolBuffers::Message; end 19 | class BrowseLink < ::ProtocolBuffers::Message; end 20 | class BrowseResponse < ::ProtocolBuffers::Message; end 21 | class AddressChallenge < ::ProtocolBuffers::Message; end 22 | class AuthenticationChallenge < ::ProtocolBuffers::Message; end 23 | class BuyResponse < ::ProtocolBuffers::Message; end 24 | class Challenge < ::ProtocolBuffers::Message; end 25 | class FormCheckbox < ::ProtocolBuffers::Message; end 26 | class LineItem < ::ProtocolBuffers::Message; end 27 | class Money < ::ProtocolBuffers::Message; end 28 | class PurchaseNotificationResponse < ::ProtocolBuffers::Message; end 29 | class PurchaseStatusResponse < ::ProtocolBuffers::Message; end 30 | class CheckInstrumentResponse < ::ProtocolBuffers::Message; end 31 | class UpdateInstrumentRequest < ::ProtocolBuffers::Message; end 32 | class UpdateInstrumentResponse < ::ProtocolBuffers::Message; end 33 | class InitiateAssociationResponse < ::ProtocolBuffers::Message; end 34 | class VerifyAssociationResponse < ::ProtocolBuffers::Message; end 35 | class AddCreditCardPromoOffer < ::ProtocolBuffers::Message; end 36 | class AvailablePromoOffer < ::ProtocolBuffers::Message; end 37 | class CheckPromoOfferResponse < ::ProtocolBuffers::Message; end 38 | class RedeemedPromoOffer < ::ProtocolBuffers::Message; end 39 | class Docid < ::ProtocolBuffers::Message; end 40 | class Install < ::ProtocolBuffers::Message; end 41 | class Offer < ::ProtocolBuffers::Message; end 42 | class OwnershipInfo < ::ProtocolBuffers::Message; end 43 | class RentalTerms < ::ProtocolBuffers::Message; end 44 | class SubscriptionTerms < ::ProtocolBuffers::Message; end 45 | class TimePeriod < ::ProtocolBuffers::Message; end 46 | class BillingAddressSpec < ::ProtocolBuffers::Message; end 47 | class CarrierBillingCredentials < ::ProtocolBuffers::Message; end 48 | class CarrierBillingInstrument < ::ProtocolBuffers::Message; end 49 | class CarrierBillingInstrumentStatus < ::ProtocolBuffers::Message; end 50 | class CarrierTos < ::ProtocolBuffers::Message; end 51 | class CarrierTosEntry < ::ProtocolBuffers::Message; end 52 | class CreditCardInstrument < ::ProtocolBuffers::Message; end 53 | class EfeParam < ::ProtocolBuffers::Message; end 54 | class InputValidationError < ::ProtocolBuffers::Message; end 55 | class Instrument < ::ProtocolBuffers::Message; end 56 | class PasswordPrompt < ::ProtocolBuffers::Message; end 57 | class ContainerMetadata < ::ProtocolBuffers::Message; end 58 | class FlagContentResponse < ::ProtocolBuffers::Message; end 59 | class DebugInfo < ::ProtocolBuffers::Message; end 60 | class DeliveryResponse < ::ProtocolBuffers::Message; end 61 | class BulkDetailsEntry < ::ProtocolBuffers::Message; end 62 | class BulkDetailsRequest < ::ProtocolBuffers::Message; end 63 | class BulkDetailsResponse < ::ProtocolBuffers::Message; end 64 | class DetailsResponse < ::ProtocolBuffers::Message; end 65 | class DeviceConfigurationProto < ::ProtocolBuffers::Message; end 66 | class Document < ::ProtocolBuffers::Message; end 67 | class DocumentVariant < ::ProtocolBuffers::Message; end 68 | class Image < ::ProtocolBuffers::Message; end 69 | class TranslatedText < ::ProtocolBuffers::Message; end 70 | class Badge < ::ProtocolBuffers::Message; end 71 | class ContainerWithBanner < ::ProtocolBuffers::Message; end 72 | class DealOfTheDay < ::ProtocolBuffers::Message; end 73 | class EditorialSeriesContainer < ::ProtocolBuffers::Message; end 74 | class Link < ::ProtocolBuffers::Message; end 75 | class PlusOneData < ::ProtocolBuffers::Message; end 76 | class PlusPerson < ::ProtocolBuffers::Message; end 77 | class PromotedDoc < ::ProtocolBuffers::Message; end 78 | class Reason < ::ProtocolBuffers::Message; end 79 | class SectionMetadata < ::ProtocolBuffers::Message; end 80 | class SeriesAntenna < ::ProtocolBuffers::Message; end 81 | class Template < ::ProtocolBuffers::Message; end 82 | class TileTemplate < ::ProtocolBuffers::Message; end 83 | class Warning < ::ProtocolBuffers::Message; end 84 | class AlbumDetails < ::ProtocolBuffers::Message; end 85 | class AppDetails < ::ProtocolBuffers::Message; end 86 | class ArtistDetails < ::ProtocolBuffers::Message; end 87 | class ArtistExternalLinks < ::ProtocolBuffers::Message; end 88 | class DocumentDetails < ::ProtocolBuffers::Message; end 89 | class FileMetadata < ::ProtocolBuffers::Message; end 90 | class MagazineDetails < ::ProtocolBuffers::Message; end 91 | class MusicDetails < ::ProtocolBuffers::Message; end 92 | class SongDetails < ::ProtocolBuffers::Message; end 93 | class SubscriptionDetails < ::ProtocolBuffers::Message; end 94 | class Trailer < ::ProtocolBuffers::Message; end 95 | class TvEpisodeDetails < ::ProtocolBuffers::Message; end 96 | class TvSeasonDetails < ::ProtocolBuffers::Message; end 97 | class TvShowDetails < ::ProtocolBuffers::Message; end 98 | class VideoCredit < ::ProtocolBuffers::Message; end 99 | class VideoDetails < ::ProtocolBuffers::Message; end 100 | class VideoRentalTerm < ::ProtocolBuffers::Message; end 101 | class Bucket < ::ProtocolBuffers::Message; end 102 | class ListResponse < ::ProtocolBuffers::Message; end 103 | class DocV1 < ::ProtocolBuffers::Message; end 104 | class Annotations < ::ProtocolBuffers::Message; end 105 | class DocV2 < ::ProtocolBuffers::Message; end 106 | class EncryptedSubscriberInfo < ::ProtocolBuffers::Message; end 107 | class Availability < ::ProtocolBuffers::Message; end 108 | class FilterEvaluationInfo < ::ProtocolBuffers::Message; end 109 | class Rule < ::ProtocolBuffers::Message; end 110 | class RuleEvaluation < ::ProtocolBuffers::Message; end 111 | class LibraryAppDetails < ::ProtocolBuffers::Message; end 112 | class LibraryMutation < ::ProtocolBuffers::Message; end 113 | class LibrarySubscriptionDetails < ::ProtocolBuffers::Message; end 114 | class LibraryUpdate < ::ProtocolBuffers::Message; end 115 | class ClientLibraryState < ::ProtocolBuffers::Message; end 116 | class LibraryReplicationRequest < ::ProtocolBuffers::Message; end 117 | class LibraryReplicationResponse < ::ProtocolBuffers::Message; end 118 | class ClickLogEvent < ::ProtocolBuffers::Message; end 119 | class LogRequest < ::ProtocolBuffers::Message; end 120 | class LogResponse < ::ProtocolBuffers::Message; end 121 | class AndroidAppNotificationData < ::ProtocolBuffers::Message; end 122 | class InAppNotificationData < ::ProtocolBuffers::Message; end 123 | class LibraryDirtyData < ::ProtocolBuffers::Message; end 124 | class Notification < ::ProtocolBuffers::Message; end 125 | class PurchaseDeclinedData < ::ProtocolBuffers::Message; end 126 | class PurchaseRemovalData < ::ProtocolBuffers::Message; end 127 | class UserNotificationData < ::ProtocolBuffers::Message; end 128 | class PlusOneResponse < ::ProtocolBuffers::Message; end 129 | class RateSuggestedContentResponse < ::ProtocolBuffers::Message; end 130 | class AggregateRating < ::ProtocolBuffers::Message; end 131 | class DirectPurchase < ::ProtocolBuffers::Message; end 132 | class ResolveLinkResponse < ::ProtocolBuffers::Message; end 133 | class Payload < ::ProtocolBuffers::Message; end 134 | class PreFetch < ::ProtocolBuffers::Message; end 135 | class ResponseWrapper < ::ProtocolBuffers::Message; end 136 | class ServerCommands < ::ProtocolBuffers::Message; end 137 | class GetReviewsResponse < ::ProtocolBuffers::Message; end 138 | class Review < ::ProtocolBuffers::Message; end 139 | class ReviewResponse < ::ProtocolBuffers::Message; end 140 | class RevokeResponse < ::ProtocolBuffers::Message; end 141 | class RelatedSearch < ::ProtocolBuffers::Message; end 142 | class SearchResponse < ::ProtocolBuffers::Message; end 143 | class CorpusMetadata < ::ProtocolBuffers::Message; end 144 | class Experiments < ::ProtocolBuffers::Message; end 145 | class TocResponse < ::ProtocolBuffers::Message; end 146 | class UserSettings < ::ProtocolBuffers::Message; end 147 | class AcceptTosResponse < ::ProtocolBuffers::Message; end 148 | class AckNotificationsRequestProto < ::ProtocolBuffers::Message; end 149 | class AckNotificationsResponseProto < ::ProtocolBuffers::Message; end 150 | class AddressProto < ::ProtocolBuffers::Message; end 151 | class AppDataProto < ::ProtocolBuffers::Message; end 152 | class AppSuggestionProto < ::ProtocolBuffers::Message; end 153 | class AssetIdentifierProto < ::ProtocolBuffers::Message; end 154 | class AssetsRequestProto < ::ProtocolBuffers::Message; end 155 | class AssetsResponseProto < ::ProtocolBuffers::Message; end 156 | class BillingEventRequestProto < ::ProtocolBuffers::Message; end 157 | class BillingEventResponseProto < ::ProtocolBuffers::Message; end 158 | class BillingParameterProto < ::ProtocolBuffers::Message; end 159 | class CarrierBillingCredentialsProto < ::ProtocolBuffers::Message; end 160 | class CategoryProto < ::ProtocolBuffers::Message; end 161 | class CheckForNotificationsRequestProto < ::ProtocolBuffers::Message; end 162 | class CheckForNotificationsResponseProto < ::ProtocolBuffers::Message; end 163 | class CheckLicenseRequestProto < ::ProtocolBuffers::Message; end 164 | class CheckLicenseResponseProto < ::ProtocolBuffers::Message; end 165 | class CommentsRequestProto < ::ProtocolBuffers::Message; end 166 | class CommentsResponseProto < ::ProtocolBuffers::Message; end 167 | class ContentSyncRequestProto < ::ProtocolBuffers::Message; end 168 | class ContentSyncResponseProto < ::ProtocolBuffers::Message; end 169 | class DataMessageProto < ::ProtocolBuffers::Message; end 170 | class DownloadInfoProto < ::ProtocolBuffers::Message; end 171 | class ExternalAssetProto < ::ProtocolBuffers::Message; end 172 | class ExternalBadgeImageProto < ::ProtocolBuffers::Message; end 173 | class ExternalBadgeProto < ::ProtocolBuffers::Message; end 174 | class ExternalCarrierBillingInstrumentProto < ::ProtocolBuffers::Message; end 175 | class ExternalCommentProto < ::ProtocolBuffers::Message; end 176 | class ExternalCreditCard < ::ProtocolBuffers::Message; end 177 | class ExternalPaypalInstrumentProto < ::ProtocolBuffers::Message; end 178 | class FileMetadataProto < ::ProtocolBuffers::Message; end 179 | class GetAddressSnippetRequestProto < ::ProtocolBuffers::Message; end 180 | class GetAddressSnippetResponseProto < ::ProtocolBuffers::Message; end 181 | class GetAssetRequestProto < ::ProtocolBuffers::Message; end 182 | class GetAssetResponseProto < ::ProtocolBuffers::Message; end 183 | class GetCarrierInfoRequestProto < ::ProtocolBuffers::Message; end 184 | class GetCarrierInfoResponseProto < ::ProtocolBuffers::Message; end 185 | class GetCategoriesRequestProto < ::ProtocolBuffers::Message; end 186 | class GetCategoriesResponseProto < ::ProtocolBuffers::Message; end 187 | class GetImageRequestProto < ::ProtocolBuffers::Message; end 188 | class GetImageResponseProto < ::ProtocolBuffers::Message; end 189 | class GetMarketMetadataRequestProto < ::ProtocolBuffers::Message; end 190 | class GetMarketMetadataResponseProto < ::ProtocolBuffers::Message; end 191 | class GetSubCategoriesRequestProto < ::ProtocolBuffers::Message; end 192 | class GetSubCategoriesResponseProto < ::ProtocolBuffers::Message; end 193 | class InAppPurchaseInformationRequestProto < ::ProtocolBuffers::Message; end 194 | class InAppPurchaseInformationResponseProto < ::ProtocolBuffers::Message; end 195 | class InAppRestoreTransactionsRequestProto < ::ProtocolBuffers::Message; end 196 | class InAppRestoreTransactionsResponseProto < ::ProtocolBuffers::Message; end 197 | class ModifyCommentRequestProto < ::ProtocolBuffers::Message; end 198 | class ModifyCommentResponseProto < ::ProtocolBuffers::Message; end 199 | class PaypalCountryInfoProto < ::ProtocolBuffers::Message; end 200 | class PaypalCreateAccountRequestProto < ::ProtocolBuffers::Message; end 201 | class PaypalCreateAccountResponseProto < ::ProtocolBuffers::Message; end 202 | class PaypalCredentialsProto < ::ProtocolBuffers::Message; end 203 | class PaypalMassageAddressRequestProto < ::ProtocolBuffers::Message; end 204 | class PaypalMassageAddressResponseProto < ::ProtocolBuffers::Message; end 205 | class PaypalPreapprovalCredentialsRequestProto < ::ProtocolBuffers::Message; end 206 | class PaypalPreapprovalCredentialsResponseProto < ::ProtocolBuffers::Message; end 207 | class PaypalPreapprovalDetailsRequestProto < ::ProtocolBuffers::Message; end 208 | class PaypalPreapprovalDetailsResponseProto < ::ProtocolBuffers::Message; end 209 | class PaypalPreapprovalRequestProto < ::ProtocolBuffers::Message; end 210 | class PaypalPreapprovalResponseProto < ::ProtocolBuffers::Message; end 211 | class PendingNotificationsProto < ::ProtocolBuffers::Message; end 212 | class PrefetchedBundleProto < ::ProtocolBuffers::Message; end 213 | class PurchaseCartInfoProto < ::ProtocolBuffers::Message; end 214 | class PurchaseInfoProto < ::ProtocolBuffers::Message; end 215 | class PurchaseMetadataRequestProto < ::ProtocolBuffers::Message; end 216 | class PurchaseMetadataResponseProto < ::ProtocolBuffers::Message; end 217 | class PurchaseOrderRequestProto < ::ProtocolBuffers::Message; end 218 | class PurchaseOrderResponseProto < ::ProtocolBuffers::Message; end 219 | class PurchasePostRequestProto < ::ProtocolBuffers::Message; end 220 | class PurchasePostResponseProto < ::ProtocolBuffers::Message; end 221 | class PurchaseProductRequestProto < ::ProtocolBuffers::Message; end 222 | class PurchaseProductResponseProto < ::ProtocolBuffers::Message; end 223 | class PurchaseResultProto < ::ProtocolBuffers::Message; end 224 | class QuerySuggestionProto < ::ProtocolBuffers::Message; end 225 | class QuerySuggestionRequestProto < ::ProtocolBuffers::Message; end 226 | class QuerySuggestionResponseProto < ::ProtocolBuffers::Message; end 227 | class RateCommentRequestProto < ::ProtocolBuffers::Message; end 228 | class RateCommentResponseProto < ::ProtocolBuffers::Message; end 229 | class ReconstructDatabaseRequestProto < ::ProtocolBuffers::Message; end 230 | class ReconstructDatabaseResponseProto < ::ProtocolBuffers::Message; end 231 | class RefundRequestProto < ::ProtocolBuffers::Message; end 232 | class RefundResponseProto < ::ProtocolBuffers::Message; end 233 | class RemoveAssetRequestProto < ::ProtocolBuffers::Message; end 234 | class RequestPropertiesProto < ::ProtocolBuffers::Message; end 235 | class RequestProto < ::ProtocolBuffers::Message; end 236 | class RequestSpecificPropertiesProto < ::ProtocolBuffers::Message; end 237 | class ResponsePropertiesProto < ::ProtocolBuffers::Message; end 238 | class ResponseProto < ::ProtocolBuffers::Message; end 239 | class RestoreApplicationsRequestProto < ::ProtocolBuffers::Message; end 240 | class RestoreApplicationsResponseProto < ::ProtocolBuffers::Message; end 241 | class RiskHeaderInfoProto < ::ProtocolBuffers::Message; end 242 | class SignatureHashProto < ::ProtocolBuffers::Message; end 243 | class SignedDataProto < ::ProtocolBuffers::Message; end 244 | class SingleRequestProto < ::ProtocolBuffers::Message; end 245 | class SingleResponseProto < ::ProtocolBuffers::Message; end 246 | class StatusBarNotificationProto < ::ProtocolBuffers::Message; end 247 | class UninstallReasonRequestProto < ::ProtocolBuffers::Message; end 248 | class UninstallReasonResponseProto < ::ProtocolBuffers::Message; end 249 | 250 | class AckNotificationResponse < ::ProtocolBuffers::Message 251 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AckNotificationResponse" 252 | 253 | end 254 | 255 | class AndroidAppDeliveryData < ::ProtocolBuffers::Message 256 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AndroidAppDeliveryData" 257 | 258 | optional :int64, :downloadSize, 1 259 | optional :string, :signature, 2 260 | optional :string, :downloadUrl, 3 261 | repeated ::ApkDownloader::ProtocolBuffers::AppFileMetadata, :additionalFile, 4 262 | repeated ::ApkDownloader::ProtocolBuffers::HttpCookie, :downloadAuthCookie, 5 263 | optional :bool, :forwardLocked, 6 264 | optional :int64, :refundTimeout, 7 265 | optional :bool, :serverInitiated, 8 266 | optional :int64, :postInstallRefundWindowMillis, 9 267 | optional :bool, :immediateStartNeeded, 10 268 | optional ::ApkDownloader::ProtocolBuffers::AndroidAppPatchData, :patchData, 11 269 | optional ::ApkDownloader::ProtocolBuffers::EncryptionParams, :encryptionParams, 12 270 | end 271 | 272 | class AndroidAppPatchData < ::ProtocolBuffers::Message 273 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AndroidAppPatchData" 274 | 275 | optional :int32, :baseVersionCode, 1 276 | optional :string, :baseSignature, 2 277 | optional :string, :downloadUrl, 3 278 | optional :int32, :patchFormat, 4 279 | optional :int64, :maxPatchSize, 5 280 | end 281 | 282 | class AppFileMetadata < ::ProtocolBuffers::Message 283 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AppFileMetadata" 284 | 285 | optional :int32, :fileType, 1 286 | optional :int32, :versionCode, 2 287 | optional :int64, :size, 3 288 | optional :string, :downloadUrl, 4 289 | end 290 | 291 | class EncryptionParams < ::ProtocolBuffers::Message 292 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.EncryptionParams" 293 | 294 | optional :int32, :version, 1 295 | optional :string, :encryptionKey, 2 296 | optional :string, :hmacKey, 3 297 | end 298 | 299 | class HttpCookie < ::ProtocolBuffers::Message 300 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.HttpCookie" 301 | 302 | optional :string, :name, 1 303 | optional :string, :value, 2 304 | end 305 | 306 | class Address < ::ProtocolBuffers::Message 307 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Address" 308 | 309 | optional :string, :name, 1 310 | optional :string, :addressLine1, 2 311 | optional :string, :addressLine2, 3 312 | optional :string, :city, 4 313 | optional :string, :state, 5 314 | optional :string, :postalCode, 6 315 | optional :string, :postalCountry, 7 316 | optional :string, :dependentLocality, 8 317 | optional :string, :sortingCode, 9 318 | optional :string, :languageCode, 10 319 | optional :string, :phoneNumber, 11 320 | optional :bool, :isReduced, 12 321 | optional :string, :firstName, 13 322 | optional :string, :lastName, 14 323 | optional :string, :email, 15 324 | end 325 | 326 | class BookAuthor < ::ProtocolBuffers::Message 327 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BookAuthor" 328 | 329 | optional :string, :name, 1 330 | optional :string, :deprecatedQuery, 2 331 | optional ::ApkDownloader::ProtocolBuffers::Docid, :docid, 3 332 | end 333 | 334 | class BookDetails < ::ProtocolBuffers::Message 335 | # forward declarations 336 | class Identifier < ::ProtocolBuffers::Message; end 337 | 338 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BookDetails" 339 | 340 | # nested messages 341 | class Identifier < ::ProtocolBuffers::Message 342 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BookDetails.Identifier" 343 | 344 | optional :int32, :type, 19 345 | optional :string, :identifier, 20 346 | end 347 | 348 | repeated ::ApkDownloader::ProtocolBuffers::BookSubject, :subject, 3 349 | optional :string, :publisher, 4 350 | optional :string, :publicationDate, 5 351 | optional :string, :isbn, 6 352 | optional :int32, :numberOfPages, 7 353 | optional :string, :subtitle, 8 354 | repeated ::ApkDownloader::ProtocolBuffers::BookAuthor, :author, 9 355 | optional :string, :readerUrl, 10 356 | optional :string, :downloadEpubUrl, 11 357 | optional :string, :downloadPdfUrl, 12 358 | optional :string, :acsEpubTokenUrl, 13 359 | optional :string, :acsPdfTokenUrl, 14 360 | optional :bool, :epubAvailable, 15 361 | optional :bool, :pdfAvailable, 16 362 | optional :string, :aboutTheAuthor, 17 363 | repeated ::ApkDownloader::ProtocolBuffers::BookDetails::Identifier, :identifier, 18, :group => true 364 | end 365 | 366 | class BookSubject < ::ProtocolBuffers::Message 367 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BookSubject" 368 | 369 | optional :string, :name, 1 370 | optional :string, :query, 2 371 | optional :string, :subjectId, 3 372 | end 373 | 374 | class BrowseLink < ::ProtocolBuffers::Message 375 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BrowseLink" 376 | 377 | optional :string, :name, 1 378 | optional :string, :dataUrl, 3 379 | end 380 | 381 | class BrowseResponse < ::ProtocolBuffers::Message 382 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BrowseResponse" 383 | 384 | optional :string, :contentsUrl, 1 385 | optional :string, :promoUrl, 2 386 | repeated ::ApkDownloader::ProtocolBuffers::BrowseLink, :category, 3 387 | repeated ::ApkDownloader::ProtocolBuffers::BrowseLink, :breadcrumb, 4 388 | end 389 | 390 | class AddressChallenge < ::ProtocolBuffers::Message 391 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AddressChallenge" 392 | 393 | optional :string, :responseAddressParam, 1 394 | optional :string, :responseCheckboxesParam, 2 395 | optional :string, :title, 3 396 | optional :string, :descriptionHtml, 4 397 | repeated ::ApkDownloader::ProtocolBuffers::FormCheckbox, :checkbox, 5 398 | optional ::ApkDownloader::ProtocolBuffers::Address, :address, 6 399 | repeated ::ApkDownloader::ProtocolBuffers::InputValidationError, :errorInputField, 7 400 | optional :string, :errorHtml, 8 401 | repeated :int32, :requiredField, 9 402 | end 403 | 404 | class AuthenticationChallenge < ::ProtocolBuffers::Message 405 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AuthenticationChallenge" 406 | 407 | optional :int32, :authenticationType, 1 408 | optional :string, :responseAuthenticationTypeParam, 2 409 | optional :string, :responseRetryCountParam, 3 410 | optional :string, :pinHeaderText, 4 411 | optional :string, :pinDescriptionTextHtml, 5 412 | optional :string, :gaiaHeaderText, 6 413 | optional :string, :gaiaDescriptionTextHtml, 7 414 | end 415 | 416 | class BuyResponse < ::ProtocolBuffers::Message 417 | # forward declarations 418 | class CheckoutInfo < ::ProtocolBuffers::Message; end 419 | 420 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BuyResponse" 421 | 422 | # nested messages 423 | class CheckoutInfo < ::ProtocolBuffers::Message 424 | # forward declarations 425 | class CheckoutOption < ::ProtocolBuffers::Message; end 426 | 427 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BuyResponse.CheckoutInfo" 428 | 429 | # nested messages 430 | class CheckoutOption < ::ProtocolBuffers::Message 431 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BuyResponse.CheckoutInfo.CheckoutOption" 432 | 433 | optional :string, :formOfPayment, 6 434 | optional :string, :encodedAdjustedCart, 7 435 | optional :string, :instrumentId, 15 436 | repeated ::ApkDownloader::ProtocolBuffers::LineItem, :item, 16 437 | repeated ::ApkDownloader::ProtocolBuffers::LineItem, :subItem, 17 438 | optional ::ApkDownloader::ProtocolBuffers::LineItem, :total, 18 439 | repeated :string, :footerHtml, 19 440 | optional :int32, :instrumentFamily, 29 441 | repeated :int32, :deprecatedInstrumentInapplicableReason, 30 442 | optional :bool, :selectedInstrument, 32 443 | optional ::ApkDownloader::ProtocolBuffers::LineItem, :summary, 33 444 | repeated :string, :footnoteHtml, 35 445 | optional ::ApkDownloader::ProtocolBuffers::Instrument, :instrument, 43 446 | optional :string, :purchaseCookie, 45 447 | repeated :string, :disabledReason, 48 448 | end 449 | 450 | optional ::ApkDownloader::ProtocolBuffers::LineItem, :item, 3 451 | repeated ::ApkDownloader::ProtocolBuffers::LineItem, :subItem, 4 452 | repeated ::ApkDownloader::ProtocolBuffers::BuyResponse::CheckoutInfo::CheckoutOption, :checkoutoption, 5, :group => true 453 | optional :string, :deprecatedCheckoutUrl, 10 454 | optional :string, :addInstrumentUrl, 11 455 | repeated :string, :footerHtml, 20 456 | repeated :int32, :eligibleInstrumentFamily, 31 457 | repeated :string, :footnoteHtml, 36 458 | repeated ::ApkDownloader::ProtocolBuffers::Instrument, :eligibleInstrument, 44 459 | end 460 | 461 | optional ::ApkDownloader::ProtocolBuffers::PurchaseNotificationResponse, :purchaseResponse, 1 462 | optional ::ApkDownloader::ProtocolBuffers::BuyResponse::CheckoutInfo, :checkoutinfo, 2, :group => true 463 | optional :string, :continueViaUrl, 8 464 | optional :string, :purchaseStatusUrl, 9 465 | optional :string, :checkoutServiceId, 12 466 | optional :bool, :checkoutTokenRequired, 13 467 | optional :string, :baseCheckoutUrl, 14 468 | repeated :string, :tosCheckboxHtml, 37 469 | optional :int32, :iabPermissionError, 38 470 | optional ::ApkDownloader::ProtocolBuffers::PurchaseStatusResponse, :purchaseStatusResponse, 39 471 | optional :string, :purchaseCookie, 46 472 | optional ::ApkDownloader::ProtocolBuffers::Challenge, :challenge, 49 473 | end 474 | 475 | class Challenge < ::ProtocolBuffers::Message 476 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Challenge" 477 | 478 | optional ::ApkDownloader::ProtocolBuffers::AddressChallenge, :addressChallenge, 1 479 | optional ::ApkDownloader::ProtocolBuffers::AuthenticationChallenge, :authenticationChallenge, 2 480 | end 481 | 482 | class FormCheckbox < ::ProtocolBuffers::Message 483 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.FormCheckbox" 484 | 485 | optional :string, :description, 1 486 | optional :bool, :checked, 2 487 | optional :bool, :required, 3 488 | end 489 | 490 | class LineItem < ::ProtocolBuffers::Message 491 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LineItem" 492 | 493 | optional :string, :name, 1 494 | optional :string, :description, 2 495 | optional ::ApkDownloader::ProtocolBuffers::Offer, :offer, 3 496 | optional ::ApkDownloader::ProtocolBuffers::Money, :amount, 4 497 | end 498 | 499 | class Money < ::ProtocolBuffers::Message 500 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Money" 501 | 502 | optional :int64, :micros, 1 503 | optional :string, :currencyCode, 2 504 | optional :string, :formattedAmount, 3 505 | end 506 | 507 | class PurchaseNotificationResponse < ::ProtocolBuffers::Message 508 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseNotificationResponse" 509 | 510 | optional :int32, :status, 1 511 | optional ::ApkDownloader::ProtocolBuffers::DebugInfo, :debugInfo, 2 512 | optional :string, :localizedErrorMessage, 3 513 | optional :string, :purchaseId, 4 514 | end 515 | 516 | class PurchaseStatusResponse < ::ProtocolBuffers::Message 517 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseStatusResponse" 518 | 519 | optional :int32, :status, 1 520 | optional :string, :statusMsg, 2 521 | optional :string, :statusTitle, 3 522 | optional :string, :briefMessage, 4 523 | optional :string, :infoUrl, 5 524 | optional ::ApkDownloader::ProtocolBuffers::LibraryUpdate, :libraryUpdate, 6 525 | optional ::ApkDownloader::ProtocolBuffers::Instrument, :rejectedInstrument, 7 526 | optional ::ApkDownloader::ProtocolBuffers::AndroidAppDeliveryData, :appDeliveryData, 8 527 | end 528 | 529 | class CheckInstrumentResponse < ::ProtocolBuffers::Message 530 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CheckInstrumentResponse" 531 | 532 | optional :bool, :userHasValidInstrument, 1 533 | optional :bool, :checkoutTokenRequired, 2 534 | repeated ::ApkDownloader::ProtocolBuffers::Instrument, :instrument, 4 535 | repeated ::ApkDownloader::ProtocolBuffers::Instrument, :eligibleInstrument, 5 536 | end 537 | 538 | class UpdateInstrumentRequest < ::ProtocolBuffers::Message 539 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.UpdateInstrumentRequest" 540 | 541 | optional ::ApkDownloader::ProtocolBuffers::Instrument, :instrument, 1 542 | optional :string, :checkoutToken, 2 543 | end 544 | 545 | class UpdateInstrumentResponse < ::ProtocolBuffers::Message 546 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.UpdateInstrumentResponse" 547 | 548 | optional :int32, :result, 1 549 | optional :string, :instrumentId, 2 550 | optional :string, :userMessageHtml, 3 551 | repeated ::ApkDownloader::ProtocolBuffers::InputValidationError, :errorInputField, 4 552 | optional :bool, :checkoutTokenRequired, 5 553 | optional ::ApkDownloader::ProtocolBuffers::RedeemedPromoOffer, :redeemedOffer, 6 554 | end 555 | 556 | class InitiateAssociationResponse < ::ProtocolBuffers::Message 557 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.InitiateAssociationResponse" 558 | 559 | optional :string, :userToken, 1 560 | end 561 | 562 | class VerifyAssociationResponse < ::ProtocolBuffers::Message 563 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.VerifyAssociationResponse" 564 | 565 | optional :int32, :status, 1 566 | optional ::ApkDownloader::ProtocolBuffers::Address, :billingAddress, 2 567 | optional ::ApkDownloader::ProtocolBuffers::CarrierTos, :carrierTos, 3 568 | end 569 | 570 | class AddCreditCardPromoOffer < ::ProtocolBuffers::Message 571 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AddCreditCardPromoOffer" 572 | 573 | optional :string, :headerText, 1 574 | optional :string, :descriptionHtml, 2 575 | optional ::ApkDownloader::ProtocolBuffers::Image, :image, 3 576 | optional :string, :introductoryTextHtml, 4 577 | optional :string, :offerTitle, 5 578 | optional :string, :noActionDescription, 6 579 | optional :string, :termsAndConditionsHtml, 7 580 | end 581 | 582 | class AvailablePromoOffer < ::ProtocolBuffers::Message 583 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AvailablePromoOffer" 584 | 585 | optional ::ApkDownloader::ProtocolBuffers::AddCreditCardPromoOffer, :addCreditCardOffer, 1 586 | end 587 | 588 | class CheckPromoOfferResponse < ::ProtocolBuffers::Message 589 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CheckPromoOfferResponse" 590 | 591 | repeated ::ApkDownloader::ProtocolBuffers::AvailablePromoOffer, :availableOffer, 1 592 | optional ::ApkDownloader::ProtocolBuffers::RedeemedPromoOffer, :redeemedOffer, 2 593 | optional :bool, :checkoutTokenRequired, 3 594 | end 595 | 596 | class RedeemedPromoOffer < ::ProtocolBuffers::Message 597 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RedeemedPromoOffer" 598 | 599 | optional :string, :headerText, 1 600 | optional :string, :descriptionHtml, 2 601 | optional ::ApkDownloader::ProtocolBuffers::Image, :image, 3 602 | end 603 | 604 | class Docid < ::ProtocolBuffers::Message 605 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Docid" 606 | 607 | optional :string, :backendDocid, 1 608 | optional :int32, :type, 2 609 | optional :int32, :backend, 3 610 | end 611 | 612 | class Install < ::ProtocolBuffers::Message 613 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Install" 614 | 615 | optional :fixed64, :androidId, 1 616 | optional :int32, :version, 2 617 | optional :bool, :bundled, 3 618 | end 619 | 620 | class Offer < ::ProtocolBuffers::Message 621 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Offer" 622 | 623 | optional :int64, :micros, 1 624 | optional :string, :currencyCode, 2 625 | optional :string, :formattedAmount, 3 626 | repeated ::ApkDownloader::ProtocolBuffers::Offer, :convertedPrice, 4 627 | optional :bool, :checkoutFlowRequired, 5 628 | optional :int64, :fullPriceMicros, 6 629 | optional :string, :formattedFullAmount, 7 630 | optional :int32, :offerType, 8 631 | optional ::ApkDownloader::ProtocolBuffers::RentalTerms, :rentalTerms, 9 632 | optional :int64, :onSaleDate, 10 633 | repeated :string, :promotionLabel, 11 634 | optional ::ApkDownloader::ProtocolBuffers::SubscriptionTerms, :subscriptionTerms, 12 635 | optional :string, :formattedName, 13 636 | optional :string, :formattedDescription, 14 637 | end 638 | 639 | class OwnershipInfo < ::ProtocolBuffers::Message 640 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.OwnershipInfo" 641 | 642 | optional :int64, :initiationTimestampMsec, 1 643 | optional :int64, :validUntilTimestampMsec, 2 644 | optional :bool, :autoRenewing, 3 645 | optional :int64, :refundTimeoutTimestampMsec, 4 646 | optional :int64, :postDeliveryRefundWindowMsec, 5 647 | end 648 | 649 | class RentalTerms < ::ProtocolBuffers::Message 650 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RentalTerms" 651 | 652 | optional :int32, :grantPeriodSeconds, 1 653 | optional :int32, :activatePeriodSeconds, 2 654 | end 655 | 656 | class SubscriptionTerms < ::ProtocolBuffers::Message 657 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SubscriptionTerms" 658 | 659 | optional ::ApkDownloader::ProtocolBuffers::TimePeriod, :recurringPeriod, 1 660 | optional ::ApkDownloader::ProtocolBuffers::TimePeriod, :trialPeriod, 2 661 | end 662 | 663 | class TimePeriod < ::ProtocolBuffers::Message 664 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.TimePeriod" 665 | 666 | optional :int32, :unit, 1 667 | optional :int32, :count, 2 668 | end 669 | 670 | class BillingAddressSpec < ::ProtocolBuffers::Message 671 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BillingAddressSpec" 672 | 673 | optional :int32, :billingAddressType, 1 674 | repeated :int32, :requiredField, 2 675 | end 676 | 677 | class CarrierBillingCredentials < ::ProtocolBuffers::Message 678 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CarrierBillingCredentials" 679 | 680 | optional :string, :value, 1 681 | optional :int64, :expiration, 2 682 | end 683 | 684 | class CarrierBillingInstrument < ::ProtocolBuffers::Message 685 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CarrierBillingInstrument" 686 | 687 | optional :string, :instrumentKey, 1 688 | optional :string, :accountType, 2 689 | optional :string, :currencyCode, 3 690 | optional :int64, :transactionLimit, 4 691 | optional :string, :subscriberIdentifier, 5 692 | optional ::ApkDownloader::ProtocolBuffers::EncryptedSubscriberInfo, :encryptedSubscriberInfo, 6 693 | optional ::ApkDownloader::ProtocolBuffers::CarrierBillingCredentials, :credentials, 7 694 | optional ::ApkDownloader::ProtocolBuffers::CarrierTos, :acceptedCarrierTos, 8 695 | end 696 | 697 | class CarrierBillingInstrumentStatus < ::ProtocolBuffers::Message 698 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CarrierBillingInstrumentStatus" 699 | 700 | optional ::ApkDownloader::ProtocolBuffers::CarrierTos, :carrierTos, 1 701 | optional :bool, :associationRequired, 2 702 | optional :bool, :passwordRequired, 3 703 | optional ::ApkDownloader::ProtocolBuffers::PasswordPrompt, :carrierPasswordPrompt, 4 704 | optional :int32, :apiVersion, 5 705 | optional :string, :name, 6 706 | end 707 | 708 | class CarrierTos < ::ProtocolBuffers::Message 709 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CarrierTos" 710 | 711 | optional ::ApkDownloader::ProtocolBuffers::CarrierTosEntry, :dcbTos, 1 712 | optional ::ApkDownloader::ProtocolBuffers::CarrierTosEntry, :piiTos, 2 713 | optional :bool, :needsDcbTosAcceptance, 3 714 | optional :bool, :needsPiiTosAcceptance, 4 715 | end 716 | 717 | class CarrierTosEntry < ::ProtocolBuffers::Message 718 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CarrierTosEntry" 719 | 720 | optional :string, :url, 1 721 | optional :string, :version, 2 722 | end 723 | 724 | class CreditCardInstrument < ::ProtocolBuffers::Message 725 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CreditCardInstrument" 726 | 727 | optional :int32, :type, 1 728 | optional :string, :escrowHandle, 2 729 | optional :string, :lastDigits, 3 730 | optional :int32, :expirationMonth, 4 731 | optional :int32, :expirationYear, 5 732 | repeated ::ApkDownloader::ProtocolBuffers::EfeParam, :escrowEfeParam, 6 733 | end 734 | 735 | class EfeParam < ::ProtocolBuffers::Message 736 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.EfeParam" 737 | 738 | optional :int32, :key, 1 739 | optional :string, :value, 2 740 | end 741 | 742 | class InputValidationError < ::ProtocolBuffers::Message 743 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.InputValidationError" 744 | 745 | optional :int32, :inputField, 1 746 | optional :string, :errorMessage, 2 747 | end 748 | 749 | class Instrument < ::ProtocolBuffers::Message 750 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Instrument" 751 | 752 | optional :string, :instrumentId, 1 753 | optional ::ApkDownloader::ProtocolBuffers::Address, :billingAddress, 2 754 | optional ::ApkDownloader::ProtocolBuffers::CreditCardInstrument, :creditCard, 3 755 | optional ::ApkDownloader::ProtocolBuffers::CarrierBillingInstrument, :carrierBilling, 4 756 | optional ::ApkDownloader::ProtocolBuffers::BillingAddressSpec, :billingAddressSpec, 5 757 | optional :int32, :instrumentFamily, 6 758 | optional ::ApkDownloader::ProtocolBuffers::CarrierBillingInstrumentStatus, :carrierBillingStatus, 7 759 | optional :string, :displayTitle, 8 760 | end 761 | 762 | class PasswordPrompt < ::ProtocolBuffers::Message 763 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PasswordPrompt" 764 | 765 | optional :string, :prompt, 1 766 | optional :string, :forgotPasswordUrl, 2 767 | end 768 | 769 | class ContainerMetadata < ::ProtocolBuffers::Message 770 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ContainerMetadata" 771 | 772 | optional :string, :browseUrl, 1 773 | optional :string, :nextPageUrl, 2 774 | optional :double, :relevance, 3 775 | optional :int64, :estimatedResults, 4 776 | optional :string, :analyticsCookie, 5 777 | optional :bool, :ordered, 6 778 | end 779 | 780 | class FlagContentResponse < ::ProtocolBuffers::Message 781 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.FlagContentResponse" 782 | 783 | end 784 | 785 | class DebugInfo < ::ProtocolBuffers::Message 786 | # forward declarations 787 | class Timing < ::ProtocolBuffers::Message; end 788 | 789 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DebugInfo" 790 | 791 | # nested messages 792 | class Timing < ::ProtocolBuffers::Message 793 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DebugInfo.Timing" 794 | 795 | optional :string, :name, 3 796 | optional :double, :timeInMs, 4 797 | end 798 | 799 | repeated :string, :message, 1 800 | repeated ::ApkDownloader::ProtocolBuffers::DebugInfo::Timing, :timing, 2, :group => true 801 | end 802 | 803 | class DeliveryResponse < ::ProtocolBuffers::Message 804 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DeliveryResponse" 805 | 806 | optional :int32, :status, 1 807 | optional ::ApkDownloader::ProtocolBuffers::AndroidAppDeliveryData, :appDeliveryData, 2 808 | end 809 | 810 | class BulkDetailsEntry < ::ProtocolBuffers::Message 811 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BulkDetailsEntry" 812 | 813 | optional ::ApkDownloader::ProtocolBuffers::DocV2, :doc, 1 814 | end 815 | 816 | class BulkDetailsRequest < ::ProtocolBuffers::Message 817 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BulkDetailsRequest" 818 | 819 | repeated :string, :docid, 1 820 | optional :bool, :includeChildDocs, 2 821 | end 822 | 823 | class BulkDetailsResponse < ::ProtocolBuffers::Message 824 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BulkDetailsResponse" 825 | 826 | repeated ::ApkDownloader::ProtocolBuffers::BulkDetailsEntry, :entry, 1 827 | end 828 | 829 | class DetailsResponse < ::ProtocolBuffers::Message 830 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DetailsResponse" 831 | 832 | optional ::ApkDownloader::ProtocolBuffers::DocV1, :docV1, 1 833 | optional :string, :analyticsCookie, 2 834 | optional ::ApkDownloader::ProtocolBuffers::Review, :userReview, 3 835 | optional ::ApkDownloader::ProtocolBuffers::DocV2, :docV2, 4 836 | optional :string, :footerHtml, 5 837 | end 838 | 839 | class DeviceConfigurationProto < ::ProtocolBuffers::Message 840 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DeviceConfigurationProto" 841 | 842 | optional :int32, :touchScreen, 1 843 | optional :int32, :keyboard, 2 844 | optional :int32, :navigation, 3 845 | optional :int32, :screenLayout, 4 846 | optional :bool, :hasHardKeyboard, 5 847 | optional :bool, :hasFiveWayNavigation, 6 848 | optional :int32, :screenDensity, 7 849 | optional :int32, :glEsVersion, 8 850 | repeated :string, :systemSharedLibrary, 9 851 | repeated :string, :systemAvailableFeature, 10 852 | repeated :string, :nativePlatform, 11 853 | optional :int32, :screenWidth, 12 854 | optional :int32, :screenHeight, 13 855 | repeated :string, :systemSupportedLocale, 14 856 | repeated :string, :glExtension, 15 857 | optional :int32, :deviceClass, 16 858 | optional :int32, :maxApkDownloadSizeMb, 17 859 | end 860 | 861 | class Document < ::ProtocolBuffers::Message 862 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Document" 863 | 864 | optional ::ApkDownloader::ProtocolBuffers::Docid, :docid, 1 865 | optional ::ApkDownloader::ProtocolBuffers::Docid, :fetchDocid, 2 866 | optional ::ApkDownloader::ProtocolBuffers::Docid, :sampleDocid, 3 867 | optional :string, :title, 4 868 | optional :string, :url, 5 869 | repeated :string, :snippet, 6 870 | optional ::ApkDownloader::ProtocolBuffers::Offer, :priceDeprecated, 7 871 | optional ::ApkDownloader::ProtocolBuffers::Availability, :availability, 9 872 | repeated ::ApkDownloader::ProtocolBuffers::Image, :image, 10 873 | repeated ::ApkDownloader::ProtocolBuffers::Document, :child, 11 874 | optional ::ApkDownloader::ProtocolBuffers::AggregateRating, :aggregateRating, 13 875 | repeated ::ApkDownloader::ProtocolBuffers::Offer, :offer, 14 876 | repeated ::ApkDownloader::ProtocolBuffers::TranslatedText, :translatedSnippet, 15 877 | repeated ::ApkDownloader::ProtocolBuffers::DocumentVariant, :documentVariant, 16 878 | repeated :string, :categoryId, 17 879 | repeated ::ApkDownloader::ProtocolBuffers::Document, :decoration, 18 880 | repeated ::ApkDownloader::ProtocolBuffers::Document, :parent, 19 881 | optional :string, :privacyPolicyUrl, 20 882 | end 883 | 884 | class DocumentVariant < ::ProtocolBuffers::Message 885 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DocumentVariant" 886 | 887 | optional :int32, :variationType, 1 888 | optional ::ApkDownloader::ProtocolBuffers::Rule, :rule, 2 889 | optional :string, :title, 3 890 | repeated :string, :snippet, 4 891 | optional :string, :recentChanges, 5 892 | repeated ::ApkDownloader::ProtocolBuffers::TranslatedText, :autoTranslation, 6 893 | repeated ::ApkDownloader::ProtocolBuffers::Offer, :offer, 7 894 | optional :int64, :channelId, 9 895 | repeated ::ApkDownloader::ProtocolBuffers::Document, :child, 10 896 | repeated ::ApkDownloader::ProtocolBuffers::Document, :decoration, 11 897 | end 898 | 899 | class Image < ::ProtocolBuffers::Message 900 | # forward declarations 901 | class Dimension < ::ProtocolBuffers::Message; end 902 | class Citation < ::ProtocolBuffers::Message; end 903 | 904 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Image" 905 | 906 | # nested messages 907 | class Dimension < ::ProtocolBuffers::Message 908 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Image.Dimension" 909 | 910 | optional :int32, :width, 3 911 | optional :int32, :height, 4 912 | end 913 | 914 | class Citation < ::ProtocolBuffers::Message 915 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Image.Citation" 916 | 917 | optional :string, :titleLocalized, 11 918 | optional :string, :url, 12 919 | end 920 | 921 | optional :int32, :imageType, 1 922 | optional ::ApkDownloader::ProtocolBuffers::Image::Dimension, :dimension, 2, :group => true 923 | optional :string, :imageUrl, 5 924 | optional :string, :altTextLocalized, 6 925 | optional :string, :secureUrl, 7 926 | optional :int32, :positionInSequence, 8 927 | optional :bool, :supportsFifeUrlOptions, 9 928 | optional ::ApkDownloader::ProtocolBuffers::Image::Citation, :citation, 10, :group => true 929 | end 930 | 931 | class TranslatedText < ::ProtocolBuffers::Message 932 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.TranslatedText" 933 | 934 | optional :string, :text, 1 935 | optional :string, :sourceLocale, 2 936 | optional :string, :targetLocale, 3 937 | end 938 | 939 | class Badge < ::ProtocolBuffers::Message 940 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Badge" 941 | 942 | optional :string, :title, 1 943 | repeated ::ApkDownloader::ProtocolBuffers::Image, :image, 2 944 | optional :string, :browseUrl, 3 945 | end 946 | 947 | class ContainerWithBanner < ::ProtocolBuffers::Message 948 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ContainerWithBanner" 949 | 950 | optional :string, :colorThemeArgb, 1 951 | end 952 | 953 | class DealOfTheDay < ::ProtocolBuffers::Message 954 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DealOfTheDay" 955 | 956 | optional :string, :featuredHeader, 1 957 | optional :string, :colorThemeArgb, 2 958 | end 959 | 960 | class EditorialSeriesContainer < ::ProtocolBuffers::Message 961 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.EditorialSeriesContainer" 962 | 963 | optional :string, :seriesTitle, 1 964 | optional :string, :seriesSubtitle, 2 965 | optional :string, :episodeTitle, 3 966 | optional :string, :episodeSubtitle, 4 967 | optional :string, :colorThemeArgb, 5 968 | end 969 | 970 | class Link < ::ProtocolBuffers::Message 971 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Link" 972 | 973 | optional :string, :uri, 1 974 | end 975 | 976 | class PlusOneData < ::ProtocolBuffers::Message 977 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PlusOneData" 978 | 979 | optional :bool, :setByUser, 1 980 | optional :int64, :total, 2 981 | optional :int64, :circlesTotal, 3 982 | repeated ::ApkDownloader::ProtocolBuffers::PlusPerson, :circlesPeople, 4 983 | end 984 | 985 | class PlusPerson < ::ProtocolBuffers::Message 986 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PlusPerson" 987 | 988 | optional :string, :displayName, 2 989 | optional :string, :profileImageUrl, 4 990 | end 991 | 992 | class PromotedDoc < ::ProtocolBuffers::Message 993 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PromotedDoc" 994 | 995 | optional :string, :title, 1 996 | optional :string, :subtitle, 2 997 | repeated ::ApkDownloader::ProtocolBuffers::Image, :image, 3 998 | optional :string, :descriptionHtml, 4 999 | optional :string, :detailsUrl, 5 1000 | end 1001 | 1002 | class Reason < ::ProtocolBuffers::Message 1003 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Reason" 1004 | 1005 | optional :string, :briefReason, 1 1006 | optional :string, :detailedReason, 2 1007 | optional :string, :uniqueId, 3 1008 | end 1009 | 1010 | class SectionMetadata < ::ProtocolBuffers::Message 1011 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SectionMetadata" 1012 | 1013 | optional :string, :header, 1 1014 | optional :string, :listUrl, 2 1015 | optional :string, :browseUrl, 3 1016 | optional :string, :descriptionHtml, 4 1017 | end 1018 | 1019 | class SeriesAntenna < ::ProtocolBuffers::Message 1020 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SeriesAntenna" 1021 | 1022 | optional :string, :seriesTitle, 1 1023 | optional :string, :seriesSubtitle, 2 1024 | optional :string, :episodeTitle, 3 1025 | optional :string, :episodeSubtitle, 4 1026 | optional :string, :colorThemeArgb, 5 1027 | optional ::ApkDownloader::ProtocolBuffers::SectionMetadata, :sectionTracks, 6 1028 | optional ::ApkDownloader::ProtocolBuffers::SectionMetadata, :sectionAlbums, 7 1029 | end 1030 | 1031 | class Template < ::ProtocolBuffers::Message 1032 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Template" 1033 | 1034 | optional ::ApkDownloader::ProtocolBuffers::SeriesAntenna, :seriesAntenna, 1 1035 | optional ::ApkDownloader::ProtocolBuffers::TileTemplate, :tileGraphic2X1, 2 1036 | optional ::ApkDownloader::ProtocolBuffers::TileTemplate, :tileGraphic4X2, 3 1037 | optional ::ApkDownloader::ProtocolBuffers::TileTemplate, :tileGraphicColoredTitle2X1, 4 1038 | optional ::ApkDownloader::ProtocolBuffers::TileTemplate, :tileGraphicUpperLeftTitle2X1, 5 1039 | optional ::ApkDownloader::ProtocolBuffers::TileTemplate, :tileDetailsReflectedGraphic2X2, 6 1040 | optional ::ApkDownloader::ProtocolBuffers::TileTemplate, :tileFourBlock4X2, 7 1041 | optional ::ApkDownloader::ProtocolBuffers::ContainerWithBanner, :containerWithBanner, 8 1042 | optional ::ApkDownloader::ProtocolBuffers::DealOfTheDay, :dealOfTheDay, 9 1043 | optional ::ApkDownloader::ProtocolBuffers::TileTemplate, :tileGraphicColoredTitle4X2, 10 1044 | optional ::ApkDownloader::ProtocolBuffers::EditorialSeriesContainer, :editorialSeriesContainer, 11 1045 | end 1046 | 1047 | class TileTemplate < ::ProtocolBuffers::Message 1048 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.TileTemplate" 1049 | 1050 | optional :string, :colorThemeArgb, 1 1051 | optional :string, :colorTextArgb, 2 1052 | end 1053 | 1054 | class Warning < ::ProtocolBuffers::Message 1055 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Warning" 1056 | 1057 | optional :string, :localizedMessage, 1 1058 | end 1059 | 1060 | class AlbumDetails < ::ProtocolBuffers::Message 1061 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AlbumDetails" 1062 | 1063 | optional :string, :name, 1 1064 | optional ::ApkDownloader::ProtocolBuffers::MusicDetails, :details, 2 1065 | optional ::ApkDownloader::ProtocolBuffers::ArtistDetails, :displayArtist, 3 1066 | end 1067 | 1068 | class AppDetails < ::ProtocolBuffers::Message 1069 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AppDetails" 1070 | 1071 | optional :string, :developerName, 1 1072 | optional :int32, :majorVersionNumber, 2 1073 | optional :int32, :versionCode, 3 1074 | optional :string, :versionString, 4 1075 | optional :string, :title, 5 1076 | repeated :string, :appCategory, 7 1077 | optional :int32, :contentRating, 8 1078 | optional :int64, :installationSize, 9 1079 | repeated :string, :permission, 10 1080 | optional :string, :developerEmail, 11 1081 | optional :string, :developerWebsite, 12 1082 | optional :string, :numDownloads, 13 1083 | optional :string, :packageName, 14 1084 | optional :string, :recentChangesHtml, 15 1085 | optional :string, :uploadDate, 16 1086 | repeated ::ApkDownloader::ProtocolBuffers::FileMetadata, :file, 17 1087 | optional :string, :appType, 18 1088 | end 1089 | 1090 | class ArtistDetails < ::ProtocolBuffers::Message 1091 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ArtistDetails" 1092 | 1093 | optional :string, :detailsUrl, 1 1094 | optional :string, :name, 2 1095 | optional ::ApkDownloader::ProtocolBuffers::ArtistExternalLinks, :externalLinks, 3 1096 | end 1097 | 1098 | class ArtistExternalLinks < ::ProtocolBuffers::Message 1099 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ArtistExternalLinks" 1100 | 1101 | repeated :string, :websiteUrl, 1 1102 | optional :string, :googlePlusProfileUrl, 2 1103 | optional :string, :youtubeChannelUrl, 3 1104 | end 1105 | 1106 | class DocumentDetails < ::ProtocolBuffers::Message 1107 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DocumentDetails" 1108 | 1109 | optional ::ApkDownloader::ProtocolBuffers::AppDetails, :appDetails, 1 1110 | optional ::ApkDownloader::ProtocolBuffers::AlbumDetails, :albumDetails, 2 1111 | optional ::ApkDownloader::ProtocolBuffers::ArtistDetails, :artistDetails, 3 1112 | optional ::ApkDownloader::ProtocolBuffers::SongDetails, :songDetails, 4 1113 | optional ::ApkDownloader::ProtocolBuffers::BookDetails, :bookDetails, 5 1114 | optional ::ApkDownloader::ProtocolBuffers::VideoDetails, :videoDetails, 6 1115 | optional ::ApkDownloader::ProtocolBuffers::SubscriptionDetails, :subscriptionDetails, 7 1116 | optional ::ApkDownloader::ProtocolBuffers::MagazineDetails, :magazineDetails, 8 1117 | optional ::ApkDownloader::ProtocolBuffers::TvShowDetails, :tvShowDetails, 9 1118 | optional ::ApkDownloader::ProtocolBuffers::TvSeasonDetails, :tvSeasonDetails, 10 1119 | optional ::ApkDownloader::ProtocolBuffers::TvEpisodeDetails, :tvEpisodeDetails, 11 1120 | end 1121 | 1122 | class FileMetadata < ::ProtocolBuffers::Message 1123 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.FileMetadata" 1124 | 1125 | optional :int32, :fileType, 1 1126 | optional :int32, :versionCode, 2 1127 | optional :int64, :size, 3 1128 | end 1129 | 1130 | class MagazineDetails < ::ProtocolBuffers::Message 1131 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.MagazineDetails" 1132 | 1133 | optional :string, :parentDetailsUrl, 1 1134 | optional :string, :deviceAvailabilityDescriptionHtml, 2 1135 | optional :string, :psvDescription, 3 1136 | optional :string, :deliveryFrequencyDescription, 4 1137 | end 1138 | 1139 | class MusicDetails < ::ProtocolBuffers::Message 1140 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.MusicDetails" 1141 | 1142 | optional :int32, :censoring, 1 1143 | optional :int32, :durationSec, 2 1144 | optional :string, :originalReleaseDate, 3 1145 | optional :string, :label, 4 1146 | repeated ::ApkDownloader::ProtocolBuffers::ArtistDetails, :artist, 5 1147 | repeated :string, :genre, 6 1148 | optional :string, :releaseDate, 7 1149 | repeated :int32, :releaseType, 8 1150 | end 1151 | 1152 | class SongDetails < ::ProtocolBuffers::Message 1153 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SongDetails" 1154 | 1155 | optional :string, :name, 1 1156 | optional ::ApkDownloader::ProtocolBuffers::MusicDetails, :details, 2 1157 | optional :string, :albumName, 3 1158 | optional :int32, :trackNumber, 4 1159 | optional :string, :previewUrl, 5 1160 | optional ::ApkDownloader::ProtocolBuffers::ArtistDetails, :displayArtist, 6 1161 | end 1162 | 1163 | class SubscriptionDetails < ::ProtocolBuffers::Message 1164 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SubscriptionDetails" 1165 | 1166 | optional :int32, :subscriptionPeriod, 1 1167 | end 1168 | 1169 | class Trailer < ::ProtocolBuffers::Message 1170 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Trailer" 1171 | 1172 | optional :string, :trailerId, 1 1173 | optional :string, :title, 2 1174 | optional :string, :thumbnailUrl, 3 1175 | optional :string, :watchUrl, 4 1176 | optional :string, :duration, 5 1177 | end 1178 | 1179 | class TvEpisodeDetails < ::ProtocolBuffers::Message 1180 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.TvEpisodeDetails" 1181 | 1182 | optional :string, :parentDetailsUrl, 1 1183 | optional :int32, :episodeIndex, 2 1184 | optional :string, :releaseDate, 3 1185 | end 1186 | 1187 | class TvSeasonDetails < ::ProtocolBuffers::Message 1188 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.TvSeasonDetails" 1189 | 1190 | optional :string, :parentDetailsUrl, 1 1191 | optional :int32, :seasonIndex, 2 1192 | optional :string, :releaseDate, 3 1193 | optional :string, :broadcaster, 4 1194 | end 1195 | 1196 | class TvShowDetails < ::ProtocolBuffers::Message 1197 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.TvShowDetails" 1198 | 1199 | optional :int32, :seasonCount, 1 1200 | optional :int32, :startYear, 2 1201 | optional :int32, :endYear, 3 1202 | optional :string, :broadcaster, 4 1203 | end 1204 | 1205 | class VideoCredit < ::ProtocolBuffers::Message 1206 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.VideoCredit" 1207 | 1208 | optional :int32, :creditType, 1 1209 | optional :string, :credit, 2 1210 | repeated :string, :name, 3 1211 | end 1212 | 1213 | class VideoDetails < ::ProtocolBuffers::Message 1214 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.VideoDetails" 1215 | 1216 | repeated ::ApkDownloader::ProtocolBuffers::VideoCredit, :credit, 1 1217 | optional :string, :duration, 2 1218 | optional :string, :releaseDate, 3 1219 | optional :string, :contentRating, 4 1220 | optional :int64, :likes, 5 1221 | optional :int64, :dislikes, 6 1222 | repeated :string, :genre, 7 1223 | repeated ::ApkDownloader::ProtocolBuffers::Trailer, :trailer, 8 1224 | repeated ::ApkDownloader::ProtocolBuffers::VideoRentalTerm, :rentalTerm, 9 1225 | end 1226 | 1227 | class VideoRentalTerm < ::ProtocolBuffers::Message 1228 | # forward declarations 1229 | class Term < ::ProtocolBuffers::Message; end 1230 | 1231 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.VideoRentalTerm" 1232 | 1233 | # nested messages 1234 | class Term < ::ProtocolBuffers::Message 1235 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.VideoRentalTerm.Term" 1236 | 1237 | optional :string, :header, 5 1238 | optional :string, :body, 6 1239 | end 1240 | 1241 | optional :int32, :offerType, 1 1242 | optional :string, :offerAbbreviation, 2 1243 | optional :string, :rentalHeader, 3 1244 | repeated ::ApkDownloader::ProtocolBuffers::VideoRentalTerm::Term, :term, 4, :group => true 1245 | end 1246 | 1247 | class Bucket < ::ProtocolBuffers::Message 1248 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Bucket" 1249 | 1250 | repeated ::ApkDownloader::ProtocolBuffers::DocV1, :document, 1 1251 | optional :bool, :multiCorpus, 2 1252 | optional :string, :title, 3 1253 | optional :string, :iconUrl, 4 1254 | optional :string, :fullContentsUrl, 5 1255 | optional :double, :relevance, 6 1256 | optional :int64, :estimatedResults, 7 1257 | optional :string, :analyticsCookie, 8 1258 | optional :string, :fullContentsListUrl, 9 1259 | optional :string, :nextPageUrl, 10 1260 | optional :bool, :ordered, 11 1261 | end 1262 | 1263 | class ListResponse < ::ProtocolBuffers::Message 1264 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ListResponse" 1265 | 1266 | repeated ::ApkDownloader::ProtocolBuffers::Bucket, :bucket, 1 1267 | repeated ::ApkDownloader::ProtocolBuffers::DocV2, :doc, 2 1268 | end 1269 | 1270 | class DocV1 < ::ProtocolBuffers::Message 1271 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DocV1" 1272 | 1273 | optional ::ApkDownloader::ProtocolBuffers::Document, :finskyDoc, 1 1274 | optional :string, :docid, 2 1275 | optional :string, :detailsUrl, 3 1276 | optional :string, :reviewsUrl, 4 1277 | optional :string, :relatedListUrl, 5 1278 | optional :string, :moreByListUrl, 6 1279 | optional :string, :shareUrl, 7 1280 | optional :string, :creator, 8 1281 | optional ::ApkDownloader::ProtocolBuffers::DocumentDetails, :details, 9 1282 | optional :string, :descriptionHtml, 10 1283 | optional :string, :relatedBrowseUrl, 11 1284 | optional :string, :moreByBrowseUrl, 12 1285 | optional :string, :relatedHeader, 13 1286 | optional :string, :moreByHeader, 14 1287 | optional :string, :title, 15 1288 | optional ::ApkDownloader::ProtocolBuffers::PlusOneData, :plusOneData, 16 1289 | optional :string, :warningMessage, 17 1290 | end 1291 | 1292 | class Annotations < ::ProtocolBuffers::Message 1293 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Annotations" 1294 | 1295 | optional ::ApkDownloader::ProtocolBuffers::SectionMetadata, :sectionRelated, 1 1296 | optional ::ApkDownloader::ProtocolBuffers::SectionMetadata, :sectionMoreBy, 2 1297 | optional ::ApkDownloader::ProtocolBuffers::PlusOneData, :plusOneData, 3 1298 | repeated ::ApkDownloader::ProtocolBuffers::Warning, :warning, 4 1299 | optional ::ApkDownloader::ProtocolBuffers::SectionMetadata, :sectionBodyOfWork, 5 1300 | optional ::ApkDownloader::ProtocolBuffers::SectionMetadata, :sectionCoreContent, 6 1301 | optional ::ApkDownloader::ProtocolBuffers::Template, :template, 7 1302 | repeated ::ApkDownloader::ProtocolBuffers::Badge, :badgeForCreator, 8 1303 | repeated ::ApkDownloader::ProtocolBuffers::Badge, :badgeForDoc, 9 1304 | optional ::ApkDownloader::ProtocolBuffers::Link, :link, 10 1305 | optional ::ApkDownloader::ProtocolBuffers::SectionMetadata, :sectionCrossSell, 11 1306 | optional ::ApkDownloader::ProtocolBuffers::SectionMetadata, :sectionRelatedDocType, 12 1307 | repeated ::ApkDownloader::ProtocolBuffers::PromotedDoc, :promotedDoc, 13 1308 | optional :string, :offerNote, 14 1309 | repeated ::ApkDownloader::ProtocolBuffers::DocV2, :subscription, 16 1310 | optional ::ApkDownloader::ProtocolBuffers::Reason, :reason, 17 1311 | optional :string, :privacyPolicyUrl, 18 1312 | end 1313 | 1314 | class DocV2 < ::ProtocolBuffers::Message 1315 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DocV2" 1316 | 1317 | optional :string, :docid, 1 1318 | optional :string, :backendDocid, 2 1319 | optional :int32, :docType, 3 1320 | optional :int32, :backendId, 4 1321 | optional :string, :title, 5 1322 | optional :string, :creator, 6 1323 | optional :string, :descriptionHtml, 7 1324 | repeated ::ApkDownloader::ProtocolBuffers::Offer, :offer, 8 1325 | optional ::ApkDownloader::ProtocolBuffers::Availability, :availability, 9 1326 | repeated ::ApkDownloader::ProtocolBuffers::Image, :image, 10 1327 | repeated ::ApkDownloader::ProtocolBuffers::DocV2, :child, 11 1328 | optional ::ApkDownloader::ProtocolBuffers::ContainerMetadata, :containerMetadata, 12 1329 | optional ::ApkDownloader::ProtocolBuffers::DocumentDetails, :details, 13 1330 | optional ::ApkDownloader::ProtocolBuffers::AggregateRating, :aggregateRating, 14 1331 | optional ::ApkDownloader::ProtocolBuffers::Annotations, :annotations, 15 1332 | optional :string, :detailsUrl, 16 1333 | optional :string, :shareUrl, 17 1334 | optional :string, :reviewsUrl, 18 1335 | optional :string, :backendUrl, 19 1336 | optional :string, :purchaseDetailsUrl, 20 1337 | optional :bool, :detailsReusable, 21 1338 | optional :string, :subtitle, 22 1339 | end 1340 | 1341 | class EncryptedSubscriberInfo < ::ProtocolBuffers::Message 1342 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.EncryptedSubscriberInfo" 1343 | 1344 | optional :string, :data, 1 1345 | optional :string, :encryptedKey, 2 1346 | optional :string, :signature, 3 1347 | optional :string, :initVector, 4 1348 | optional :int32, :googleKeyVersion, 5 1349 | optional :int32, :carrierKeyVersion, 6 1350 | end 1351 | 1352 | class Availability < ::ProtocolBuffers::Message 1353 | # forward declarations 1354 | class PerDeviceAvailabilityRestriction < ::ProtocolBuffers::Message; end 1355 | 1356 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Availability" 1357 | 1358 | # nested messages 1359 | class PerDeviceAvailabilityRestriction < ::ProtocolBuffers::Message 1360 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Availability.PerDeviceAvailabilityRestriction" 1361 | 1362 | optional :fixed64, :androidId, 10 1363 | optional :int32, :deviceRestriction, 11 1364 | optional :int64, :channelId, 12 1365 | optional ::ApkDownloader::ProtocolBuffers::FilterEvaluationInfo, :filterInfo, 15 1366 | end 1367 | 1368 | optional :int32, :restriction, 5 1369 | optional :int32, :offerType, 6 1370 | optional ::ApkDownloader::ProtocolBuffers::Rule, :rule, 7 1371 | repeated ::ApkDownloader::ProtocolBuffers::Availability::PerDeviceAvailabilityRestriction, :perdeviceavailabilityrestriction, 9, :group => true 1372 | optional :bool, :availableIfOwned, 13 1373 | repeated ::ApkDownloader::ProtocolBuffers::Install, :install, 14 1374 | optional ::ApkDownloader::ProtocolBuffers::FilterEvaluationInfo, :filterInfo, 16 1375 | optional ::ApkDownloader::ProtocolBuffers::OwnershipInfo, :ownershipInfo, 17 1376 | end 1377 | 1378 | class FilterEvaluationInfo < ::ProtocolBuffers::Message 1379 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.FilterEvaluationInfo" 1380 | 1381 | repeated ::ApkDownloader::ProtocolBuffers::RuleEvaluation, :ruleEvaluation, 1 1382 | end 1383 | 1384 | class Rule < ::ProtocolBuffers::Message 1385 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Rule" 1386 | 1387 | optional :bool, :negate, 1 1388 | optional :int32, :operator, 2 1389 | optional :int32, :key, 3 1390 | repeated :string, :stringArg, 4 1391 | repeated :int64, :longArg, 5 1392 | repeated :double, :doubleArg, 6 1393 | repeated ::ApkDownloader::ProtocolBuffers::Rule, :subrule, 7 1394 | optional :int32, :responseCode, 8 1395 | optional :string, :comment, 9 1396 | repeated :fixed64, :stringArgHash, 10 1397 | repeated :int32, :constArg, 11 1398 | end 1399 | 1400 | class RuleEvaluation < ::ProtocolBuffers::Message 1401 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RuleEvaluation" 1402 | 1403 | optional ::ApkDownloader::ProtocolBuffers::Rule, :rule, 1 1404 | repeated :string, :actualStringValue, 2 1405 | repeated :int64, :actualLongValue, 3 1406 | repeated :bool, :actualBoolValue, 4 1407 | repeated :double, :actualDoubleValue, 5 1408 | end 1409 | 1410 | class LibraryAppDetails < ::ProtocolBuffers::Message 1411 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LibraryAppDetails" 1412 | 1413 | optional :string, :certificateHash, 2 1414 | optional :int64, :refundTimeoutTimestampMsec, 3 1415 | optional :int64, :postDeliveryRefundWindowMsec, 4 1416 | end 1417 | 1418 | class LibraryMutation < ::ProtocolBuffers::Message 1419 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LibraryMutation" 1420 | 1421 | optional ::ApkDownloader::ProtocolBuffers::Docid, :docid, 1 1422 | optional :int32, :offerType, 2 1423 | optional :int64, :documentHash, 3 1424 | optional :bool, :deleted, 4 1425 | optional ::ApkDownloader::ProtocolBuffers::LibraryAppDetails, :appDetails, 5 1426 | optional ::ApkDownloader::ProtocolBuffers::LibrarySubscriptionDetails, :subscriptionDetails, 6 1427 | end 1428 | 1429 | class LibrarySubscriptionDetails < ::ProtocolBuffers::Message 1430 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LibrarySubscriptionDetails" 1431 | 1432 | optional :int64, :initiationTimestampMsec, 1 1433 | optional :int64, :validUntilTimestampMsec, 2 1434 | optional :bool, :autoRenewing, 3 1435 | optional :int64, :trialUntilTimestampMsec, 4 1436 | end 1437 | 1438 | class LibraryUpdate < ::ProtocolBuffers::Message 1439 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LibraryUpdate" 1440 | 1441 | optional :int32, :status, 1 1442 | optional :int32, :corpus, 2 1443 | optional :bytes, :serverToken, 3 1444 | repeated ::ApkDownloader::ProtocolBuffers::LibraryMutation, :mutation, 4 1445 | optional :bool, :hasMore, 5 1446 | optional :string, :libraryId, 6 1447 | end 1448 | 1449 | class ClientLibraryState < ::ProtocolBuffers::Message 1450 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ClientLibraryState" 1451 | 1452 | optional :int32, :corpus, 1 1453 | optional :bytes, :serverToken, 2 1454 | optional :int64, :hashCodeSum, 3 1455 | optional :int32, :librarySize, 4 1456 | end 1457 | 1458 | class LibraryReplicationRequest < ::ProtocolBuffers::Message 1459 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LibraryReplicationRequest" 1460 | 1461 | repeated ::ApkDownloader::ProtocolBuffers::ClientLibraryState, :libraryState, 1 1462 | end 1463 | 1464 | class LibraryReplicationResponse < ::ProtocolBuffers::Message 1465 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LibraryReplicationResponse" 1466 | 1467 | repeated ::ApkDownloader::ProtocolBuffers::LibraryUpdate, :update, 1 1468 | end 1469 | 1470 | class ClickLogEvent < ::ProtocolBuffers::Message 1471 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ClickLogEvent" 1472 | 1473 | optional :int64, :eventTime, 1 1474 | optional :string, :url, 2 1475 | optional :string, :listId, 3 1476 | optional :string, :referrerUrl, 4 1477 | optional :string, :referrerListId, 5 1478 | end 1479 | 1480 | class LogRequest < ::ProtocolBuffers::Message 1481 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LogRequest" 1482 | 1483 | repeated ::ApkDownloader::ProtocolBuffers::ClickLogEvent, :clickEvent, 1 1484 | end 1485 | 1486 | class LogResponse < ::ProtocolBuffers::Message 1487 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LogResponse" 1488 | 1489 | end 1490 | 1491 | class AndroidAppNotificationData < ::ProtocolBuffers::Message 1492 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AndroidAppNotificationData" 1493 | 1494 | optional :int32, :versionCode, 1 1495 | optional :string, :assetId, 2 1496 | end 1497 | 1498 | class InAppNotificationData < ::ProtocolBuffers::Message 1499 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.InAppNotificationData" 1500 | 1501 | optional :string, :checkoutOrderId, 1 1502 | optional :string, :inAppNotificationId, 2 1503 | end 1504 | 1505 | class LibraryDirtyData < ::ProtocolBuffers::Message 1506 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.LibraryDirtyData" 1507 | 1508 | optional :int32, :backend, 1 1509 | end 1510 | 1511 | class Notification < ::ProtocolBuffers::Message 1512 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Notification" 1513 | 1514 | optional :int32, :notificationType, 1 1515 | optional :int64, :timestamp, 3 1516 | optional ::ApkDownloader::ProtocolBuffers::Docid, :docid, 4 1517 | optional :string, :docTitle, 5 1518 | optional :string, :userEmail, 6 1519 | optional ::ApkDownloader::ProtocolBuffers::AndroidAppNotificationData, :appData, 7 1520 | optional ::ApkDownloader::ProtocolBuffers::AndroidAppDeliveryData, :appDeliveryData, 8 1521 | optional ::ApkDownloader::ProtocolBuffers::PurchaseRemovalData, :purchaseRemovalData, 9 1522 | optional ::ApkDownloader::ProtocolBuffers::UserNotificationData, :userNotificationData, 10 1523 | optional ::ApkDownloader::ProtocolBuffers::InAppNotificationData, :inAppNotificationData, 11 1524 | optional ::ApkDownloader::ProtocolBuffers::PurchaseDeclinedData, :purchaseDeclinedData, 12 1525 | optional :string, :notificationId, 13 1526 | optional ::ApkDownloader::ProtocolBuffers::LibraryUpdate, :libraryUpdate, 14 1527 | optional ::ApkDownloader::ProtocolBuffers::LibraryDirtyData, :libraryDirtyData, 15 1528 | end 1529 | 1530 | class PurchaseDeclinedData < ::ProtocolBuffers::Message 1531 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseDeclinedData" 1532 | 1533 | optional :int32, :reason, 1 1534 | optional :bool, :showNotification, 2 1535 | end 1536 | 1537 | class PurchaseRemovalData < ::ProtocolBuffers::Message 1538 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseRemovalData" 1539 | 1540 | optional :bool, :malicious, 1 1541 | end 1542 | 1543 | class UserNotificationData < ::ProtocolBuffers::Message 1544 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.UserNotificationData" 1545 | 1546 | optional :string, :notificationTitle, 1 1547 | optional :string, :notificationText, 2 1548 | optional :string, :tickerText, 3 1549 | optional :string, :dialogTitle, 4 1550 | optional :string, :dialogText, 5 1551 | end 1552 | 1553 | class PlusOneResponse < ::ProtocolBuffers::Message 1554 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PlusOneResponse" 1555 | 1556 | end 1557 | 1558 | class RateSuggestedContentResponse < ::ProtocolBuffers::Message 1559 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RateSuggestedContentResponse" 1560 | 1561 | end 1562 | 1563 | class AggregateRating < ::ProtocolBuffers::Message 1564 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AggregateRating" 1565 | 1566 | optional :int32, :type, 1 1567 | optional :float, :starRating, 2 1568 | optional :uint64, :ratingsCount, 3 1569 | optional :uint64, :oneStarRatings, 4 1570 | optional :uint64, :twoStarRatings, 5 1571 | optional :uint64, :threeStarRatings, 6 1572 | optional :uint64, :fourStarRatings, 7 1573 | optional :uint64, :fiveStarRatings, 8 1574 | optional :uint64, :thumbsUpCount, 9 1575 | optional :uint64, :thumbsDownCount, 10 1576 | optional :uint64, :commentCount, 11 1577 | optional :double, :bayesianMeanRating, 12 1578 | end 1579 | 1580 | class DirectPurchase < ::ProtocolBuffers::Message 1581 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DirectPurchase" 1582 | 1583 | optional :string, :detailsUrl, 1 1584 | optional :string, :purchaseDocid, 2 1585 | optional :string, :parentDocid, 3 1586 | optional :int32, :offerType, 4 1587 | end 1588 | 1589 | class ResolveLinkResponse < ::ProtocolBuffers::Message 1590 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ResolveLinkResponse" 1591 | 1592 | optional :string, :detailsUrl, 1 1593 | optional :string, :browseUrl, 2 1594 | optional :string, :searchUrl, 3 1595 | optional ::ApkDownloader::ProtocolBuffers::DirectPurchase, :directPurchase, 4 1596 | optional :string, :homeUrl, 5 1597 | end 1598 | 1599 | class Payload < ::ProtocolBuffers::Message 1600 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Payload" 1601 | 1602 | optional ::ApkDownloader::ProtocolBuffers::ListResponse, :listResponse, 1 1603 | optional ::ApkDownloader::ProtocolBuffers::DetailsResponse, :detailsResponse, 2 1604 | optional ::ApkDownloader::ProtocolBuffers::ReviewResponse, :reviewResponse, 3 1605 | optional ::ApkDownloader::ProtocolBuffers::BuyResponse, :buyResponse, 4 1606 | optional ::ApkDownloader::ProtocolBuffers::SearchResponse, :searchResponse, 5 1607 | optional ::ApkDownloader::ProtocolBuffers::TocResponse, :tocResponse, 6 1608 | optional ::ApkDownloader::ProtocolBuffers::BrowseResponse, :browseResponse, 7 1609 | optional ::ApkDownloader::ProtocolBuffers::PurchaseStatusResponse, :purchaseStatusResponse, 8 1610 | optional ::ApkDownloader::ProtocolBuffers::UpdateInstrumentResponse, :updateInstrumentResponse, 9 1611 | optional ::ApkDownloader::ProtocolBuffers::LogResponse, :logResponse, 10 1612 | optional ::ApkDownloader::ProtocolBuffers::CheckInstrumentResponse, :checkInstrumentResponse, 11 1613 | optional ::ApkDownloader::ProtocolBuffers::PlusOneResponse, :plusOneResponse, 12 1614 | optional ::ApkDownloader::ProtocolBuffers::FlagContentResponse, :flagContentResponse, 13 1615 | optional ::ApkDownloader::ProtocolBuffers::AckNotificationResponse, :ackNotificationResponse, 14 1616 | optional ::ApkDownloader::ProtocolBuffers::InitiateAssociationResponse, :initiateAssociationResponse, 15 1617 | optional ::ApkDownloader::ProtocolBuffers::VerifyAssociationResponse, :verifyAssociationResponse, 16 1618 | optional ::ApkDownloader::ProtocolBuffers::LibraryReplicationResponse, :libraryReplicationResponse, 17 1619 | optional ::ApkDownloader::ProtocolBuffers::RevokeResponse, :revokeResponse, 18 1620 | optional ::ApkDownloader::ProtocolBuffers::BulkDetailsResponse, :bulkDetailsResponse, 19 1621 | optional ::ApkDownloader::ProtocolBuffers::ResolveLinkResponse, :resolveLinkResponse, 20 1622 | optional ::ApkDownloader::ProtocolBuffers::DeliveryResponse, :deliveryResponse, 21 1623 | optional ::ApkDownloader::ProtocolBuffers::AcceptTosResponse, :acceptTosResponse, 22 1624 | optional ::ApkDownloader::ProtocolBuffers::RateSuggestedContentResponse, :rateSuggestedContentResponse, 23 1625 | optional ::ApkDownloader::ProtocolBuffers::CheckPromoOfferResponse, :checkPromoOfferResponse, 24 1626 | end 1627 | 1628 | class PreFetch < ::ProtocolBuffers::Message 1629 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PreFetch" 1630 | 1631 | optional :string, :url, 1 1632 | optional :bytes, :response, 2 1633 | optional :string, :etag, 3 1634 | optional :int64, :ttl, 4 1635 | optional :int64, :softTtl, 5 1636 | end 1637 | 1638 | class ResponseWrapper < ::ProtocolBuffers::Message 1639 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ResponseWrapper" 1640 | 1641 | optional ::ApkDownloader::ProtocolBuffers::Payload, :payload, 1 1642 | optional ::ApkDownloader::ProtocolBuffers::ServerCommands, :commands, 2 1643 | repeated ::ApkDownloader::ProtocolBuffers::PreFetch, :preFetch, 3 1644 | repeated ::ApkDownloader::ProtocolBuffers::Notification, :notification, 4 1645 | end 1646 | 1647 | class ServerCommands < ::ProtocolBuffers::Message 1648 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ServerCommands" 1649 | 1650 | optional :bool, :clearCache, 1 1651 | optional :string, :displayErrorMessage, 2 1652 | optional :string, :logErrorStacktrace, 3 1653 | end 1654 | 1655 | class GetReviewsResponse < ::ProtocolBuffers::Message 1656 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetReviewsResponse" 1657 | 1658 | repeated ::ApkDownloader::ProtocolBuffers::Review, :review, 1 1659 | optional :int64, :matchingCount, 2 1660 | end 1661 | 1662 | class Review < ::ProtocolBuffers::Message 1663 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Review" 1664 | 1665 | optional :string, :authorName, 1 1666 | optional :string, :url, 2 1667 | optional :string, :source, 3 1668 | optional :string, :documentVersion, 4 1669 | optional :int64, :timestampMsec, 5 1670 | optional :int32, :starRating, 6 1671 | optional :string, :title, 7 1672 | optional :string, :comment, 8 1673 | optional :string, :commentId, 9 1674 | optional :string, :deviceName, 19 1675 | optional :string, :replyText, 29 1676 | optional :int64, :replyTimestampMsec, 30 1677 | end 1678 | 1679 | class ReviewResponse < ::ProtocolBuffers::Message 1680 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ReviewResponse" 1681 | 1682 | optional ::ApkDownloader::ProtocolBuffers::GetReviewsResponse, :getResponse, 1 1683 | optional :string, :nextPageUrl, 2 1684 | end 1685 | 1686 | class RevokeResponse < ::ProtocolBuffers::Message 1687 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RevokeResponse" 1688 | 1689 | optional ::ApkDownloader::ProtocolBuffers::LibraryUpdate, :libraryUpdate, 1 1690 | end 1691 | 1692 | class RelatedSearch < ::ProtocolBuffers::Message 1693 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RelatedSearch" 1694 | 1695 | optional :string, :searchUrl, 1 1696 | optional :string, :header, 2 1697 | optional :int32, :backendId, 3 1698 | optional :int32, :docType, 4 1699 | optional :bool, :current, 5 1700 | end 1701 | 1702 | class SearchResponse < ::ProtocolBuffers::Message 1703 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SearchResponse" 1704 | 1705 | optional :string, :originalQuery, 1 1706 | optional :string, :suggestedQuery, 2 1707 | optional :bool, :aggregateQuery, 3 1708 | repeated ::ApkDownloader::ProtocolBuffers::Bucket, :bucket, 4 1709 | repeated ::ApkDownloader::ProtocolBuffers::DocV2, :doc, 5 1710 | repeated ::ApkDownloader::ProtocolBuffers::RelatedSearch, :relatedSearch, 6 1711 | end 1712 | 1713 | class CorpusMetadata < ::ProtocolBuffers::Message 1714 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CorpusMetadata" 1715 | 1716 | optional :int32, :backend, 1 1717 | optional :string, :name, 2 1718 | optional :string, :landingUrl, 3 1719 | optional :string, :libraryName, 4 1720 | end 1721 | 1722 | class Experiments < ::ProtocolBuffers::Message 1723 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.Experiments" 1724 | 1725 | repeated :string, :experimentId, 1 1726 | end 1727 | 1728 | class TocResponse < ::ProtocolBuffers::Message 1729 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.TocResponse" 1730 | 1731 | repeated ::ApkDownloader::ProtocolBuffers::CorpusMetadata, :corpus, 1 1732 | optional :int32, :tosVersionDeprecated, 2 1733 | optional :string, :tosContent, 3 1734 | optional :string, :homeUrl, 4 1735 | optional ::ApkDownloader::ProtocolBuffers::Experiments, :experiments, 5 1736 | optional :string, :tosCheckboxTextMarketingEmails, 6 1737 | optional :string, :tosToken, 7 1738 | optional ::ApkDownloader::ProtocolBuffers::UserSettings, :userSettings, 8 1739 | optional :string, :iconOverrideUrl, 9 1740 | end 1741 | 1742 | class UserSettings < ::ProtocolBuffers::Message 1743 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.UserSettings" 1744 | 1745 | optional :bool, :tosCheckboxMarketingEmailsOptedIn, 1 1746 | end 1747 | 1748 | class AcceptTosResponse < ::ProtocolBuffers::Message 1749 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AcceptTosResponse" 1750 | 1751 | end 1752 | 1753 | class AckNotificationsRequestProto < ::ProtocolBuffers::Message 1754 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AckNotificationsRequestProto" 1755 | 1756 | repeated :string, :notificationId, 1 1757 | optional ::ApkDownloader::ProtocolBuffers::SignatureHashProto, :signatureHash, 2 1758 | repeated :string, :nackNotificationId, 3 1759 | end 1760 | 1761 | class AckNotificationsResponseProto < ::ProtocolBuffers::Message 1762 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AckNotificationsResponseProto" 1763 | 1764 | end 1765 | 1766 | class AddressProto < ::ProtocolBuffers::Message 1767 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AddressProto" 1768 | 1769 | optional :string, :address1, 1 1770 | optional :string, :address2, 2 1771 | optional :string, :city, 3 1772 | optional :string, :state, 4 1773 | optional :string, :postalCode, 5 1774 | optional :string, :country, 6 1775 | optional :string, :name, 7 1776 | optional :string, :type, 8 1777 | optional :string, :phone, 9 1778 | end 1779 | 1780 | class AppDataProto < ::ProtocolBuffers::Message 1781 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AppDataProto" 1782 | 1783 | optional :string, :key, 1 1784 | optional :string, :value, 2 1785 | end 1786 | 1787 | class AppSuggestionProto < ::ProtocolBuffers::Message 1788 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AppSuggestionProto" 1789 | 1790 | optional ::ApkDownloader::ProtocolBuffers::ExternalAssetProto, :assetInfo, 1 1791 | end 1792 | 1793 | class AssetIdentifierProto < ::ProtocolBuffers::Message 1794 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AssetIdentifierProto" 1795 | 1796 | optional :string, :packageName, 1 1797 | optional :int32, :versionCode, 2 1798 | optional :string, :assetId, 3 1799 | end 1800 | 1801 | class AssetsRequestProto < ::ProtocolBuffers::Message 1802 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AssetsRequestProto" 1803 | 1804 | optional :int32, :assetType, 1 1805 | optional :string, :query, 2 1806 | optional :string, :categoryId, 3 1807 | repeated :string, :assetId, 4 1808 | optional :bool, :retrieveVendingHistory, 5 1809 | optional :bool, :retrieveExtendedInfo, 6 1810 | optional :int32, :sortOrder, 7 1811 | optional :int64, :startIndex, 8 1812 | optional :int64, :numEntries, 9 1813 | optional :int32, :viewFilter, 10 1814 | optional :string, :rankingType, 11 1815 | optional :bool, :retrieveCarrierChannel, 12 1816 | repeated :string, :pendingDownloadAssetId, 13 1817 | optional :bool, :reconstructVendingHistory, 14 1818 | optional :bool, :unfilteredResults, 15 1819 | repeated :string, :badgeId, 16 1820 | end 1821 | 1822 | class AssetsResponseProto < ::ProtocolBuffers::Message 1823 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.AssetsResponseProto" 1824 | 1825 | repeated ::ApkDownloader::ProtocolBuffers::ExternalAssetProto, :asset, 1 1826 | optional :int64, :numTotalEntries, 2 1827 | optional :string, :correctedQuery, 3 1828 | repeated ::ApkDownloader::ProtocolBuffers::ExternalAssetProto, :altAsset, 4 1829 | optional :int64, :numCorrectedEntries, 5 1830 | optional :string, :header, 6 1831 | optional :int32, :listType, 7 1832 | end 1833 | 1834 | class BillingEventRequestProto < ::ProtocolBuffers::Message 1835 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BillingEventRequestProto" 1836 | 1837 | optional :int32, :eventType, 1 1838 | optional :string, :billingParametersId, 2 1839 | optional :bool, :resultSuccess, 3 1840 | optional :string, :clientMessage, 4 1841 | optional ::ApkDownloader::ProtocolBuffers::ExternalCarrierBillingInstrumentProto, :carrierInstrument, 5 1842 | end 1843 | 1844 | class BillingEventResponseProto < ::ProtocolBuffers::Message 1845 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BillingEventResponseProto" 1846 | 1847 | end 1848 | 1849 | class BillingParameterProto < ::ProtocolBuffers::Message 1850 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.BillingParameterProto" 1851 | 1852 | optional :string, :id, 1 1853 | optional :string, :name, 2 1854 | repeated :string, :mncMcc, 3 1855 | repeated :string, :backendUrl, 4 1856 | optional :string, :iconId, 5 1857 | optional :int32, :billingInstrumentType, 6 1858 | optional :string, :applicationId, 7 1859 | optional :string, :tosUrl, 8 1860 | optional :bool, :instrumentTosRequired, 9 1861 | optional :int32, :apiVersion, 10 1862 | optional :bool, :perTransactionCredentialsRequired, 11 1863 | optional :bool, :sendSubscriberIdWithCarrierBillingRequests, 12 1864 | optional :int32, :deviceAssociationMethod, 13 1865 | optional :string, :userTokenRequestMessage, 14 1866 | optional :string, :userTokenRequestAddress, 15 1867 | optional :bool, :passphraseRequired, 16 1868 | end 1869 | 1870 | class CarrierBillingCredentialsProto < ::ProtocolBuffers::Message 1871 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CarrierBillingCredentialsProto" 1872 | 1873 | optional :string, :credentials, 1 1874 | optional :int64, :credentialsTimeout, 2 1875 | end 1876 | 1877 | class CategoryProto < ::ProtocolBuffers::Message 1878 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CategoryProto" 1879 | 1880 | optional :int32, :assetType, 2 1881 | optional :string, :categoryId, 3 1882 | optional :string, :categoryDisplay, 4 1883 | optional :string, :categorySubtitle, 5 1884 | repeated :string, :promotedAssetsNew, 6 1885 | repeated :string, :promotedAssetsHome, 7 1886 | repeated ::ApkDownloader::ProtocolBuffers::CategoryProto, :subCategories, 8 1887 | repeated :string, :promotedAssetsPaid, 9 1888 | repeated :string, :promotedAssetsFree, 10 1889 | end 1890 | 1891 | class CheckForNotificationsRequestProto < ::ProtocolBuffers::Message 1892 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CheckForNotificationsRequestProto" 1893 | 1894 | optional :int64, :alarmDuration, 1 1895 | end 1896 | 1897 | class CheckForNotificationsResponseProto < ::ProtocolBuffers::Message 1898 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CheckForNotificationsResponseProto" 1899 | 1900 | end 1901 | 1902 | class CheckLicenseRequestProto < ::ProtocolBuffers::Message 1903 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CheckLicenseRequestProto" 1904 | 1905 | optional :string, :packageName, 1 1906 | optional :int32, :versionCode, 2 1907 | optional :int64, :nonce, 3 1908 | end 1909 | 1910 | class CheckLicenseResponseProto < ::ProtocolBuffers::Message 1911 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CheckLicenseResponseProto" 1912 | 1913 | optional :int32, :responseCode, 1 1914 | optional :string, :signedData, 2 1915 | optional :string, :signature, 3 1916 | end 1917 | 1918 | class CommentsRequestProto < ::ProtocolBuffers::Message 1919 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CommentsRequestProto" 1920 | 1921 | optional :string, :assetId, 1 1922 | optional :int64, :startIndex, 2 1923 | optional :int64, :numEntries, 3 1924 | optional :bool, :shouldReturnSelfComment, 4 1925 | optional :string, :assetReferrer, 5 1926 | end 1927 | 1928 | class CommentsResponseProto < ::ProtocolBuffers::Message 1929 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.CommentsResponseProto" 1930 | 1931 | repeated ::ApkDownloader::ProtocolBuffers::ExternalCommentProto, :comment, 1 1932 | optional :int64, :numTotalEntries, 2 1933 | optional ::ApkDownloader::ProtocolBuffers::ExternalCommentProto, :selfComment, 3 1934 | end 1935 | 1936 | class ContentSyncRequestProto < ::ProtocolBuffers::Message 1937 | # forward declarations 1938 | class AssetInstallState < ::ProtocolBuffers::Message; end 1939 | class SystemApp < ::ProtocolBuffers::Message; end 1940 | 1941 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ContentSyncRequestProto" 1942 | 1943 | # nested messages 1944 | class AssetInstallState < ::ProtocolBuffers::Message 1945 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ContentSyncRequestProto.AssetInstallState" 1946 | 1947 | optional :string, :assetId, 3 1948 | optional :int32, :assetState, 4 1949 | optional :int64, :installTime, 5 1950 | optional :int64, :uninstallTime, 6 1951 | optional :string, :packageName, 7 1952 | optional :int32, :versionCode, 8 1953 | optional :string, :assetReferrer, 9 1954 | end 1955 | 1956 | class SystemApp < ::ProtocolBuffers::Message 1957 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ContentSyncRequestProto.SystemApp" 1958 | 1959 | optional :string, :packageName, 11 1960 | optional :int32, :versionCode, 12 1961 | repeated :string, :certificateHash, 13 1962 | end 1963 | 1964 | optional :bool, :incremental, 1 1965 | repeated ::ApkDownloader::ProtocolBuffers::ContentSyncRequestProto::AssetInstallState, :assetinstallstate, 2, :group => true 1966 | repeated ::ApkDownloader::ProtocolBuffers::ContentSyncRequestProto::SystemApp, :systemapp, 10, :group => true 1967 | optional :int32, :sideloadedAppCount, 14 1968 | end 1969 | 1970 | class ContentSyncResponseProto < ::ProtocolBuffers::Message 1971 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ContentSyncResponseProto" 1972 | 1973 | optional :int32, :numUpdatesAvailable, 1 1974 | end 1975 | 1976 | class DataMessageProto < ::ProtocolBuffers::Message 1977 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DataMessageProto" 1978 | 1979 | optional :string, :category, 1 1980 | repeated ::ApkDownloader::ProtocolBuffers::AppDataProto, :appData, 3 1981 | end 1982 | 1983 | class DownloadInfoProto < ::ProtocolBuffers::Message 1984 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.DownloadInfoProto" 1985 | 1986 | optional :int64, :apkSize, 1 1987 | repeated ::ApkDownloader::ProtocolBuffers::FileMetadataProto, :additionalFile, 2 1988 | end 1989 | 1990 | class ExternalAssetProto < ::ProtocolBuffers::Message 1991 | # forward declarations 1992 | class PurchaseInformation < ::ProtocolBuffers::Message; end 1993 | class ExtendedInfo < ::ProtocolBuffers::Message; end 1994 | 1995 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalAssetProto" 1996 | 1997 | # nested messages 1998 | class PurchaseInformation < ::ProtocolBuffers::Message 1999 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalAssetProto.PurchaseInformation" 2000 | 2001 | optional :int64, :purchaseTime, 10 2002 | optional :int64, :refundTimeoutTime, 11 2003 | optional :int32, :refundStartPolicy, 45 2004 | optional :int64, :refundWindowDuration, 46 2005 | end 2006 | 2007 | class ExtendedInfo < ::ProtocolBuffers::Message 2008 | # forward declarations 2009 | class PackageDependency < ::ProtocolBuffers::Message; end 2010 | 2011 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalAssetProto.ExtendedInfo" 2012 | 2013 | # nested messages 2014 | class PackageDependency < ::ProtocolBuffers::Message 2015 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalAssetProto.ExtendedInfo.PackageDependency" 2016 | 2017 | optional :string, :packageName, 41 2018 | optional :bool, :skipPermissions, 42 2019 | end 2020 | 2021 | optional :string, :description, 13 2022 | optional :int64, :downloadCount, 14 2023 | repeated :string, :applicationPermissionId, 15 2024 | optional :int64, :requiredInstallationSize, 16 2025 | optional :string, :packageName, 17 2026 | optional :string, :category, 18 2027 | optional :bool, :forwardLocked, 19 2028 | optional :string, :contactEmail, 20 2029 | optional :bool, :everInstalledByUser, 21 2030 | optional :string, :downloadCountString, 23 2031 | optional :string, :contactPhone, 26 2032 | optional :string, :contactWebsite, 27 2033 | optional :bool, :nextPurchaseRefundable, 28 2034 | optional :int32, :numScreenshots, 30 2035 | optional :string, :promotionalDescription, 31 2036 | optional :int32, :serverAssetState, 34 2037 | optional :int32, :contentRatingLevel, 36 2038 | optional :string, :contentRatingString, 37 2039 | optional :string, :recentChanges, 38 2040 | repeated ::ApkDownloader::ProtocolBuffers::ExternalAssetProto::ExtendedInfo::PackageDependency, :packagedependency, 39, :group => true 2041 | optional :string, :videoLink, 43 2042 | optional ::ApkDownloader::ProtocolBuffers::DownloadInfoProto, :downloadInfo, 49 2043 | end 2044 | 2045 | optional :string, :id, 1 2046 | optional :string, :title, 2 2047 | optional :int32, :assetType, 3 2048 | optional :string, :owner, 4 2049 | optional :string, :version, 5 2050 | optional :string, :price, 6 2051 | optional :string, :averageRating, 7 2052 | optional :int64, :numRatings, 8 2053 | optional ::ApkDownloader::ProtocolBuffers::ExternalAssetProto::PurchaseInformation, :purchaseinformation, 9, :group => true 2054 | optional ::ApkDownloader::ProtocolBuffers::ExternalAssetProto::ExtendedInfo, :extendedinfo, 12, :group => true 2055 | optional :string, :ownerId, 22 2056 | optional :string, :packageName, 24 2057 | optional :int32, :versionCode, 25 2058 | optional :bool, :bundledAsset, 29 2059 | optional :string, :priceCurrency, 32 2060 | optional :int64, :priceMicros, 33 2061 | optional :string, :filterReason, 35 2062 | optional :string, :actualSellerPrice, 40 2063 | repeated ::ApkDownloader::ProtocolBuffers::ExternalBadgeProto, :appBadge, 47 2064 | repeated ::ApkDownloader::ProtocolBuffers::ExternalBadgeProto, :ownerBadge, 48 2065 | end 2066 | 2067 | class ExternalBadgeImageProto < ::ProtocolBuffers::Message 2068 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalBadgeImageProto" 2069 | 2070 | optional :int32, :usage, 1 2071 | optional :string, :url, 2 2072 | end 2073 | 2074 | class ExternalBadgeProto < ::ProtocolBuffers::Message 2075 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalBadgeProto" 2076 | 2077 | optional :string, :localizedTitle, 1 2078 | optional :string, :localizedDescription, 2 2079 | repeated ::ApkDownloader::ProtocolBuffers::ExternalBadgeImageProto, :badgeImage, 3 2080 | optional :string, :searchId, 4 2081 | end 2082 | 2083 | class ExternalCarrierBillingInstrumentProto < ::ProtocolBuffers::Message 2084 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalCarrierBillingInstrumentProto" 2085 | 2086 | optional :string, :instrumentKey, 1 2087 | optional :string, :subscriberIdentifier, 2 2088 | optional :string, :accountType, 3 2089 | optional :string, :subscriberCurrency, 4 2090 | optional :uint64, :transactionLimit, 5 2091 | optional :string, :subscriberName, 6 2092 | optional :string, :address1, 7 2093 | optional :string, :address2, 8 2094 | optional :string, :city, 9 2095 | optional :string, :state, 10 2096 | optional :string, :postalCode, 11 2097 | optional :string, :country, 12 2098 | optional ::ApkDownloader::ProtocolBuffers::EncryptedSubscriberInfo, :encryptedSubscriberInfo, 13 2099 | end 2100 | 2101 | class ExternalCommentProto < ::ProtocolBuffers::Message 2102 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalCommentProto" 2103 | 2104 | optional :string, :body, 1 2105 | optional :int32, :rating, 2 2106 | optional :string, :creatorName, 3 2107 | optional :int64, :creationTime, 4 2108 | optional :string, :creatorId, 5 2109 | end 2110 | 2111 | class ExternalCreditCard < ::ProtocolBuffers::Message 2112 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalCreditCard" 2113 | 2114 | optional :string, :type, 1 2115 | optional :string, :lastDigits, 2 2116 | optional :int32, :expYear, 3 2117 | optional :int32, :expMonth, 4 2118 | optional :string, :personName, 5 2119 | optional :string, :countryCode, 6 2120 | optional :string, :postalCode, 7 2121 | optional :bool, :makeDefault, 8 2122 | optional :string, :address1, 9 2123 | optional :string, :address2, 10 2124 | optional :string, :city, 11 2125 | optional :string, :state, 12 2126 | optional :string, :phone, 13 2127 | end 2128 | 2129 | class ExternalPaypalInstrumentProto < ::ProtocolBuffers::Message 2130 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ExternalPaypalInstrumentProto" 2131 | 2132 | optional :string, :instrumentKey, 1 2133 | optional :string, :preapprovalKey, 2 2134 | optional :string, :paypalEmail, 3 2135 | optional ::ApkDownloader::ProtocolBuffers::AddressProto, :paypalAddress, 4 2136 | optional :bool, :multiplePaypalInstrumentsSupported, 5 2137 | end 2138 | 2139 | class FileMetadataProto < ::ProtocolBuffers::Message 2140 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.FileMetadataProto" 2141 | 2142 | optional :int32, :fileType, 1 2143 | optional :int32, :versionCode, 2 2144 | optional :int64, :size, 3 2145 | optional :string, :downloadUrl, 4 2146 | end 2147 | 2148 | class GetAddressSnippetRequestProto < ::ProtocolBuffers::Message 2149 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetAddressSnippetRequestProto" 2150 | 2151 | optional ::ApkDownloader::ProtocolBuffers::EncryptedSubscriberInfo, :encryptedSubscriberInfo, 1 2152 | end 2153 | 2154 | class GetAddressSnippetResponseProto < ::ProtocolBuffers::Message 2155 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetAddressSnippetResponseProto" 2156 | 2157 | optional :string, :addressSnippet, 1 2158 | end 2159 | 2160 | class GetAssetRequestProto < ::ProtocolBuffers::Message 2161 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetAssetRequestProto" 2162 | 2163 | optional :string, :assetId, 1 2164 | optional :string, :directDownloadKey, 2 2165 | end 2166 | 2167 | class GetAssetResponseProto < ::ProtocolBuffers::Message 2168 | # forward declarations 2169 | class InstallAsset < ::ProtocolBuffers::Message; end 2170 | 2171 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetAssetResponseProto" 2172 | 2173 | # nested messages 2174 | class InstallAsset < ::ProtocolBuffers::Message 2175 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetAssetResponseProto.InstallAsset" 2176 | 2177 | optional :string, :assetId, 2 2178 | optional :string, :assetName, 3 2179 | optional :string, :assetType, 4 2180 | optional :string, :assetPackage, 5 2181 | optional :string, :blobUrl, 6 2182 | optional :string, :assetSignature, 7 2183 | optional :int64, :assetSize, 8 2184 | optional :int64, :refundTimeoutMillis, 9 2185 | optional :bool, :forwardLocked, 10 2186 | optional :bool, :secured, 11 2187 | optional :int32, :versionCode, 12 2188 | optional :string, :downloadAuthCookieName, 13 2189 | optional :string, :downloadAuthCookieValue, 14 2190 | optional :int64, :postInstallRefundWindowMillis, 16 2191 | end 2192 | 2193 | optional ::ApkDownloader::ProtocolBuffers::GetAssetResponseProto::InstallAsset, :installasset, 1, :group => true 2194 | repeated ::ApkDownloader::ProtocolBuffers::FileMetadataProto, :additionalFile, 15 2195 | end 2196 | 2197 | class GetCarrierInfoRequestProto < ::ProtocolBuffers::Message 2198 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetCarrierInfoRequestProto" 2199 | 2200 | end 2201 | 2202 | class GetCarrierInfoResponseProto < ::ProtocolBuffers::Message 2203 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetCarrierInfoResponseProto" 2204 | 2205 | optional :bool, :carrierChannelEnabled, 1 2206 | optional :bytes, :carrierLogoIcon, 2 2207 | optional :bytes, :carrierBanner, 3 2208 | optional :string, :carrierSubtitle, 4 2209 | optional :string, :carrierTitle, 5 2210 | optional :int32, :carrierImageDensity, 6 2211 | end 2212 | 2213 | class GetCategoriesRequestProto < ::ProtocolBuffers::Message 2214 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetCategoriesRequestProto" 2215 | 2216 | optional :bool, :prefetchPromoData, 1 2217 | end 2218 | 2219 | class GetCategoriesResponseProto < ::ProtocolBuffers::Message 2220 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetCategoriesResponseProto" 2221 | 2222 | repeated ::ApkDownloader::ProtocolBuffers::CategoryProto, :categories, 1 2223 | end 2224 | 2225 | class GetImageRequestProto < ::ProtocolBuffers::Message 2226 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetImageRequestProto" 2227 | 2228 | optional :string, :assetId, 1 2229 | optional :int32, :imageUsage, 3 2230 | optional :string, :imageId, 4 2231 | optional :int32, :screenPropertyWidth, 5 2232 | optional :int32, :screenPropertyHeight, 6 2233 | optional :int32, :screenPropertyDensity, 7 2234 | optional :int32, :productType, 8 2235 | end 2236 | 2237 | class GetImageResponseProto < ::ProtocolBuffers::Message 2238 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetImageResponseProto" 2239 | 2240 | optional :bytes, :imageData, 1 2241 | optional :int32, :imageDensity, 2 2242 | end 2243 | 2244 | class GetMarketMetadataRequestProto < ::ProtocolBuffers::Message 2245 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetMarketMetadataRequestProto" 2246 | 2247 | optional :int64, :lastRequestTime, 1 2248 | optional ::ApkDownloader::ProtocolBuffers::DeviceConfigurationProto, :deviceConfiguration, 2 2249 | optional :bool, :deviceRoaming, 3 2250 | repeated :string, :marketSignatureHash, 4 2251 | optional :int32, :contentRating, 5 2252 | optional :string, :deviceModelName, 6 2253 | optional :string, :deviceManufacturerName, 7 2254 | end 2255 | 2256 | class GetMarketMetadataResponseProto < ::ProtocolBuffers::Message 2257 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetMarketMetadataResponseProto" 2258 | 2259 | optional :int32, :latestClientVersionCode, 1 2260 | optional :string, :latestClientUrl, 2 2261 | optional :bool, :paidAppsEnabled, 3 2262 | repeated ::ApkDownloader::ProtocolBuffers::BillingParameterProto, :billingParameter, 4 2263 | optional :bool, :commentPostEnabled, 5 2264 | optional :bool, :billingEventsEnabled, 6 2265 | optional :string, :warningMessage, 7 2266 | optional :bool, :inAppBillingEnabled, 8 2267 | optional :int32, :inAppBillingMaxApiVersion, 9 2268 | end 2269 | 2270 | class GetSubCategoriesRequestProto < ::ProtocolBuffers::Message 2271 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetSubCategoriesRequestProto" 2272 | 2273 | optional :int32, :assetType, 1 2274 | end 2275 | 2276 | class GetSubCategoriesResponseProto < ::ProtocolBuffers::Message 2277 | # forward declarations 2278 | class SubCategory < ::ProtocolBuffers::Message; end 2279 | 2280 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetSubCategoriesResponseProto" 2281 | 2282 | # nested messages 2283 | class SubCategory < ::ProtocolBuffers::Message 2284 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.GetSubCategoriesResponseProto.SubCategory" 2285 | 2286 | optional :string, :subCategoryDisplay, 2 2287 | optional :string, :subCategoryId, 3 2288 | end 2289 | 2290 | repeated ::ApkDownloader::ProtocolBuffers::GetSubCategoriesResponseProto::SubCategory, :subcategory, 1, :group => true 2291 | end 2292 | 2293 | class InAppPurchaseInformationRequestProto < ::ProtocolBuffers::Message 2294 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.InAppPurchaseInformationRequestProto" 2295 | 2296 | optional ::ApkDownloader::ProtocolBuffers::SignatureHashProto, :signatureHash, 1 2297 | optional :int64, :nonce, 2 2298 | repeated :string, :notificationId, 3 2299 | optional :string, :signatureAlgorithm, 4 2300 | optional :int32, :billingApiVersion, 5 2301 | end 2302 | 2303 | class InAppPurchaseInformationResponseProto < ::ProtocolBuffers::Message 2304 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.InAppPurchaseInformationResponseProto" 2305 | 2306 | optional ::ApkDownloader::ProtocolBuffers::SignedDataProto, :signedResponse, 1 2307 | repeated ::ApkDownloader::ProtocolBuffers::StatusBarNotificationProto, :statusBarNotification, 2 2308 | optional ::ApkDownloader::ProtocolBuffers::PurchaseResultProto, :purchaseResult, 3 2309 | end 2310 | 2311 | class InAppRestoreTransactionsRequestProto < ::ProtocolBuffers::Message 2312 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.InAppRestoreTransactionsRequestProto" 2313 | 2314 | optional ::ApkDownloader::ProtocolBuffers::SignatureHashProto, :signatureHash, 1 2315 | optional :int64, :nonce, 2 2316 | optional :string, :signatureAlgorithm, 3 2317 | optional :int32, :billingApiVersion, 4 2318 | end 2319 | 2320 | class InAppRestoreTransactionsResponseProto < ::ProtocolBuffers::Message 2321 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.InAppRestoreTransactionsResponseProto" 2322 | 2323 | optional ::ApkDownloader::ProtocolBuffers::SignedDataProto, :signedResponse, 1 2324 | optional ::ApkDownloader::ProtocolBuffers::PurchaseResultProto, :purchaseResult, 2 2325 | end 2326 | 2327 | class ModifyCommentRequestProto < ::ProtocolBuffers::Message 2328 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ModifyCommentRequestProto" 2329 | 2330 | optional :string, :assetId, 1 2331 | optional ::ApkDownloader::ProtocolBuffers::ExternalCommentProto, :comment, 2 2332 | optional :bool, :deleteComment, 3 2333 | optional :bool, :flagAsset, 4 2334 | optional :int32, :flagType, 5 2335 | optional :string, :flagMessage, 6 2336 | optional :bool, :nonFlagFlow, 7 2337 | end 2338 | 2339 | class ModifyCommentResponseProto < ::ProtocolBuffers::Message 2340 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ModifyCommentResponseProto" 2341 | 2342 | end 2343 | 2344 | class PaypalCountryInfoProto < ::ProtocolBuffers::Message 2345 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalCountryInfoProto" 2346 | 2347 | optional :bool, :birthDateRequired, 1 2348 | optional :string, :tosText, 2 2349 | optional :string, :billingAgreementText, 3 2350 | optional :string, :preTosText, 4 2351 | end 2352 | 2353 | class PaypalCreateAccountRequestProto < ::ProtocolBuffers::Message 2354 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalCreateAccountRequestProto" 2355 | 2356 | optional :string, :firstName, 1 2357 | optional :string, :lastName, 2 2358 | optional ::ApkDownloader::ProtocolBuffers::AddressProto, :address, 3 2359 | optional :string, :birthDate, 4 2360 | end 2361 | 2362 | class PaypalCreateAccountResponseProto < ::ProtocolBuffers::Message 2363 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalCreateAccountResponseProto" 2364 | 2365 | optional :string, :createAccountKey, 1 2366 | end 2367 | 2368 | class PaypalCredentialsProto < ::ProtocolBuffers::Message 2369 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalCredentialsProto" 2370 | 2371 | optional :string, :preapprovalKey, 1 2372 | optional :string, :paypalEmail, 2 2373 | end 2374 | 2375 | class PaypalMassageAddressRequestProto < ::ProtocolBuffers::Message 2376 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalMassageAddressRequestProto" 2377 | 2378 | optional ::ApkDownloader::ProtocolBuffers::AddressProto, :address, 1 2379 | end 2380 | 2381 | class PaypalMassageAddressResponseProto < ::ProtocolBuffers::Message 2382 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalMassageAddressResponseProto" 2383 | 2384 | optional ::ApkDownloader::ProtocolBuffers::AddressProto, :address, 1 2385 | end 2386 | 2387 | class PaypalPreapprovalCredentialsRequestProto < ::ProtocolBuffers::Message 2388 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalPreapprovalCredentialsRequestProto" 2389 | 2390 | optional :string, :gaiaAuthToken, 1 2391 | optional :string, :billingInstrumentId, 2 2392 | end 2393 | 2394 | class PaypalPreapprovalCredentialsResponseProto < ::ProtocolBuffers::Message 2395 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalPreapprovalCredentialsResponseProto" 2396 | 2397 | optional :int32, :resultCode, 1 2398 | optional :string, :paypalAccountKey, 2 2399 | optional :string, :paypalEmail, 3 2400 | end 2401 | 2402 | class PaypalPreapprovalDetailsRequestProto < ::ProtocolBuffers::Message 2403 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalPreapprovalDetailsRequestProto" 2404 | 2405 | optional :bool, :getAddress, 1 2406 | optional :string, :preapprovalKey, 2 2407 | end 2408 | 2409 | class PaypalPreapprovalDetailsResponseProto < ::ProtocolBuffers::Message 2410 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalPreapprovalDetailsResponseProto" 2411 | 2412 | optional :string, :paypalEmail, 1 2413 | optional ::ApkDownloader::ProtocolBuffers::AddressProto, :address, 2 2414 | end 2415 | 2416 | class PaypalPreapprovalRequestProto < ::ProtocolBuffers::Message 2417 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalPreapprovalRequestProto" 2418 | 2419 | end 2420 | 2421 | class PaypalPreapprovalResponseProto < ::ProtocolBuffers::Message 2422 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PaypalPreapprovalResponseProto" 2423 | 2424 | optional :string, :preapprovalKey, 1 2425 | end 2426 | 2427 | class PendingNotificationsProto < ::ProtocolBuffers::Message 2428 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PendingNotificationsProto" 2429 | 2430 | repeated ::ApkDownloader::ProtocolBuffers::DataMessageProto, :notification, 1 2431 | optional :int64, :nextCheckMillis, 2 2432 | end 2433 | 2434 | class PrefetchedBundleProto < ::ProtocolBuffers::Message 2435 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PrefetchedBundleProto" 2436 | 2437 | optional ::ApkDownloader::ProtocolBuffers::SingleRequestProto, :request, 1 2438 | optional ::ApkDownloader::ProtocolBuffers::SingleResponseProto, :response, 2 2439 | end 2440 | 2441 | class PurchaseCartInfoProto < ::ProtocolBuffers::Message 2442 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseCartInfoProto" 2443 | 2444 | optional :string, :itemPrice, 1 2445 | optional :string, :taxInclusive, 2 2446 | optional :string, :taxExclusive, 3 2447 | optional :string, :total, 4 2448 | optional :string, :taxMessage, 5 2449 | optional :string, :footerMessage, 6 2450 | optional :string, :priceCurrency, 7 2451 | optional :int64, :priceMicros, 8 2452 | end 2453 | 2454 | class PurchaseInfoProto < ::ProtocolBuffers::Message 2455 | # forward declarations 2456 | class BillingInstruments < ::ProtocolBuffers::Message; end 2457 | 2458 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseInfoProto" 2459 | 2460 | # nested messages 2461 | class BillingInstruments < ::ProtocolBuffers::Message 2462 | # forward declarations 2463 | class BillingInstrument < ::ProtocolBuffers::Message; end 2464 | 2465 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseInfoProto.BillingInstruments" 2466 | 2467 | # nested messages 2468 | class BillingInstrument < ::ProtocolBuffers::Message 2469 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseInfoProto.BillingInstruments.BillingInstrument" 2470 | 2471 | optional :string, :id, 5 2472 | optional :string, :name, 6 2473 | optional :bool, :isInvalid, 7 2474 | optional :int32, :instrumentType, 11 2475 | optional :int32, :instrumentStatus, 14 2476 | end 2477 | 2478 | repeated ::ApkDownloader::ProtocolBuffers::PurchaseInfoProto::BillingInstruments::BillingInstrument, :billinginstrument, 4, :group => true 2479 | optional :string, :defaultBillingInstrumentId, 8 2480 | end 2481 | 2482 | optional :string, :transactionId, 1 2483 | optional ::ApkDownloader::ProtocolBuffers::PurchaseCartInfoProto, :cartInfo, 2 2484 | optional ::ApkDownloader::ProtocolBuffers::PurchaseInfoProto::BillingInstruments, :billinginstruments, 3, :group => true 2485 | repeated :int32, :errorInputFields, 9 2486 | optional :string, :refundPolicy, 10 2487 | optional :bool, :userCanAddGdd, 12 2488 | repeated :int32, :eligibleInstrumentTypes, 13 2489 | optional :string, :orderId, 15 2490 | end 2491 | 2492 | class PurchaseMetadataRequestProto < ::ProtocolBuffers::Message 2493 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseMetadataRequestProto" 2494 | 2495 | optional :bool, :deprecatedRetrieveBillingCountries, 1 2496 | optional :int32, :billingInstrumentType, 2 2497 | end 2498 | 2499 | class PurchaseMetadataResponseProto < ::ProtocolBuffers::Message 2500 | # forward declarations 2501 | class Countries < ::ProtocolBuffers::Message; end 2502 | 2503 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseMetadataResponseProto" 2504 | 2505 | # nested messages 2506 | class Countries < ::ProtocolBuffers::Message 2507 | # forward declarations 2508 | class Country < ::ProtocolBuffers::Message; end 2509 | 2510 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseMetadataResponseProto.Countries" 2511 | 2512 | # nested messages 2513 | class Country < ::ProtocolBuffers::Message 2514 | # forward declarations 2515 | class InstrumentAddressSpec < ::ProtocolBuffers::Message; end 2516 | 2517 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseMetadataResponseProto.Countries.Country" 2518 | 2519 | # nested messages 2520 | class InstrumentAddressSpec < ::ProtocolBuffers::Message 2521 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseMetadataResponseProto.Countries.Country.InstrumentAddressSpec" 2522 | 2523 | optional :int32, :instrumentFamily, 8 2524 | optional ::ApkDownloader::ProtocolBuffers::BillingAddressSpec, :billingAddressSpec, 9 2525 | end 2526 | 2527 | optional :string, :countryCode, 3 2528 | optional :string, :countryName, 4 2529 | optional ::ApkDownloader::ProtocolBuffers::PaypalCountryInfoProto, :paypalCountryInfo, 5 2530 | optional :bool, :allowsReducedBillingAddress, 6 2531 | repeated ::ApkDownloader::ProtocolBuffers::PurchaseMetadataResponseProto::Countries::Country::InstrumentAddressSpec, :instrumentaddressspec, 7, :group => true 2532 | end 2533 | 2534 | repeated ::ApkDownloader::ProtocolBuffers::PurchaseMetadataResponseProto::Countries::Country, :country, 2, :group => true 2535 | end 2536 | 2537 | optional ::ApkDownloader::ProtocolBuffers::PurchaseMetadataResponseProto::Countries, :countries, 1, :group => true 2538 | end 2539 | 2540 | class PurchaseOrderRequestProto < ::ProtocolBuffers::Message 2541 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseOrderRequestProto" 2542 | 2543 | optional :string, :gaiaAuthToken, 1 2544 | optional :string, :assetId, 2 2545 | optional :string, :transactionId, 3 2546 | optional :string, :billingInstrumentId, 4 2547 | optional :bool, :tosAccepted, 5 2548 | optional ::ApkDownloader::ProtocolBuffers::CarrierBillingCredentialsProto, :carrierBillingCredentials, 6 2549 | optional :string, :existingOrderId, 7 2550 | optional :int32, :billingInstrumentType, 8 2551 | optional :string, :billingParametersId, 9 2552 | optional ::ApkDownloader::ProtocolBuffers::PaypalCredentialsProto, :paypalCredentials, 10 2553 | optional ::ApkDownloader::ProtocolBuffers::RiskHeaderInfoProto, :riskHeaderInfo, 11 2554 | optional :int32, :productType, 12 2555 | optional ::ApkDownloader::ProtocolBuffers::SignatureHashProto, :signatureHash, 13 2556 | optional :string, :developerPayload, 14 2557 | end 2558 | 2559 | class PurchaseOrderResponseProto < ::ProtocolBuffers::Message 2560 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseOrderResponseProto" 2561 | 2562 | optional :int32, :deprecatedResultCode, 1 2563 | optional ::ApkDownloader::ProtocolBuffers::PurchaseInfoProto, :purchaseInfo, 2 2564 | optional ::ApkDownloader::ProtocolBuffers::ExternalAssetProto, :asset, 3 2565 | optional ::ApkDownloader::ProtocolBuffers::PurchaseResultProto, :purchaseResult, 4 2566 | end 2567 | 2568 | class PurchasePostRequestProto < ::ProtocolBuffers::Message 2569 | # forward declarations 2570 | class BillingInstrumentInfo < ::ProtocolBuffers::Message; end 2571 | 2572 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchasePostRequestProto" 2573 | 2574 | # nested messages 2575 | class BillingInstrumentInfo < ::ProtocolBuffers::Message 2576 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchasePostRequestProto.BillingInstrumentInfo" 2577 | 2578 | optional :string, :billingInstrumentId, 5 2579 | optional ::ApkDownloader::ProtocolBuffers::ExternalCreditCard, :creditCard, 6 2580 | optional ::ApkDownloader::ProtocolBuffers::ExternalCarrierBillingInstrumentProto, :carrierInstrument, 9 2581 | optional ::ApkDownloader::ProtocolBuffers::ExternalPaypalInstrumentProto, :paypalInstrument, 10 2582 | end 2583 | 2584 | optional :string, :gaiaAuthToken, 1 2585 | optional :string, :assetId, 2 2586 | optional :string, :transactionId, 3 2587 | optional ::ApkDownloader::ProtocolBuffers::PurchasePostRequestProto::BillingInstrumentInfo, :billinginstrumentinfo, 4, :group => true 2588 | optional :bool, :tosAccepted, 7 2589 | optional :string, :cbInstrumentKey, 8 2590 | optional :bool, :paypalAuthConfirmed, 11 2591 | optional :int32, :productType, 12 2592 | optional ::ApkDownloader::ProtocolBuffers::SignatureHashProto, :signatureHash, 13 2593 | end 2594 | 2595 | class PurchasePostResponseProto < ::ProtocolBuffers::Message 2596 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchasePostResponseProto" 2597 | 2598 | optional :int32, :deprecatedResultCode, 1 2599 | optional ::ApkDownloader::ProtocolBuffers::PurchaseInfoProto, :purchaseInfo, 2 2600 | optional :string, :termsOfServiceUrl, 3 2601 | optional :string, :termsOfServiceText, 4 2602 | optional :string, :termsOfServiceName, 5 2603 | optional :string, :termsOfServiceCheckboxText, 6 2604 | optional :string, :termsOfServiceHeaderText, 7 2605 | optional ::ApkDownloader::ProtocolBuffers::PurchaseResultProto, :purchaseResult, 8 2606 | end 2607 | 2608 | class PurchaseProductRequestProto < ::ProtocolBuffers::Message 2609 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseProductRequestProto" 2610 | 2611 | optional :int32, :productType, 1 2612 | optional :string, :productId, 2 2613 | optional ::ApkDownloader::ProtocolBuffers::SignatureHashProto, :signatureHash, 3 2614 | end 2615 | 2616 | class PurchaseProductResponseProto < ::ProtocolBuffers::Message 2617 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseProductResponseProto" 2618 | 2619 | optional :string, :title, 1 2620 | optional :string, :itemTitle, 2 2621 | optional :string, :itemDescription, 3 2622 | optional :string, :merchantField, 4 2623 | end 2624 | 2625 | class PurchaseResultProto < ::ProtocolBuffers::Message 2626 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.PurchaseResultProto" 2627 | 2628 | optional :int32, :resultCode, 1 2629 | optional :string, :resultCodeMessage, 2 2630 | end 2631 | 2632 | class QuerySuggestionProto < ::ProtocolBuffers::Message 2633 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.QuerySuggestionProto" 2634 | 2635 | optional :string, :query, 1 2636 | optional :int32, :estimatedNumResults, 2 2637 | optional :int32, :queryWeight, 3 2638 | end 2639 | 2640 | class QuerySuggestionRequestProto < ::ProtocolBuffers::Message 2641 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.QuerySuggestionRequestProto" 2642 | 2643 | optional :string, :query, 1 2644 | optional :int32, :requestType, 2 2645 | end 2646 | 2647 | class QuerySuggestionResponseProto < ::ProtocolBuffers::Message 2648 | # forward declarations 2649 | class Suggestion < ::ProtocolBuffers::Message; end 2650 | 2651 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.QuerySuggestionResponseProto" 2652 | 2653 | # nested messages 2654 | class Suggestion < ::ProtocolBuffers::Message 2655 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.QuerySuggestionResponseProto.Suggestion" 2656 | 2657 | optional ::ApkDownloader::ProtocolBuffers::AppSuggestionProto, :appSuggestion, 2 2658 | optional ::ApkDownloader::ProtocolBuffers::QuerySuggestionProto, :querySuggestion, 3 2659 | end 2660 | 2661 | repeated ::ApkDownloader::ProtocolBuffers::QuerySuggestionResponseProto::Suggestion, :suggestion, 1, :group => true 2662 | optional :int32, :estimatedNumAppSuggestions, 4 2663 | optional :int32, :estimatedNumQuerySuggestions, 5 2664 | end 2665 | 2666 | class RateCommentRequestProto < ::ProtocolBuffers::Message 2667 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RateCommentRequestProto" 2668 | 2669 | optional :string, :assetId, 1 2670 | optional :string, :creatorId, 2 2671 | optional :int32, :commentRating, 3 2672 | end 2673 | 2674 | class RateCommentResponseProto < ::ProtocolBuffers::Message 2675 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RateCommentResponseProto" 2676 | 2677 | end 2678 | 2679 | class ReconstructDatabaseRequestProto < ::ProtocolBuffers::Message 2680 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ReconstructDatabaseRequestProto" 2681 | 2682 | optional :bool, :retrieveFullHistory, 1 2683 | end 2684 | 2685 | class ReconstructDatabaseResponseProto < ::ProtocolBuffers::Message 2686 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ReconstructDatabaseResponseProto" 2687 | 2688 | repeated ::ApkDownloader::ProtocolBuffers::AssetIdentifierProto, :asset, 1 2689 | end 2690 | 2691 | class RefundRequestProto < ::ProtocolBuffers::Message 2692 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RefundRequestProto" 2693 | 2694 | optional :string, :assetId, 1 2695 | end 2696 | 2697 | class RefundResponseProto < ::ProtocolBuffers::Message 2698 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RefundResponseProto" 2699 | 2700 | optional :int32, :result, 1 2701 | optional ::ApkDownloader::ProtocolBuffers::ExternalAssetProto, :asset, 2 2702 | optional :string, :resultDetail, 3 2703 | end 2704 | 2705 | class RemoveAssetRequestProto < ::ProtocolBuffers::Message 2706 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RemoveAssetRequestProto" 2707 | 2708 | optional :string, :assetId, 1 2709 | end 2710 | 2711 | class RequestPropertiesProto < ::ProtocolBuffers::Message 2712 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RequestPropertiesProto" 2713 | 2714 | optional :string, :userAuthToken, 1 2715 | optional :bool, :userAuthTokenSecure, 2 2716 | optional :int32, :softwareVersion, 3 2717 | optional :string, :aid, 4 2718 | optional :string, :productNameAndVersion, 5 2719 | optional :string, :userLanguage, 6 2720 | optional :string, :userCountry, 7 2721 | optional :string, :operatorName, 8 2722 | optional :string, :simOperatorName, 9 2723 | optional :string, :operatorNumericName, 10 2724 | optional :string, :simOperatorNumericName, 11 2725 | optional :string, :clientId, 12 2726 | optional :string, :loggingId, 13 2727 | end 2728 | 2729 | class RequestProto < ::ProtocolBuffers::Message 2730 | # forward declarations 2731 | class Request < ::ProtocolBuffers::Message; end 2732 | 2733 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RequestProto" 2734 | 2735 | # nested messages 2736 | class Request < ::ProtocolBuffers::Message 2737 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RequestProto.Request" 2738 | 2739 | optional ::ApkDownloader::ProtocolBuffers::RequestSpecificPropertiesProto, :requestSpecificProperties, 3 2740 | optional ::ApkDownloader::ProtocolBuffers::AssetsRequestProto, :assetRequest, 4 2741 | optional ::ApkDownloader::ProtocolBuffers::CommentsRequestProto, :commentsRequest, 5 2742 | optional ::ApkDownloader::ProtocolBuffers::ModifyCommentRequestProto, :modifyCommentRequest, 6 2743 | optional ::ApkDownloader::ProtocolBuffers::PurchasePostRequestProto, :purchasePostRequest, 7 2744 | optional ::ApkDownloader::ProtocolBuffers::PurchaseOrderRequestProto, :purchaseOrderRequest, 8 2745 | optional ::ApkDownloader::ProtocolBuffers::ContentSyncRequestProto, :contentSyncRequest, 9 2746 | optional ::ApkDownloader::ProtocolBuffers::GetAssetRequestProto, :getAssetRequest, 10 2747 | optional ::ApkDownloader::ProtocolBuffers::GetImageRequestProto, :getImageRequest, 11 2748 | optional ::ApkDownloader::ProtocolBuffers::RefundRequestProto, :refundRequest, 12 2749 | optional ::ApkDownloader::ProtocolBuffers::PurchaseMetadataRequestProto, :purchaseMetadataRequest, 13 2750 | optional ::ApkDownloader::ProtocolBuffers::GetSubCategoriesRequestProto, :subCategoriesRequest, 14 2751 | optional ::ApkDownloader::ProtocolBuffers::UninstallReasonRequestProto, :uninstallReasonRequest, 16 2752 | optional ::ApkDownloader::ProtocolBuffers::RateCommentRequestProto, :rateCommentRequest, 17 2753 | optional ::ApkDownloader::ProtocolBuffers::CheckLicenseRequestProto, :checkLicenseRequest, 18 2754 | optional ::ApkDownloader::ProtocolBuffers::GetMarketMetadataRequestProto, :getMarketMetadataRequest, 19 2755 | optional ::ApkDownloader::ProtocolBuffers::GetCategoriesRequestProto, :getCategoriesRequest, 21 2756 | optional ::ApkDownloader::ProtocolBuffers::GetCarrierInfoRequestProto, :getCarrierInfoRequest, 22 2757 | optional ::ApkDownloader::ProtocolBuffers::RemoveAssetRequestProto, :removeAssetRequest, 23 2758 | optional ::ApkDownloader::ProtocolBuffers::RestoreApplicationsRequestProto, :restoreApplicationsRequest, 24 2759 | optional ::ApkDownloader::ProtocolBuffers::QuerySuggestionRequestProto, :querySuggestionRequest, 25 2760 | optional ::ApkDownloader::ProtocolBuffers::BillingEventRequestProto, :billingEventRequest, 26 2761 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalRequestProto, :paypalPreapprovalRequest, 27 2762 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalDetailsRequestProto, :paypalPreapprovalDetailsRequest, 28 2763 | optional ::ApkDownloader::ProtocolBuffers::PaypalCreateAccountRequestProto, :paypalCreateAccountRequest, 29 2764 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalCredentialsRequestProto, :paypalPreapprovalCredentialsRequest, 30 2765 | optional ::ApkDownloader::ProtocolBuffers::InAppRestoreTransactionsRequestProto, :inAppRestoreTransactionsRequest, 31 2766 | optional ::ApkDownloader::ProtocolBuffers::InAppPurchaseInformationRequestProto, :inAppPurchaseInformationRequest, 32 2767 | optional ::ApkDownloader::ProtocolBuffers::CheckForNotificationsRequestProto, :checkForNotificationsRequest, 33 2768 | optional ::ApkDownloader::ProtocolBuffers::AckNotificationsRequestProto, :ackNotificationsRequest, 34 2769 | optional ::ApkDownloader::ProtocolBuffers::PurchaseProductRequestProto, :purchaseProductRequest, 35 2770 | optional ::ApkDownloader::ProtocolBuffers::ReconstructDatabaseRequestProto, :reconstructDatabaseRequest, 36 2771 | optional ::ApkDownloader::ProtocolBuffers::PaypalMassageAddressRequestProto, :paypalMassageAddressRequest, 37 2772 | optional ::ApkDownloader::ProtocolBuffers::GetAddressSnippetRequestProto, :getAddressSnippetRequest, 38 2773 | end 2774 | 2775 | optional ::ApkDownloader::ProtocolBuffers::RequestPropertiesProto, :requestProperties, 1 2776 | repeated ::ApkDownloader::ProtocolBuffers::RequestProto::Request, :request, 2, :group => true 2777 | end 2778 | 2779 | class RequestSpecificPropertiesProto < ::ProtocolBuffers::Message 2780 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RequestSpecificPropertiesProto" 2781 | 2782 | optional :string, :ifNoneMatch, 1 2783 | end 2784 | 2785 | class ResponsePropertiesProto < ::ProtocolBuffers::Message 2786 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ResponsePropertiesProto" 2787 | 2788 | optional :int32, :result, 1 2789 | optional :int32, :maxAge, 2 2790 | optional :string, :etag, 3 2791 | optional :int32, :serverVersion, 4 2792 | optional :int32, :maxAgeConsumable, 6 2793 | optional :string, :errorMessage, 7 2794 | repeated ::ApkDownloader::ProtocolBuffers::InputValidationError, :errorInputField, 8 2795 | end 2796 | 2797 | class ResponseProto < ::ProtocolBuffers::Message 2798 | # forward declarations 2799 | class Response < ::ProtocolBuffers::Message; end 2800 | 2801 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ResponseProto" 2802 | 2803 | # nested messages 2804 | class Response < ::ProtocolBuffers::Message 2805 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.ResponseProto.Response" 2806 | 2807 | optional ::ApkDownloader::ProtocolBuffers::ResponsePropertiesProto, :responseProperties, 2 2808 | optional ::ApkDownloader::ProtocolBuffers::AssetsResponseProto, :assetsResponse, 3 2809 | optional ::ApkDownloader::ProtocolBuffers::CommentsResponseProto, :commentsResponse, 4 2810 | optional ::ApkDownloader::ProtocolBuffers::ModifyCommentResponseProto, :modifyCommentResponse, 5 2811 | optional ::ApkDownloader::ProtocolBuffers::PurchasePostResponseProto, :purchasePostResponse, 6 2812 | optional ::ApkDownloader::ProtocolBuffers::PurchaseOrderResponseProto, :purchaseOrderResponse, 7 2813 | optional ::ApkDownloader::ProtocolBuffers::ContentSyncResponseProto, :contentSyncResponse, 8 2814 | optional ::ApkDownloader::ProtocolBuffers::GetAssetResponseProto, :getAssetResponse, 9 2815 | optional ::ApkDownloader::ProtocolBuffers::GetImageResponseProto, :getImageResponse, 10 2816 | optional ::ApkDownloader::ProtocolBuffers::RefundResponseProto, :refundResponse, 11 2817 | optional ::ApkDownloader::ProtocolBuffers::PurchaseMetadataResponseProto, :purchaseMetadataResponse, 12 2818 | optional ::ApkDownloader::ProtocolBuffers::GetSubCategoriesResponseProto, :subCategoriesResponse, 13 2819 | optional ::ApkDownloader::ProtocolBuffers::UninstallReasonResponseProto, :uninstallReasonResponse, 15 2820 | optional ::ApkDownloader::ProtocolBuffers::RateCommentResponseProto, :rateCommentResponse, 16 2821 | optional ::ApkDownloader::ProtocolBuffers::CheckLicenseResponseProto, :checkLicenseResponse, 17 2822 | optional ::ApkDownloader::ProtocolBuffers::GetMarketMetadataResponseProto, :getMarketMetadataResponse, 18 2823 | repeated ::ApkDownloader::ProtocolBuffers::PrefetchedBundleProto, :prefetchedBundle, 19 2824 | optional ::ApkDownloader::ProtocolBuffers::GetCategoriesResponseProto, :getCategoriesResponse, 20 2825 | optional ::ApkDownloader::ProtocolBuffers::GetCarrierInfoResponseProto, :getCarrierInfoResponse, 21 2826 | optional ::ApkDownloader::ProtocolBuffers::RestoreApplicationsResponseProto, :restoreApplicationResponse, 23 2827 | optional ::ApkDownloader::ProtocolBuffers::QuerySuggestionResponseProto, :querySuggestionResponse, 24 2828 | optional ::ApkDownloader::ProtocolBuffers::BillingEventResponseProto, :billingEventResponse, 25 2829 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalResponseProto, :paypalPreapprovalResponse, 26 2830 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalDetailsResponseProto, :paypalPreapprovalDetailsResponse, 27 2831 | optional ::ApkDownloader::ProtocolBuffers::PaypalCreateAccountResponseProto, :paypalCreateAccountResponse, 28 2832 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalCredentialsResponseProto, :paypalPreapprovalCredentialsResponse, 29 2833 | optional ::ApkDownloader::ProtocolBuffers::InAppRestoreTransactionsResponseProto, :inAppRestoreTransactionsResponse, 30 2834 | optional ::ApkDownloader::ProtocolBuffers::InAppPurchaseInformationResponseProto, :inAppPurchaseInformationResponse, 31 2835 | optional ::ApkDownloader::ProtocolBuffers::CheckForNotificationsResponseProto, :checkForNotificationsResponse, 32 2836 | optional ::ApkDownloader::ProtocolBuffers::AckNotificationsResponseProto, :ackNotificationsResponse, 33 2837 | optional ::ApkDownloader::ProtocolBuffers::PurchaseProductResponseProto, :purchaseProductResponse, 34 2838 | optional ::ApkDownloader::ProtocolBuffers::ReconstructDatabaseResponseProto, :reconstructDatabaseResponse, 35 2839 | optional ::ApkDownloader::ProtocolBuffers::PaypalMassageAddressResponseProto, :paypalMassageAddressResponse, 36 2840 | optional ::ApkDownloader::ProtocolBuffers::GetAddressSnippetResponseProto, :getAddressSnippetResponse, 37 2841 | end 2842 | 2843 | repeated ::ApkDownloader::ProtocolBuffers::ResponseProto::Response, :response, 1, :group => true 2844 | optional ::ApkDownloader::ProtocolBuffers::PendingNotificationsProto, :pendingNotifications, 38 2845 | end 2846 | 2847 | class RestoreApplicationsRequestProto < ::ProtocolBuffers::Message 2848 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RestoreApplicationsRequestProto" 2849 | 2850 | optional :string, :backupAndroidId, 1 2851 | optional :string, :tosVersion, 2 2852 | optional ::ApkDownloader::ProtocolBuffers::DeviceConfigurationProto, :deviceConfiguration, 3 2853 | end 2854 | 2855 | class RestoreApplicationsResponseProto < ::ProtocolBuffers::Message 2856 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RestoreApplicationsResponseProto" 2857 | 2858 | repeated ::ApkDownloader::ProtocolBuffers::GetAssetResponseProto, :asset, 1 2859 | end 2860 | 2861 | class RiskHeaderInfoProto < ::ProtocolBuffers::Message 2862 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.RiskHeaderInfoProto" 2863 | 2864 | optional :string, :hashedDeviceInfo, 1 2865 | end 2866 | 2867 | class SignatureHashProto < ::ProtocolBuffers::Message 2868 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SignatureHashProto" 2869 | 2870 | optional :string, :packageName, 1 2871 | optional :int32, :versionCode, 2 2872 | optional :bytes, :hash, 3 2873 | end 2874 | 2875 | class SignedDataProto < ::ProtocolBuffers::Message 2876 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SignedDataProto" 2877 | 2878 | optional :string, :signedData, 1 2879 | optional :string, :signature, 2 2880 | end 2881 | 2882 | class SingleRequestProto < ::ProtocolBuffers::Message 2883 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SingleRequestProto" 2884 | 2885 | optional ::ApkDownloader::ProtocolBuffers::RequestSpecificPropertiesProto, :requestSpecificProperties, 3 2886 | optional ::ApkDownloader::ProtocolBuffers::AssetsRequestProto, :assetRequest, 4 2887 | optional ::ApkDownloader::ProtocolBuffers::CommentsRequestProto, :commentsRequest, 5 2888 | optional ::ApkDownloader::ProtocolBuffers::ModifyCommentRequestProto, :modifyCommentRequest, 6 2889 | optional ::ApkDownloader::ProtocolBuffers::PurchasePostRequestProto, :purchasePostRequest, 7 2890 | optional ::ApkDownloader::ProtocolBuffers::PurchaseOrderRequestProto, :purchaseOrderRequest, 8 2891 | optional ::ApkDownloader::ProtocolBuffers::ContentSyncRequestProto, :contentSyncRequest, 9 2892 | optional ::ApkDownloader::ProtocolBuffers::GetAssetRequestProto, :getAssetRequest, 10 2893 | optional ::ApkDownloader::ProtocolBuffers::GetImageRequestProto, :getImageRequest, 11 2894 | optional ::ApkDownloader::ProtocolBuffers::RefundRequestProto, :refundRequest, 12 2895 | optional ::ApkDownloader::ProtocolBuffers::PurchaseMetadataRequestProto, :purchaseMetadataRequest, 13 2896 | optional ::ApkDownloader::ProtocolBuffers::GetSubCategoriesRequestProto, :subCategoriesRequest, 14 2897 | optional ::ApkDownloader::ProtocolBuffers::UninstallReasonRequestProto, :uninstallReasonRequest, 16 2898 | optional ::ApkDownloader::ProtocolBuffers::RateCommentRequestProto, :rateCommentRequest, 17 2899 | optional ::ApkDownloader::ProtocolBuffers::CheckLicenseRequestProto, :checkLicenseRequest, 18 2900 | optional ::ApkDownloader::ProtocolBuffers::GetMarketMetadataRequestProto, :getMarketMetadataRequest, 19 2901 | optional ::ApkDownloader::ProtocolBuffers::GetCategoriesRequestProto, :getCategoriesRequest, 21 2902 | optional ::ApkDownloader::ProtocolBuffers::GetCarrierInfoRequestProto, :getCarrierInfoRequest, 22 2903 | optional ::ApkDownloader::ProtocolBuffers::RemoveAssetRequestProto, :removeAssetRequest, 23 2904 | optional ::ApkDownloader::ProtocolBuffers::RestoreApplicationsRequestProto, :restoreApplicationsRequest, 24 2905 | optional ::ApkDownloader::ProtocolBuffers::QuerySuggestionRequestProto, :querySuggestionRequest, 25 2906 | optional ::ApkDownloader::ProtocolBuffers::BillingEventRequestProto, :billingEventRequest, 26 2907 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalRequestProto, :paypalPreapprovalRequest, 27 2908 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalDetailsRequestProto, :paypalPreapprovalDetailsRequest, 28 2909 | optional ::ApkDownloader::ProtocolBuffers::PaypalCreateAccountRequestProto, :paypalCreateAccountRequest, 29 2910 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalCredentialsRequestProto, :paypalPreapprovalCredentialsRequest, 30 2911 | optional ::ApkDownloader::ProtocolBuffers::InAppRestoreTransactionsRequestProto, :inAppRestoreTransactionsRequest, 31 2912 | optional ::ApkDownloader::ProtocolBuffers::InAppPurchaseInformationRequestProto, :getInAppPurchaseInformationRequest, 32 2913 | optional ::ApkDownloader::ProtocolBuffers::CheckForNotificationsRequestProto, :checkForNotificationsRequest, 33 2914 | optional ::ApkDownloader::ProtocolBuffers::AckNotificationsRequestProto, :ackNotificationsRequest, 34 2915 | optional ::ApkDownloader::ProtocolBuffers::PurchaseProductRequestProto, :purchaseProductRequest, 35 2916 | optional ::ApkDownloader::ProtocolBuffers::ReconstructDatabaseRequestProto, :reconstructDatabaseRequest, 36 2917 | optional ::ApkDownloader::ProtocolBuffers::PaypalMassageAddressRequestProto, :paypalMassageAddressRequest, 37 2918 | optional ::ApkDownloader::ProtocolBuffers::GetAddressSnippetRequestProto, :getAddressSnippetRequest, 38 2919 | end 2920 | 2921 | class SingleResponseProto < ::ProtocolBuffers::Message 2922 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.SingleResponseProto" 2923 | 2924 | optional ::ApkDownloader::ProtocolBuffers::ResponsePropertiesProto, :responseProperties, 2 2925 | optional ::ApkDownloader::ProtocolBuffers::AssetsResponseProto, :assetsResponse, 3 2926 | optional ::ApkDownloader::ProtocolBuffers::CommentsResponseProto, :commentsResponse, 4 2927 | optional ::ApkDownloader::ProtocolBuffers::ModifyCommentResponseProto, :modifyCommentResponse, 5 2928 | optional ::ApkDownloader::ProtocolBuffers::PurchasePostResponseProto, :purchasePostResponse, 6 2929 | optional ::ApkDownloader::ProtocolBuffers::PurchaseOrderResponseProto, :purchaseOrderResponse, 7 2930 | optional ::ApkDownloader::ProtocolBuffers::ContentSyncResponseProto, :contentSyncResponse, 8 2931 | optional ::ApkDownloader::ProtocolBuffers::GetAssetResponseProto, :getAssetResponse, 9 2932 | optional ::ApkDownloader::ProtocolBuffers::GetImageResponseProto, :getImageResponse, 10 2933 | optional ::ApkDownloader::ProtocolBuffers::RefundResponseProto, :refundResponse, 11 2934 | optional ::ApkDownloader::ProtocolBuffers::PurchaseMetadataResponseProto, :purchaseMetadataResponse, 12 2935 | optional ::ApkDownloader::ProtocolBuffers::GetSubCategoriesResponseProto, :subCategoriesResponse, 13 2936 | optional ::ApkDownloader::ProtocolBuffers::UninstallReasonResponseProto, :uninstallReasonResponse, 15 2937 | optional ::ApkDownloader::ProtocolBuffers::RateCommentResponseProto, :rateCommentResponse, 16 2938 | optional ::ApkDownloader::ProtocolBuffers::CheckLicenseResponseProto, :checkLicenseResponse, 17 2939 | optional ::ApkDownloader::ProtocolBuffers::GetMarketMetadataResponseProto, :getMarketMetadataResponse, 18 2940 | optional ::ApkDownloader::ProtocolBuffers::GetCategoriesResponseProto, :getCategoriesResponse, 20 2941 | optional ::ApkDownloader::ProtocolBuffers::GetCarrierInfoResponseProto, :getCarrierInfoResponse, 21 2942 | optional ::ApkDownloader::ProtocolBuffers::RestoreApplicationsResponseProto, :restoreApplicationResponse, 23 2943 | optional ::ApkDownloader::ProtocolBuffers::QuerySuggestionResponseProto, :querySuggestionResponse, 24 2944 | optional ::ApkDownloader::ProtocolBuffers::BillingEventResponseProto, :billingEventResponse, 25 2945 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalResponseProto, :paypalPreapprovalResponse, 26 2946 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalDetailsResponseProto, :paypalPreapprovalDetailsResponse, 27 2947 | optional ::ApkDownloader::ProtocolBuffers::PaypalCreateAccountResponseProto, :paypalCreateAccountResponse, 28 2948 | optional ::ApkDownloader::ProtocolBuffers::PaypalPreapprovalCredentialsResponseProto, :paypalPreapprovalCredentialsResponse, 29 2949 | optional ::ApkDownloader::ProtocolBuffers::InAppRestoreTransactionsResponseProto, :inAppRestoreTransactionsResponse, 30 2950 | optional ::ApkDownloader::ProtocolBuffers::InAppPurchaseInformationResponseProto, :getInAppPurchaseInformationResponse, 31 2951 | optional ::ApkDownloader::ProtocolBuffers::CheckForNotificationsResponseProto, :checkForNotificationsResponse, 32 2952 | optional ::ApkDownloader::ProtocolBuffers::AckNotificationsResponseProto, :ackNotificationsResponse, 33 2953 | optional ::ApkDownloader::ProtocolBuffers::PurchaseProductResponseProto, :purchaseProductResponse, 34 2954 | optional ::ApkDownloader::ProtocolBuffers::ReconstructDatabaseResponseProto, :reconstructDatabaseResponse, 35 2955 | optional ::ApkDownloader::ProtocolBuffers::PaypalMassageAddressResponseProto, :paypalMassageAddressResponse, 36 2956 | optional ::ApkDownloader::ProtocolBuffers::GetAddressSnippetResponseProto, :getAddressSnippetResponse, 37 2957 | end 2958 | 2959 | class StatusBarNotificationProto < ::ProtocolBuffers::Message 2960 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.StatusBarNotificationProto" 2961 | 2962 | optional :string, :tickerText, 1 2963 | optional :string, :contentTitle, 2 2964 | optional :string, :contentText, 3 2965 | end 2966 | 2967 | class UninstallReasonRequestProto < ::ProtocolBuffers::Message 2968 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.UninstallReasonRequestProto" 2969 | 2970 | optional :string, :assetId, 1 2971 | optional :int32, :reason, 2 2972 | end 2973 | 2974 | class UninstallReasonResponseProto < ::ProtocolBuffers::Message 2975 | set_fully_qualified_name "ApkDownloader.ProtocolBuffers.UninstallReasonResponseProto" 2976 | 2977 | end 2978 | 2979 | end 2980 | end 2981 | --------------------------------------------------------------------------------