message AckNotificationResponse { } message AndroidAppDeliveryData { optional int64 downloadSize = 1; optional string signature = 2; optional string downloadUrl = 3; repeated AppFileMetadata additionalFile = 4; repeated HttpCookie downloadAuthCookie = 5; optional bool forwardLocked = 6; optional int64 refundTimeout = 7; optional bool serverInitiated = 8; optional int64 postInstallRefundWindowMillis = 9; optional bool immediateStartNeeded = 10; optional AndroidAppPatchData patchData = 11; optional EncryptionParams encryptionParams = 12; } message AndroidAppPatchData { optional int32 baseVersionCode = 1; optional string baseSignature = 2; optional string downloadUrl = 3; optional int32 patchFormat = 4; optional int64 maxPatchSize = 5; } message AppFileMetadata { optional int32 fileType = 1; optional int32 versionCode = 2; optional int64 size = 3; optional string downloadUrl = 4; } message EncryptionParams { optional int32 version = 1; optional string encryptionKey = 2; optional string hmacKey = 3; } message HttpCookie { optional string name = 1; optional string value = 2; } message Address { optional string name = 1; optional string addressLine1 = 2; optional string addressLine2 = 3; optional string city = 4; optional string state = 5; optional string postalCode = 6; optional string postalCountry = 7; optional string dependentLocality = 8; optional string sortingCode = 9; optional string languageCode = 10; optional string phoneNumber = 11; optional bool isReduced = 12; optional string firstName = 13; optional string lastName = 14; optional string email = 15; } message BookAuthor { optional string name = 1; optional string deprecatedQuery = 2; optional Docid docid = 3; } message BookDetails { repeated BookSubject subject = 3; optional string publisher = 4; optional string publicationDate = 5; optional string isbn = 6; optional int32 numberOfPages = 7; optional string subtitle = 8; repeated BookAuthor author = 9; optional string readerUrl = 10; optional string downloadEpubUrl = 11; optional string downloadPdfUrl = 12; optional string acsEpubTokenUrl = 13; optional string acsPdfTokenUrl = 14; optional bool epubAvailable = 15; optional bool pdfAvailable = 16; optional string aboutTheAuthor = 17; repeated group Identifier = 18 { optional int32 type = 19; optional string identifier = 20; } } message BookSubject { optional string name = 1; optional string query = 2; optional string subjectId = 3; } message BrowseLink { optional string name = 1; optional string dataUrl = 3; } message BrowseResponse { optional string contentsUrl = 1; optional string promoUrl = 2; repeated BrowseLink category = 3; repeated BrowseLink breadcrumb = 4; } message AddressChallenge { optional string responseAddressParam = 1; optional string responseCheckboxesParam = 2; optional string title = 3; optional string descriptionHtml = 4; repeated FormCheckbox checkbox = 5; optional Address address = 6; repeated InputValidationError errorInputField = 7; optional string errorHtml = 8; repeated int32 requiredField = 9; } message AuthenticationChallenge { optional int32 authenticationType = 1; optional string responseAuthenticationTypeParam = 2; optional string responseRetryCountParam = 3; optional string pinHeaderText = 4; optional string pinDescriptionTextHtml = 5; optional string gaiaHeaderText = 6; optional string gaiaDescriptionTextHtml = 7; } message BuyResponse { optional PurchaseNotificationResponse purchaseResponse = 1; optional group CheckoutInfo = 2 { optional LineItem item = 3; repeated LineItem subItem = 4; repeated group CheckoutOption = 5 { optional string formOfPayment = 6; optional string encodedAdjustedCart = 7; optional string instrumentId = 15; repeated LineItem item = 16; repeated LineItem subItem = 17; optional LineItem total = 18; repeated string footerHtml = 19; optional int32 instrumentFamily = 29; repeated int32 deprecatedInstrumentInapplicableReason = 30; optional bool selectedInstrument = 32; optional LineItem summary = 33; repeated string footnoteHtml = 35; optional Instrument instrument = 43; optional string purchaseCookie = 45; repeated string disabledReason = 48; } optional string deprecatedCheckoutUrl = 10; optional string addInstrumentUrl = 11; repeated string footerHtml = 20; repeated int32 eligibleInstrumentFamily = 31; repeated string footnoteHtml = 36; repeated Instrument eligibleInstrument = 44; } optional string continueViaUrl = 8; optional string purchaseStatusUrl = 9; optional string checkoutServiceId = 12; optional bool checkoutTokenRequired = 13; optional string baseCheckoutUrl = 14; repeated string tosCheckboxHtml = 37; optional int32 iabPermissionError = 38; optional PurchaseStatusResponse purchaseStatusResponse = 39; optional string purchaseCookie = 46; optional Challenge challenge = 49; } message Challenge { optional AddressChallenge addressChallenge = 1; optional AuthenticationChallenge authenticationChallenge = 2; } message FormCheckbox { optional string description = 1; optional bool checked = 2; optional bool required = 3; } message LineItem { optional string name = 1; optional string description = 2; optional Offer offer = 3; optional Money amount = 4; } message Money { optional int64 micros = 1; optional string currencyCode = 2; optional string formattedAmount = 3; } message PurchaseNotificationResponse { optional int32 status = 1; optional DebugInfo debugInfo = 2; optional string localizedErrorMessage = 3; optional string purchaseId = 4; } message PurchaseStatusResponse { optional int32 status = 1; optional string statusMsg = 2; optional string statusTitle = 3; optional string briefMessage = 4; optional string infoUrl = 5; optional LibraryUpdate libraryUpdate = 6; optional Instrument rejectedInstrument = 7; optional AndroidAppDeliveryData appDeliveryData = 8; } message CheckInstrumentResponse { optional bool userHasValidInstrument = 1; optional bool checkoutTokenRequired = 2; repeated Instrument instrument = 4; repeated Instrument eligibleInstrument = 5; } message UpdateInstrumentRequest { optional Instrument instrument = 1; optional string checkoutToken = 2; } message UpdateInstrumentResponse { optional int32 result = 1; optional string instrumentId = 2; optional string userMessageHtml = 3; repeated InputValidationError errorInputField = 4; optional bool checkoutTokenRequired = 5; optional RedeemedPromoOffer redeemedOffer = 6; } message InitiateAssociationResponse { optional string userToken = 1; } message VerifyAssociationResponse { optional int32 status = 1; optional Address billingAddress = 2; optional CarrierTos carrierTos = 3; } message AddCreditCardPromoOffer { optional string headerText = 1; optional string descriptionHtml = 2; optional Image image = 3; optional string introductoryTextHtml = 4; optional string offerTitle = 5; optional string noActionDescription = 6; optional string termsAndConditionsHtml = 7; } message AvailablePromoOffer { optional AddCreditCardPromoOffer addCreditCardOffer = 1; } message CheckPromoOfferResponse { repeated AvailablePromoOffer availableOffer = 1; optional RedeemedPromoOffer redeemedOffer = 2; optional bool checkoutTokenRequired = 3; } message RedeemedPromoOffer { optional string headerText = 1; optional string descriptionHtml = 2; optional Image image = 3; } message Docid { optional string backendDocid = 1; optional int32 type = 2; optional int32 backend = 3; } message Install { optional fixed64 androidId = 1; optional int32 version = 2; optional bool bundled = 3; } message Offer { optional int64 micros = 1; optional string currencyCode = 2; optional string formattedAmount = 3; repeated Offer convertedPrice = 4; optional bool checkoutFlowRequired = 5; optional int64 fullPriceMicros = 6; optional string formattedFullAmount = 7; optional int32 offerType = 8; optional RentalTerms rentalTerms = 9; optional int64 onSaleDate = 10; repeated string promotionLabel = 11; optional SubscriptionTerms subscriptionTerms = 12; optional string formattedName = 13; optional string formattedDescription = 14; } message OwnershipInfo { optional int64 initiationTimestampMsec = 1; optional int64 validUntilTimestampMsec = 2; optional bool autoRenewing = 3; optional int64 refundTimeoutTimestampMsec = 4; optional int64 postDeliveryRefundWindowMsec = 5; } message RentalTerms { optional int32 grantPeriodSeconds = 1; optional int32 activatePeriodSeconds = 2; } message SubscriptionTerms { optional TimePeriod recurringPeriod = 1; optional TimePeriod trialPeriod = 2; } message TimePeriod { optional int32 unit = 1; optional int32 count = 2; } message BillingAddressSpec { optional int32 billingAddressType = 1; repeated int32 requiredField = 2; } message CarrierBillingCredentials { optional string value = 1; optional int64 expiration = 2; } message CarrierBillingInstrument { optional string instrumentKey = 1; optional string accountType = 2; optional string currencyCode = 3; optional int64 transactionLimit = 4; optional string subscriberIdentifier = 5; optional EncryptedSubscriberInfo encryptedSubscriberInfo = 6; optional CarrierBillingCredentials credentials = 7; optional CarrierTos acceptedCarrierTos = 8; } message CarrierBillingInstrumentStatus { optional CarrierTos carrierTos = 1; optional bool associationRequired = 2; optional bool passwordRequired = 3; optional PasswordPrompt carrierPasswordPrompt = 4; optional int32 apiVersion = 5; optional string name = 6; } message CarrierTos { optional CarrierTosEntry dcbTos = 1; optional CarrierTosEntry piiTos = 2; optional bool needsDcbTosAcceptance = 3; optional bool needsPiiTosAcceptance = 4; } message CarrierTosEntry { optional string url = 1; optional string version = 2; } message CreditCardInstrument { optional int32 type = 1; optional string escrowHandle = 2; optional string lastDigits = 3; optional int32 expirationMonth = 4; optional int32 expirationYear = 5; repeated EfeParam escrowEfeParam = 6; } message EfeParam { optional int32 key = 1; optional string value = 2; } message InputValidationError { optional int32 inputField = 1; optional string errorMessage = 2; } message Instrument { optional string instrumentId = 1; optional Address billingAddress = 2; optional CreditCardInstrument creditCard = 3; optional CarrierBillingInstrument carrierBilling = 4; optional BillingAddressSpec billingAddressSpec = 5; optional int32 instrumentFamily = 6; optional CarrierBillingInstrumentStatus carrierBillingStatus = 7; optional string displayTitle = 8; } message PasswordPrompt { optional string prompt = 1; optional string forgotPasswordUrl = 2; } message ContainerMetadata { optional string browseUrl = 1; optional string nextPageUrl = 2; optional double relevance = 3; optional int64 estimatedResults = 4; optional string analyticsCookie = 5; optional bool ordered = 6; } message FlagContentResponse { } message DebugInfo { repeated string message = 1; repeated group Timing = 2 { optional string name = 3; optional double timeInMs = 4; } } message DeliveryResponse { optional int32 status = 1; optional AndroidAppDeliveryData appDeliveryData = 2; } message BulkDetailsEntry { optional DocV2 doc = 1; } message BulkDetailsRequest { repeated string docid = 1; optional bool includeChildDocs = 2; } message BulkDetailsResponse { repeated BulkDetailsEntry entry = 1; } message DetailsResponse { optional DocV1 docV1 = 1; optional string analyticsCookie = 2; optional Review userReview = 3; optional DocV2 docV2 = 4; optional string footerHtml = 5; } message DeviceConfigurationProto { optional int32 touchScreen = 1; optional int32 keyboard = 2; optional int32 navigation = 3; optional int32 screenLayout = 4; optional bool hasHardKeyboard = 5; optional bool hasFiveWayNavigation = 6; optional int32 screenDensity = 7; optional int32 glEsVersion = 8; repeated string systemSharedLibrary = 9; repeated string systemAvailableFeature = 10; repeated string nativePlatform = 11; optional int32 screenWidth = 12; optional int32 screenHeight = 13; repeated string systemSupportedLocale = 14; repeated string glExtension = 15; optional int32 deviceClass = 16; optional int32 maxApkDownloadSizeMb = 17; } message Document { optional Docid docid = 1; optional Docid fetchDocid = 2; optional Docid sampleDocid = 3; optional string title = 4; optional string url = 5; repeated string snippet = 6; optional Offer priceDeprecated = 7; optional Availability availability = 9; repeated Image image = 10; repeated Document child = 11; optional AggregateRating aggregateRating = 13; repeated Offer offer = 14; repeated TranslatedText translatedSnippet = 15; repeated DocumentVariant documentVariant = 16; repeated string categoryId = 17; repeated Document decoration = 18; repeated Document parent = 19; optional string privacyPolicyUrl = 20; } message DocumentVariant { optional int32 variationType = 1; optional Rule rule = 2; optional string title = 3; repeated string snippet = 4; optional string recentChanges = 5; repeated TranslatedText autoTranslation = 6; repeated Offer offer = 7; optional int64 channelId = 9; repeated Document child = 10; repeated Document decoration = 11; } message Image { optional int32 imageType = 1; optional group Dimension = 2 { optional int32 width = 3; optional int32 height = 4; } optional string imageUrl = 5; optional string altTextLocalized = 6; optional string secureUrl = 7; optional int32 positionInSequence = 8; optional bool supportsFifeUrlOptions = 9; optional group Citation = 10 { optional string titleLocalized = 11; optional string url = 12; } } message TranslatedText { optional string text = 1; optional string sourceLocale = 2; optional string targetLocale = 3; } message Badge { optional string title = 1; repeated Image image = 2; optional string browseUrl = 3; } message ContainerWithBanner { optional string colorThemeArgb = 1; } message DealOfTheDay { optional string featuredHeader = 1; optional string colorThemeArgb = 2; } message EditorialSeriesContainer { optional string seriesTitle = 1; optional string seriesSubtitle = 2; optional string episodeTitle = 3; optional string episodeSubtitle = 4; optional string colorThemeArgb = 5; } message Link { optional string uri = 1; } message PlusOneData { optional bool setByUser = 1; optional int64 total = 2; optional int64 circlesTotal = 3; repeated PlusPerson circlesPeople = 4; } message PlusPerson { optional string displayName = 2; optional string profileImageUrl = 4; } message PromotedDoc { optional string title = 1; optional string subtitle = 2; repeated Image image = 3; optional string descriptionHtml = 4; optional string detailsUrl = 5; } message Reason { optional string briefReason = 1; optional string detailedReason = 2; optional string uniqueId = 3; } message SectionMetadata { optional string header = 1; optional string listUrl = 2; optional string browseUrl = 3; optional string descriptionHtml = 4; } message SeriesAntenna { optional string seriesTitle = 1; optional string seriesSubtitle = 2; optional string episodeTitle = 3; optional string episodeSubtitle = 4; optional string colorThemeArgb = 5; optional SectionMetadata sectionTracks = 6; optional SectionMetadata sectionAlbums = 7; } message Template { optional SeriesAntenna seriesAntenna = 1; optional TileTemplate tileGraphic2X1 = 2; optional TileTemplate tileGraphic4X2 = 3; optional TileTemplate tileGraphicColoredTitle2X1 = 4; optional TileTemplate tileGraphicUpperLeftTitle2X1 = 5; optional TileTemplate tileDetailsReflectedGraphic2X2 = 6; optional TileTemplate tileFourBlock4X2 = 7; optional ContainerWithBanner containerWithBanner = 8; optional DealOfTheDay dealOfTheDay = 9; optional TileTemplate tileGraphicColoredTitle4X2 = 10; optional EditorialSeriesContainer editorialSeriesContainer = 11; } message TileTemplate { optional string colorThemeArgb = 1; optional string colorTextArgb = 2; } message Warning { optional string localizedMessage = 1; } message AlbumDetails { optional string name = 1; optional MusicDetails details = 2; optional ArtistDetails displayArtist = 3; } message AppDetails { optional string developerName = 1; optional int32 majorVersionNumber = 2; optional int32 versionCode = 3; optional string versionString = 4; optional string title = 5; repeated string appCategory = 7; optional int32 contentRating = 8; optional int64 installationSize = 9; repeated string permission = 10; optional string developerEmail = 11; optional string developerWebsite = 12; optional string numDownloads = 13; optional string packageName = 14; optional string recentChangesHtml = 15; optional string uploadDate = 16; repeated FileMetadata file = 17; optional string appType = 18; } message ArtistDetails { optional string detailsUrl = 1; optional string name = 2; optional ArtistExternalLinks externalLinks = 3; } message ArtistExternalLinks { repeated string websiteUrl = 1; optional string googlePlusProfileUrl = 2; optional string youtubeChannelUrl = 3; } message DocumentDetails { optional AppDetails appDetails = 1; optional AlbumDetails albumDetails = 2; optional ArtistDetails artistDetails = 3; optional SongDetails songDetails = 4; optional BookDetails bookDetails = 5; optional VideoDetails videoDetails = 6; optional SubscriptionDetails subscriptionDetails = 7; optional MagazineDetails magazineDetails = 8; optional TvShowDetails tvShowDetails = 9; optional TvSeasonDetails tvSeasonDetails = 10; optional TvEpisodeDetails tvEpisodeDetails = 11; } message FileMetadata { optional int32 fileType = 1; optional int32 versionCode = 2; optional int64 size = 3; } message MagazineDetails { optional string parentDetailsUrl = 1; optional string deviceAvailabilityDescriptionHtml = 2; optional string psvDescription = 3; optional string deliveryFrequencyDescription = 4; } message MusicDetails { optional int32 censoring = 1; optional int32 durationSec = 2; optional string originalReleaseDate = 3; optional string label = 4; repeated ArtistDetails artist = 5; repeated string genre = 6; optional string releaseDate = 7; repeated int32 releaseType = 8; } message SongDetails { optional string name = 1; optional MusicDetails details = 2; optional string albumName = 3; optional int32 trackNumber = 4; optional string previewUrl = 5; optional ArtistDetails displayArtist = 6; } message SubscriptionDetails { optional int32 subscriptionPeriod = 1; } message Trailer { optional string trailerId = 1; optional string title = 2; optional string thumbnailUrl = 3; optional string watchUrl = 4; optional string duration = 5; } message TvEpisodeDetails { optional string parentDetailsUrl = 1; optional int32 episodeIndex = 2; optional string releaseDate = 3; } message TvSeasonDetails { optional string parentDetailsUrl = 1; optional int32 seasonIndex = 2; optional string releaseDate = 3; optional string broadcaster = 4; } message TvShowDetails { optional int32 seasonCount = 1; optional int32 startYear = 2; optional int32 endYear = 3; optional string broadcaster = 4; } message VideoCredit { optional int32 creditType = 1; optional string credit = 2; repeated string name = 3; } message VideoDetails { repeated VideoCredit credit = 1; optional string duration = 2; optional string releaseDate = 3; optional string contentRating = 4; optional int64 likes = 5; optional int64 dislikes = 6; repeated string genre = 7; repeated Trailer trailer = 8; repeated VideoRentalTerm rentalTerm = 9; } message VideoRentalTerm { optional int32 offerType = 1; optional string offerAbbreviation = 2; optional string rentalHeader = 3; repeated group Term = 4 { optional string header = 5; optional string body = 6; } } message Bucket { repeated DocV1 document = 1; optional bool multiCorpus = 2; optional string title = 3; optional string iconUrl = 4; optional string fullContentsUrl = 5; optional double relevance = 6; optional int64 estimatedResults = 7; optional string analyticsCookie = 8; optional string fullContentsListUrl = 9; optional string nextPageUrl = 10; optional bool ordered = 11; } message ListResponse { repeated Bucket bucket = 1; repeated DocV2 doc = 2; } message DocV1 { optional Document finskyDoc = 1; optional string docid = 2; optional string detailsUrl = 3; optional string reviewsUrl = 4; optional string relatedListUrl = 5; optional string moreByListUrl = 6; optional string shareUrl = 7; optional string creator = 8; optional DocumentDetails details = 9; optional string descriptionHtml = 10; optional string relatedBrowseUrl = 11; optional string moreByBrowseUrl = 12; optional string relatedHeader = 13; optional string moreByHeader = 14; optional string title = 15; optional PlusOneData plusOneData = 16; optional string warningMessage = 17; } message Annotations { optional SectionMetadata sectionRelated = 1; optional SectionMetadata sectionMoreBy = 2; optional PlusOneData plusOneData = 3; repeated Warning warning = 4; optional SectionMetadata sectionBodyOfWork = 5; optional SectionMetadata sectionCoreContent = 6; optional Template template = 7; repeated Badge badgeForCreator = 8; repeated Badge badgeForDoc = 9; optional Link link = 10; optional SectionMetadata sectionCrossSell = 11; optional SectionMetadata sectionRelatedDocType = 12; repeated PromotedDoc promotedDoc = 13; optional string offerNote = 14; repeated DocV2 subscription = 16; optional Reason reason = 17; optional string privacyPolicyUrl = 18; } message DocV2 { optional string docid = 1; optional string backendDocid = 2; optional int32 docType = 3; optional int32 backendId = 4; optional string title = 5; optional string creator = 6; optional string descriptionHtml = 7; repeated Offer offer = 8; optional Availability availability = 9; repeated Image image = 10; repeated DocV2 child = 11; optional ContainerMetadata containerMetadata = 12; optional DocumentDetails details = 13; optional AggregateRating aggregateRating = 14; optional Annotations annotations = 15; optional string detailsUrl = 16; optional string shareUrl = 17; optional string reviewsUrl = 18; optional string backendUrl = 19; optional string purchaseDetailsUrl = 20; optional bool detailsReusable = 21; optional string subtitle = 22; } message EncryptedSubscriberInfo { optional string data = 1; optional string encryptedKey = 2; optional string signature = 3; optional string initVector = 4; optional int32 googleKeyVersion = 5; optional int32 carrierKeyVersion = 6; } message Availability { optional int32 restriction = 5; optional int32 offerType = 6; optional Rule rule = 7; repeated group PerDeviceAvailabilityRestriction = 9 { optional fixed64 androidId = 10; optional int32 deviceRestriction = 11; optional int64 channelId = 12; optional FilterEvaluationInfo filterInfo = 15; } optional bool availableIfOwned = 13; repeated Install install = 14; optional FilterEvaluationInfo filterInfo = 16; optional OwnershipInfo ownershipInfo = 17; } message FilterEvaluationInfo { repeated RuleEvaluation ruleEvaluation = 1; } message Rule { optional bool negate = 1; optional int32 operator = 2; optional int32 key = 3; repeated string stringArg = 4; repeated int64 longArg = 5; repeated double doubleArg = 6; repeated Rule subrule = 7; optional int32 responseCode = 8; optional string comment = 9; repeated fixed64 stringArgHash = 10; repeated int32 constArg = 11; } message RuleEvaluation { optional Rule rule = 1; repeated string actualStringValue = 2; repeated int64 actualLongValue = 3; repeated bool actualBoolValue = 4; repeated double actualDoubleValue = 5; } message LibraryAppDetails { optional string certificateHash = 2; optional int64 refundTimeoutTimestampMsec = 3; optional int64 postDeliveryRefundWindowMsec = 4; } message LibraryMutation { optional Docid docid = 1; optional int32 offerType = 2; optional int64 documentHash = 3; optional bool deleted = 4; optional LibraryAppDetails appDetails = 5; optional LibrarySubscriptionDetails subscriptionDetails = 6; } message LibrarySubscriptionDetails { optional int64 initiationTimestampMsec = 1; optional int64 validUntilTimestampMsec = 2; optional bool autoRenewing = 3; optional int64 trialUntilTimestampMsec = 4; } message LibraryUpdate { optional int32 status = 1; optional int32 corpus = 2; optional bytes serverToken = 3; repeated LibraryMutation mutation = 4; optional bool hasMore = 5; optional string libraryId = 6; } message ClientLibraryState { optional int32 corpus = 1; optional bytes serverToken = 2; optional int64 hashCodeSum = 3; optional int32 librarySize = 4; } message LibraryReplicationRequest { repeated ClientLibraryState libraryState = 1; } message LibraryReplicationResponse { repeated LibraryUpdate update = 1; } message ClickLogEvent { optional int64 eventTime = 1; optional string url = 2; optional string listId = 3; optional string referrerUrl = 4; optional string referrerListId = 5; } message LogRequest { repeated ClickLogEvent clickEvent = 1; } message LogResponse { } message AndroidAppNotificationData { optional int32 versionCode = 1; optional string assetId = 2; } message InAppNotificationData { optional string checkoutOrderId = 1; optional string inAppNotificationId = 2; } message LibraryDirtyData { optional int32 backend = 1; } message Notification { optional int32 notificationType = 1; optional int64 timestamp = 3; optional Docid docid = 4; optional string docTitle = 5; optional string userEmail = 6; optional AndroidAppNotificationData appData = 7; optional AndroidAppDeliveryData appDeliveryData = 8; optional PurchaseRemovalData purchaseRemovalData = 9; optional UserNotificationData userNotificationData = 10; optional InAppNotificationData inAppNotificationData = 11; optional PurchaseDeclinedData purchaseDeclinedData = 12; optional string notificationId = 13; optional LibraryUpdate libraryUpdate = 14; optional LibraryDirtyData libraryDirtyData = 15; } message PurchaseDeclinedData { optional int32 reason = 1; optional bool showNotification = 2; } message PurchaseRemovalData { optional bool malicious = 1; } message UserNotificationData { optional string notificationTitle = 1; optional string notificationText = 2; optional string tickerText = 3; optional string dialogTitle = 4; optional string dialogText = 5; } message PlusOneResponse { } message RateSuggestedContentResponse { } message AggregateRating { optional int32 type = 1; optional float starRating = 2; optional uint64 ratingsCount = 3; optional uint64 oneStarRatings = 4; optional uint64 twoStarRatings = 5; optional uint64 threeStarRatings = 6; optional uint64 fourStarRatings = 7; optional uint64 fiveStarRatings = 8; optional uint64 thumbsUpCount = 9; optional uint64 thumbsDownCount = 10; optional uint64 commentCount = 11; optional double bayesianMeanRating = 12; } message DirectPurchase { optional string detailsUrl = 1; optional string purchaseDocid = 2; optional string parentDocid = 3; optional int32 offerType = 4; } message ResolveLinkResponse { optional string detailsUrl = 1; optional string browseUrl = 2; optional string searchUrl = 3; optional DirectPurchase directPurchase = 4; optional string homeUrl = 5; } message Payload { optional ListResponse listResponse = 1; optional DetailsResponse detailsResponse = 2; optional ReviewResponse reviewResponse = 3; optional BuyResponse buyResponse = 4; optional SearchResponse searchResponse = 5; optional TocResponse tocResponse = 6; optional BrowseResponse browseResponse = 7; optional PurchaseStatusResponse purchaseStatusResponse = 8; optional UpdateInstrumentResponse updateInstrumentResponse = 9; optional LogResponse logResponse = 10; optional CheckInstrumentResponse checkInstrumentResponse = 11; optional PlusOneResponse plusOneResponse = 12; optional FlagContentResponse flagContentResponse = 13; optional AckNotificationResponse ackNotificationResponse = 14; optional InitiateAssociationResponse initiateAssociationResponse = 15; optional VerifyAssociationResponse verifyAssociationResponse = 16; optional LibraryReplicationResponse libraryReplicationResponse = 17; optional RevokeResponse revokeResponse = 18; optional BulkDetailsResponse bulkDetailsResponse = 19; optional ResolveLinkResponse resolveLinkResponse = 20; optional DeliveryResponse deliveryResponse = 21; optional AcceptTosResponse acceptTosResponse = 22; optional RateSuggestedContentResponse rateSuggestedContentResponse = 23; optional CheckPromoOfferResponse checkPromoOfferResponse = 24; } message PreFetch { optional string url = 1; optional bytes response = 2; optional string etag = 3; optional int64 ttl = 4; optional int64 softTtl = 5; } message ResponseWrapper { optional Payload payload = 1; optional ServerCommands commands = 2; repeated PreFetch preFetch = 3; repeated Notification notification = 4; } message ServerCommands { optional bool clearCache = 1; optional string displayErrorMessage = 2; optional string logErrorStacktrace = 3; } message GetReviewsResponse { repeated Review review = 1; optional int64 matchingCount = 2; } message Review { optional string authorName = 1; optional string url = 2; optional string source = 3; optional string documentVersion = 4; optional int64 timestampMsec = 5; optional int32 starRating = 6; optional string title = 7; optional string comment = 8; optional string commentId = 9; optional string deviceName = 19; optional string replyText = 29; optional int64 replyTimestampMsec = 30; } message ReviewResponse { optional GetReviewsResponse getResponse = 1; optional string nextPageUrl = 2; } message RevokeResponse { optional LibraryUpdate libraryUpdate = 1; } message RelatedSearch { optional string searchUrl = 1; optional string header = 2; optional int32 backendId = 3; optional int32 docType = 4; optional bool current = 5; } message SearchResponse { optional string originalQuery = 1; optional string suggestedQuery = 2; optional bool aggregateQuery = 3; repeated Bucket bucket = 4; repeated DocV2 doc = 5; repeated RelatedSearch relatedSearch = 6; } message CorpusMetadata { optional int32 backend = 1; optional string name = 2; optional string landingUrl = 3; optional string libraryName = 4; } message Experiments { repeated string experimentId = 1; } message TocResponse { repeated CorpusMetadata corpus = 1; optional int32 tosVersionDeprecated = 2; optional string tosContent = 3; optional string homeUrl = 4; optional Experiments experiments = 5; optional string tosCheckboxTextMarketingEmails = 6; optional string tosToken = 7; optional UserSettings userSettings = 8; optional string iconOverrideUrl = 9; } message UserSettings { optional bool tosCheckboxMarketingEmailsOptedIn = 1; } message AcceptTosResponse { } message AckNotificationsRequestProto { repeated string notificationId = 1; optional SignatureHashProto signatureHash = 2; repeated string nackNotificationId = 3; } message AckNotificationsResponseProto { } message AddressProto { optional string address1 = 1; optional string address2 = 2; optional string city = 3; optional string state = 4; optional string postalCode = 5; optional string country = 6; optional string name = 7; optional string type = 8; optional string phone = 9; } message AppDataProto { optional string key = 1; optional string value = 2; } message AppSuggestionProto { optional ExternalAssetProto assetInfo = 1; } message AssetIdentifierProto { optional string packageName = 1; optional int32 versionCode = 2; optional string assetId = 3; } message AssetsRequestProto { optional int32 assetType = 1; optional string query = 2; optional string categoryId = 3; repeated string assetId = 4; optional bool retrieveVendingHistory = 5; optional bool retrieveExtendedInfo = 6; optional int32 sortOrder = 7; optional int64 startIndex = 8; optional int64 numEntries = 9; optional int32 viewFilter = 10; optional string rankingType = 11; optional bool retrieveCarrierChannel = 12; repeated string pendingDownloadAssetId = 13; optional bool reconstructVendingHistory = 14; optional bool unfilteredResults = 15; repeated string badgeId = 16; } message AssetsResponseProto { repeated ExternalAssetProto asset = 1; optional int64 numTotalEntries = 2; optional string correctedQuery = 3; repeated ExternalAssetProto altAsset = 4; optional int64 numCorrectedEntries = 5; optional string header = 6; optional int32 listType = 7; } message BillingEventRequestProto { optional int32 eventType = 1; optional string billingParametersId = 2; optional bool resultSuccess = 3; optional string clientMessage = 4; optional ExternalCarrierBillingInstrumentProto carrierInstrument = 5; } message BillingEventResponseProto { } message BillingParameterProto { optional string id = 1; optional string name = 2; repeated string mncMcc = 3; repeated string backendUrl = 4; optional string iconId = 5; optional int32 billingInstrumentType = 6; optional string applicationId = 7; optional string tosUrl = 8; optional bool instrumentTosRequired = 9; optional int32 apiVersion = 10; optional bool perTransactionCredentialsRequired = 11; optional bool sendSubscriberIdWithCarrierBillingRequests = 12; optional int32 deviceAssociationMethod = 13; optional string userTokenRequestMessage = 14; optional string userTokenRequestAddress = 15; optional bool passphraseRequired = 16; } message CarrierBillingCredentialsProto { optional string credentials = 1; optional int64 credentialsTimeout = 2; } message CategoryProto { optional int32 assetType = 2; optional string categoryId = 3; optional string categoryDisplay = 4; optional string categorySubtitle = 5; repeated string promotedAssetsNew = 6; repeated string promotedAssetsHome = 7; repeated CategoryProto subCategories = 8; repeated string promotedAssetsPaid = 9; repeated string promotedAssetsFree = 10; } message CheckForNotificationsRequestProto { optional int64 alarmDuration = 1; } message CheckForNotificationsResponseProto { } message CheckLicenseRequestProto { optional string packageName = 1; optional int32 versionCode = 2; optional int64 nonce = 3; } message CheckLicenseResponseProto { optional int32 responseCode = 1; optional string signedData = 2; optional string signature = 3; } message CommentsRequestProto { optional string assetId = 1; optional int64 startIndex = 2; optional int64 numEntries = 3; optional bool shouldReturnSelfComment = 4; optional string assetReferrer = 5; } message CommentsResponseProto { repeated ExternalCommentProto comment = 1; optional int64 numTotalEntries = 2; optional ExternalCommentProto selfComment = 3; } message ContentSyncRequestProto { optional bool incremental = 1; repeated group AssetInstallState = 2 { optional string assetId = 3; optional int32 assetState = 4; optional int64 installTime = 5; optional int64 uninstallTime = 6; optional string packageName = 7; optional int32 versionCode = 8; optional string assetReferrer = 9; } repeated group SystemApp = 10 { optional string packageName = 11; optional int32 versionCode = 12; repeated string certificateHash = 13; } optional int32 sideloadedAppCount = 14; } message ContentSyncResponseProto { optional int32 numUpdatesAvailable = 1; } message DataMessageProto { optional string category = 1; repeated AppDataProto appData = 3; } message DownloadInfoProto { optional int64 apkSize = 1; repeated FileMetadataProto additionalFile = 2; } message ExternalAssetProto { optional string id = 1; optional string title = 2; optional int32 assetType = 3; optional string owner = 4; optional string version = 5; optional string price = 6; optional string averageRating = 7; optional int64 numRatings = 8; optional group PurchaseInformation = 9 { optional int64 purchaseTime = 10; optional int64 refundTimeoutTime = 11; optional int32 refundStartPolicy = 45; optional int64 refundWindowDuration = 46; } optional group ExtendedInfo = 12 { optional string description = 13; optional int64 downloadCount = 14; repeated string applicationPermissionId = 15; optional int64 requiredInstallationSize = 16; optional string packageName = 17; optional string category = 18; optional bool forwardLocked = 19; optional string contactEmail = 20; optional bool everInstalledByUser = 21; optional string downloadCountString = 23; optional string contactPhone = 26; optional string contactWebsite = 27; optional bool nextPurchaseRefundable = 28; optional int32 numScreenshots = 30; optional string promotionalDescription = 31; optional int32 serverAssetState = 34; optional int32 contentRatingLevel = 36; optional string contentRatingString = 37; optional string recentChanges = 38; repeated group PackageDependency = 39 { optional string packageName = 41; optional bool skipPermissions = 42; } optional string videoLink = 43; optional DownloadInfoProto downloadInfo = 49; } optional string ownerId = 22; optional string packageName = 24; optional int32 versionCode = 25; optional bool bundledAsset = 29; optional string priceCurrency = 32; optional int64 priceMicros = 33; optional string filterReason = 35; optional string actualSellerPrice = 40; repeated ExternalBadgeProto appBadge = 47; repeated ExternalBadgeProto ownerBadge = 48; } message ExternalBadgeImageProto { optional int32 usage = 1; optional string url = 2; } message ExternalBadgeProto { optional string localizedTitle = 1; optional string localizedDescription = 2; repeated ExternalBadgeImageProto badgeImage = 3; optional string searchId = 4; } message ExternalCarrierBillingInstrumentProto { optional string instrumentKey = 1; optional string subscriberIdentifier = 2; optional string accountType = 3; optional string subscriberCurrency = 4; optional uint64 transactionLimit = 5; optional string subscriberName = 6; optional string address1 = 7; optional string address2 = 8; optional string city = 9; optional string state = 10; optional string postalCode = 11; optional string country = 12; optional EncryptedSubscriberInfo encryptedSubscriberInfo = 13; } message ExternalCommentProto { optional string body = 1; optional int32 rating = 2; optional string creatorName = 3; optional int64 creationTime = 4; optional string creatorId = 5; } message ExternalCreditCard { optional string type = 1; optional string lastDigits = 2; optional int32 expYear = 3; optional int32 expMonth = 4; optional string personName = 5; optional string countryCode = 6; optional string postalCode = 7; optional bool makeDefault = 8; optional string address1 = 9; optional string address2 = 10; optional string city = 11; optional string state = 12; optional string phone = 13; } message ExternalPaypalInstrumentProto { optional string instrumentKey = 1; optional string preapprovalKey = 2; optional string paypalEmail = 3; optional AddressProto paypalAddress = 4; optional bool multiplePaypalInstrumentsSupported = 5; } message FileMetadataProto { optional int32 fileType = 1; optional int32 versionCode = 2; optional int64 size = 3; optional string downloadUrl = 4; } message GetAddressSnippetRequestProto { optional EncryptedSubscriberInfo encryptedSubscriberInfo = 1; } message GetAddressSnippetResponseProto { optional string addressSnippet = 1; } message GetAssetRequestProto { optional string assetId = 1; optional string directDownloadKey = 2; } message GetAssetResponseProto { optional group InstallAsset = 1 { optional string assetId = 2; optional string assetName = 3; optional string assetType = 4; optional string assetPackage = 5; optional string blobUrl = 6; optional string assetSignature = 7; optional int64 assetSize = 8; optional int64 refundTimeoutMillis = 9; optional bool forwardLocked = 10; optional bool secured = 11; optional int32 versionCode = 12; optional string downloadAuthCookieName = 13; optional string downloadAuthCookieValue = 14; optional int64 postInstallRefundWindowMillis = 16; } repeated FileMetadataProto additionalFile = 15; } message GetCarrierInfoRequestProto { } message GetCarrierInfoResponseProto { optional bool carrierChannelEnabled = 1; optional bytes carrierLogoIcon = 2; optional bytes carrierBanner = 3; optional string carrierSubtitle = 4; optional string carrierTitle = 5; optional int32 carrierImageDensity = 6; } message GetCategoriesRequestProto { optional bool prefetchPromoData = 1; } message GetCategoriesResponseProto { repeated CategoryProto categories = 1; } message GetImageRequestProto { optional string assetId = 1; optional int32 imageUsage = 3; optional string imageId = 4; optional int32 screenPropertyWidth = 5; optional int32 screenPropertyHeight = 6; optional int32 screenPropertyDensity = 7; optional int32 productType = 8; } message GetImageResponseProto { optional bytes imageData = 1; optional int32 imageDensity = 2; } message GetMarketMetadataRequestProto { optional int64 lastRequestTime = 1; optional DeviceConfigurationProto deviceConfiguration = 2; optional bool deviceRoaming = 3; repeated string marketSignatureHash = 4; optional int32 contentRating = 5; optional string deviceModelName = 6; optional string deviceManufacturerName = 7; } message GetMarketMetadataResponseProto { optional int32 latestClientVersionCode = 1; optional string latestClientUrl = 2; optional bool paidAppsEnabled = 3; repeated BillingParameterProto billingParameter = 4; optional bool commentPostEnabled = 5; optional bool billingEventsEnabled = 6; optional string warningMessage = 7; optional bool inAppBillingEnabled = 8; optional int32 inAppBillingMaxApiVersion = 9; } message GetSubCategoriesRequestProto { optional int32 assetType = 1; } message GetSubCategoriesResponseProto { repeated group SubCategory = 1 { optional string subCategoryDisplay = 2; optional string subCategoryId = 3; } } message InAppPurchaseInformationRequestProto { optional SignatureHashProto signatureHash = 1; optional int64 nonce = 2; repeated string notificationId = 3; optional string signatureAlgorithm = 4; optional int32 billingApiVersion = 5; } message InAppPurchaseInformationResponseProto { optional SignedDataProto signedResponse = 1; repeated StatusBarNotificationProto statusBarNotification = 2; optional PurchaseResultProto purchaseResult = 3; } message InAppRestoreTransactionsRequestProto { optional SignatureHashProto signatureHash = 1; optional int64 nonce = 2; optional string signatureAlgorithm = 3; optional int32 billingApiVersion = 4; } message InAppRestoreTransactionsResponseProto { optional SignedDataProto signedResponse = 1; optional PurchaseResultProto purchaseResult = 2; } /* message InputValidationError { optional int32 inputField = 1; optional string errorMessage = 2; } */ message ModifyCommentRequestProto { optional string assetId = 1; optional ExternalCommentProto comment = 2; optional bool deleteComment = 3; optional bool flagAsset = 4; optional int32 flagType = 5; optional string flagMessage = 6; optional bool nonFlagFlow = 7; } message ModifyCommentResponseProto { } message PaypalCountryInfoProto { optional bool birthDateRequired = 1; optional string tosText = 2; optional string billingAgreementText = 3; optional string preTosText = 4; } message PaypalCreateAccountRequestProto { optional string firstName = 1; optional string lastName = 2; optional AddressProto address = 3; optional string birthDate = 4; } message PaypalCreateAccountResponseProto { optional string createAccountKey = 1; } message PaypalCredentialsProto { optional string preapprovalKey = 1; optional string paypalEmail = 2; } message PaypalMassageAddressRequestProto { optional AddressProto address = 1; } message PaypalMassageAddressResponseProto { optional AddressProto address = 1; } message PaypalPreapprovalCredentialsRequestProto { optional string gaiaAuthToken = 1; optional string billingInstrumentId = 2; } message PaypalPreapprovalCredentialsResponseProto { optional int32 resultCode = 1; optional string paypalAccountKey = 2; optional string paypalEmail = 3; } message PaypalPreapprovalDetailsRequestProto { optional bool getAddress = 1; optional string preapprovalKey = 2; } message PaypalPreapprovalDetailsResponseProto { optional string paypalEmail = 1; optional AddressProto address = 2; } message PaypalPreapprovalRequestProto { } message PaypalPreapprovalResponseProto { optional string preapprovalKey = 1; } message PendingNotificationsProto { repeated DataMessageProto notification = 1; optional int64 nextCheckMillis = 2; } message PrefetchedBundleProto { optional SingleRequestProto request = 1; optional SingleResponseProto response = 2; } message PurchaseCartInfoProto { optional string itemPrice = 1; optional string taxInclusive = 2; optional string taxExclusive = 3; optional string total = 4; optional string taxMessage = 5; optional string footerMessage = 6; optional string priceCurrency = 7; optional int64 priceMicros = 8; } message PurchaseInfoProto { optional string transactionId = 1; optional PurchaseCartInfoProto cartInfo = 2; optional group BillingInstruments = 3 { repeated group BillingInstrument = 4 { optional string id = 5; optional string name = 6; optional bool isInvalid = 7; optional int32 instrumentType = 11; optional int32 instrumentStatus = 14; } optional string defaultBillingInstrumentId = 8; } repeated int32 errorInputFields = 9; optional string refundPolicy = 10; optional bool userCanAddGdd = 12; repeated int32 eligibleInstrumentTypes = 13; optional string orderId = 15; } message PurchaseMetadataRequestProto { optional bool deprecatedRetrieveBillingCountries = 1; optional int32 billingInstrumentType = 2; } message PurchaseMetadataResponseProto { optional group Countries = 1 { repeated group Country = 2 { optional string countryCode = 3; optional string countryName = 4; optional PaypalCountryInfoProto paypalCountryInfo = 5; optional bool allowsReducedBillingAddress = 6; repeated group InstrumentAddressSpec = 7 { optional int32 instrumentFamily = 8; optional BillingAddressSpec billingAddressSpec = 9; } } } } message PurchaseOrderRequestProto { optional string gaiaAuthToken = 1; optional string assetId = 2; optional string transactionId = 3; optional string billingInstrumentId = 4; optional bool tosAccepted = 5; optional CarrierBillingCredentialsProto carrierBillingCredentials = 6; optional string existingOrderId = 7; optional int32 billingInstrumentType = 8; optional string billingParametersId = 9; optional PaypalCredentialsProto paypalCredentials = 10; optional RiskHeaderInfoProto riskHeaderInfo = 11; optional int32 productType = 12; optional SignatureHashProto signatureHash = 13; optional string developerPayload = 14; } message PurchaseOrderResponseProto { optional int32 deprecatedResultCode = 1; optional PurchaseInfoProto purchaseInfo = 2; optional ExternalAssetProto asset = 3; optional PurchaseResultProto purchaseResult = 4; } message PurchasePostRequestProto { optional string gaiaAuthToken = 1; optional string assetId = 2; optional string transactionId = 3; optional group BillingInstrumentInfo = 4 { optional string billingInstrumentId = 5; optional ExternalCreditCard creditCard = 6; optional ExternalCarrierBillingInstrumentProto carrierInstrument = 9; optional ExternalPaypalInstrumentProto paypalInstrument = 10; } optional bool tosAccepted = 7; optional string cbInstrumentKey = 8; optional bool paypalAuthConfirmed = 11; optional int32 productType = 12; optional SignatureHashProto signatureHash = 13; } message PurchasePostResponseProto { optional int32 deprecatedResultCode = 1; optional PurchaseInfoProto purchaseInfo = 2; optional string termsOfServiceUrl = 3; optional string termsOfServiceText = 4; optional string termsOfServiceName = 5; optional string termsOfServiceCheckboxText = 6; optional string termsOfServiceHeaderText = 7; optional PurchaseResultProto purchaseResult = 8; } message PurchaseProductRequestProto { optional int32 productType = 1; optional string productId = 2; optional SignatureHashProto signatureHash = 3; } message PurchaseProductResponseProto { optional string title = 1; optional string itemTitle = 2; optional string itemDescription = 3; optional string merchantField = 4; } message PurchaseResultProto { optional int32 resultCode = 1; optional string resultCodeMessage = 2; } message QuerySuggestionProto { optional string query = 1; optional int32 estimatedNumResults = 2; optional int32 queryWeight = 3; } message QuerySuggestionRequestProto { optional string query = 1; optional int32 requestType = 2; } message QuerySuggestionResponseProto { repeated group Suggestion = 1 { optional AppSuggestionProto appSuggestion = 2; optional QuerySuggestionProto querySuggestion = 3; } optional int32 estimatedNumAppSuggestions = 4; optional int32 estimatedNumQuerySuggestions = 5; } message RateCommentRequestProto { optional string assetId = 1; optional string creatorId = 2; optional int32 commentRating = 3; } message RateCommentResponseProto { } message ReconstructDatabaseRequestProto { optional bool retrieveFullHistory = 1; } message ReconstructDatabaseResponseProto { repeated AssetIdentifierProto asset = 1; } message RefundRequestProto { optional string assetId = 1; } message RefundResponseProto { optional int32 result = 1; optional ExternalAssetProto asset = 2; optional string resultDetail = 3; } message RemoveAssetRequestProto { optional string assetId = 1; } message RequestPropertiesProto { optional string userAuthToken = 1; optional bool userAuthTokenSecure = 2; optional int32 softwareVersion = 3; optional string aid = 4; optional string productNameAndVersion = 5; optional string userLanguage = 6; optional string userCountry = 7; optional string operatorName = 8; optional string simOperatorName = 9; optional string operatorNumericName = 10; optional string simOperatorNumericName = 11; optional string clientId = 12; optional string loggingId = 13; } message RequestProto { optional RequestPropertiesProto requestProperties = 1; repeated group Request = 2 { optional RequestSpecificPropertiesProto requestSpecificProperties = 3; optional AssetsRequestProto assetRequest = 4; optional CommentsRequestProto commentsRequest = 5; optional ModifyCommentRequestProto modifyCommentRequest = 6; optional PurchasePostRequestProto purchasePostRequest = 7; optional PurchaseOrderRequestProto purchaseOrderRequest = 8; optional ContentSyncRequestProto contentSyncRequest = 9; optional GetAssetRequestProto getAssetRequest = 10; optional GetImageRequestProto getImageRequest = 11; optional RefundRequestProto refundRequest = 12; optional PurchaseMetadataRequestProto purchaseMetadataRequest = 13; optional GetSubCategoriesRequestProto subCategoriesRequest = 14; optional UninstallReasonRequestProto uninstallReasonRequest = 16; optional RateCommentRequestProto rateCommentRequest = 17; optional CheckLicenseRequestProto checkLicenseRequest = 18; optional GetMarketMetadataRequestProto getMarketMetadataRequest = 19; optional GetCategoriesRequestProto getCategoriesRequest = 21; optional GetCarrierInfoRequestProto getCarrierInfoRequest = 22; optional RemoveAssetRequestProto removeAssetRequest = 23; optional RestoreApplicationsRequestProto restoreApplicationsRequest = 24; optional QuerySuggestionRequestProto querySuggestionRequest = 25; optional BillingEventRequestProto billingEventRequest = 26; optional PaypalPreapprovalRequestProto paypalPreapprovalRequest = 27; optional PaypalPreapprovalDetailsRequestProto paypalPreapprovalDetailsRequest = 28; optional PaypalCreateAccountRequestProto paypalCreateAccountRequest = 29; optional PaypalPreapprovalCredentialsRequestProto paypalPreapprovalCredentialsRequest = 30; optional InAppRestoreTransactionsRequestProto inAppRestoreTransactionsRequest = 31; optional InAppPurchaseInformationRequestProto inAppPurchaseInformationRequest = 32; optional CheckForNotificationsRequestProto checkForNotificationsRequest = 33; optional AckNotificationsRequestProto ackNotificationsRequest = 34; optional PurchaseProductRequestProto purchaseProductRequest = 35; optional ReconstructDatabaseRequestProto reconstructDatabaseRequest = 36; optional PaypalMassageAddressRequestProto paypalMassageAddressRequest = 37; optional GetAddressSnippetRequestProto getAddressSnippetRequest = 38; } } message RequestSpecificPropertiesProto { optional string ifNoneMatch = 1; } message ResponsePropertiesProto { optional int32 result = 1; optional int32 maxAge = 2; optional string etag = 3; optional int32 serverVersion = 4; optional int32 maxAgeConsumable = 6; optional string errorMessage = 7; repeated InputValidationError errorInputField = 8; } message ResponseProto { repeated group Response = 1 { optional ResponsePropertiesProto responseProperties = 2; optional AssetsResponseProto assetsResponse = 3; optional CommentsResponseProto commentsResponse = 4; optional ModifyCommentResponseProto modifyCommentResponse = 5; optional PurchasePostResponseProto purchasePostResponse = 6; optional PurchaseOrderResponseProto purchaseOrderResponse = 7; optional ContentSyncResponseProto contentSyncResponse = 8; optional GetAssetResponseProto getAssetResponse = 9; optional GetImageResponseProto getImageResponse = 10; optional RefundResponseProto refundResponse = 11; optional PurchaseMetadataResponseProto purchaseMetadataResponse = 12; optional GetSubCategoriesResponseProto subCategoriesResponse = 13; optional UninstallReasonResponseProto uninstallReasonResponse = 15; optional RateCommentResponseProto rateCommentResponse = 16; optional CheckLicenseResponseProto checkLicenseResponse = 17; optional GetMarketMetadataResponseProto getMarketMetadataResponse = 18; repeated PrefetchedBundleProto prefetchedBundle = 19; optional GetCategoriesResponseProto getCategoriesResponse = 20; optional GetCarrierInfoResponseProto getCarrierInfoResponse = 21; optional RestoreApplicationsResponseProto restoreApplicationResponse = 23; optional QuerySuggestionResponseProto querySuggestionResponse = 24; optional BillingEventResponseProto billingEventResponse = 25; optional PaypalPreapprovalResponseProto paypalPreapprovalResponse = 26; optional PaypalPreapprovalDetailsResponseProto paypalPreapprovalDetailsResponse = 27; optional PaypalCreateAccountResponseProto paypalCreateAccountResponse = 28; optional PaypalPreapprovalCredentialsResponseProto paypalPreapprovalCredentialsResponse = 29; optional InAppRestoreTransactionsResponseProto inAppRestoreTransactionsResponse = 30; optional InAppPurchaseInformationResponseProto inAppPurchaseInformationResponse = 31; optional CheckForNotificationsResponseProto checkForNotificationsResponse = 32; optional AckNotificationsResponseProto ackNotificationsResponse = 33; optional PurchaseProductResponseProto purchaseProductResponse = 34; optional ReconstructDatabaseResponseProto reconstructDatabaseResponse = 35; optional PaypalMassageAddressResponseProto paypalMassageAddressResponse = 36; optional GetAddressSnippetResponseProto getAddressSnippetResponse = 37; } optional PendingNotificationsProto pendingNotifications = 38; } message RestoreApplicationsRequestProto { optional string backupAndroidId = 1; optional string tosVersion = 2; optional DeviceConfigurationProto deviceConfiguration = 3; } message RestoreApplicationsResponseProto { repeated GetAssetResponseProto asset = 1; } message RiskHeaderInfoProto { optional string hashedDeviceInfo = 1; } message SignatureHashProto { optional string packageName = 1; optional int32 versionCode = 2; optional bytes hash = 3; } message SignedDataProto { optional string signedData = 1; optional string signature = 2; } message SingleRequestProto { optional RequestSpecificPropertiesProto requestSpecificProperties = 3; optional AssetsRequestProto assetRequest = 4; optional CommentsRequestProto commentsRequest = 5; optional ModifyCommentRequestProto modifyCommentRequest = 6; optional PurchasePostRequestProto purchasePostRequest = 7; optional PurchaseOrderRequestProto purchaseOrderRequest = 8; optional ContentSyncRequestProto contentSyncRequest = 9; optional GetAssetRequestProto getAssetRequest = 10; optional GetImageRequestProto getImageRequest = 11; optional RefundRequestProto refundRequest = 12; optional PurchaseMetadataRequestProto purchaseMetadataRequest = 13; optional GetSubCategoriesRequestProto subCategoriesRequest = 14; optional UninstallReasonRequestProto uninstallReasonRequest = 16; optional RateCommentRequestProto rateCommentRequest = 17; optional CheckLicenseRequestProto checkLicenseRequest = 18; optional GetMarketMetadataRequestProto getMarketMetadataRequest = 19; optional GetCategoriesRequestProto getCategoriesRequest = 21; optional GetCarrierInfoRequestProto getCarrierInfoRequest = 22; optional RemoveAssetRequestProto removeAssetRequest = 23; optional RestoreApplicationsRequestProto restoreApplicationsRequest = 24; optional QuerySuggestionRequestProto querySuggestionRequest = 25; optional BillingEventRequestProto billingEventRequest = 26; optional PaypalPreapprovalRequestProto paypalPreapprovalRequest = 27; optional PaypalPreapprovalDetailsRequestProto paypalPreapprovalDetailsRequest = 28; optional PaypalCreateAccountRequestProto paypalCreateAccountRequest = 29; optional PaypalPreapprovalCredentialsRequestProto paypalPreapprovalCredentialsRequest = 30; optional InAppRestoreTransactionsRequestProto inAppRestoreTransactionsRequest = 31; optional InAppPurchaseInformationRequestProto getInAppPurchaseInformationRequest = 32; optional CheckForNotificationsRequestProto checkForNotificationsRequest = 33; optional AckNotificationsRequestProto ackNotificationsRequest = 34; optional PurchaseProductRequestProto purchaseProductRequest = 35; optional ReconstructDatabaseRequestProto reconstructDatabaseRequest = 36; optional PaypalMassageAddressRequestProto paypalMassageAddressRequest = 37; optional GetAddressSnippetRequestProto getAddressSnippetRequest = 38; } message SingleResponseProto { optional ResponsePropertiesProto responseProperties = 2; optional AssetsResponseProto assetsResponse = 3; optional CommentsResponseProto commentsResponse = 4; optional ModifyCommentResponseProto modifyCommentResponse = 5; optional PurchasePostResponseProto purchasePostResponse = 6; optional PurchaseOrderResponseProto purchaseOrderResponse = 7; optional ContentSyncResponseProto contentSyncResponse = 8; optional GetAssetResponseProto getAssetResponse = 9; optional GetImageResponseProto getImageResponse = 10; optional RefundResponseProto refundResponse = 11; optional PurchaseMetadataResponseProto purchaseMetadataResponse = 12; optional GetSubCategoriesResponseProto subCategoriesResponse = 13; optional UninstallReasonResponseProto uninstallReasonResponse = 15; optional RateCommentResponseProto rateCommentResponse = 16; optional CheckLicenseResponseProto checkLicenseResponse = 17; optional GetMarketMetadataResponseProto getMarketMetadataResponse = 18; optional GetCategoriesResponseProto getCategoriesResponse = 20; optional GetCarrierInfoResponseProto getCarrierInfoResponse = 21; optional RestoreApplicationsResponseProto restoreApplicationResponse = 23; optional QuerySuggestionResponseProto querySuggestionResponse = 24; optional BillingEventResponseProto billingEventResponse = 25; optional PaypalPreapprovalResponseProto paypalPreapprovalResponse = 26; optional PaypalPreapprovalDetailsResponseProto paypalPreapprovalDetailsResponse = 27; optional PaypalCreateAccountResponseProto paypalCreateAccountResponse = 28; optional PaypalPreapprovalCredentialsResponseProto paypalPreapprovalCredentialsResponse = 29; optional InAppRestoreTransactionsResponseProto inAppRestoreTransactionsResponse = 30; optional InAppPurchaseInformationResponseProto getInAppPurchaseInformationResponse = 31; optional CheckForNotificationsResponseProto checkForNotificationsResponse = 32; optional AckNotificationsResponseProto ackNotificationsResponse = 33; optional PurchaseProductResponseProto purchaseProductResponse = 34; optional ReconstructDatabaseResponseProto reconstructDatabaseResponse = 35; optional PaypalMassageAddressResponseProto paypalMassageAddressResponse = 36; optional GetAddressSnippetResponseProto getAddressSnippetResponse = 37; } message StatusBarNotificationProto { optional string tickerText = 1; optional string contentTitle = 2; optional string contentText = 3; } message UninstallReasonRequestProto { optional string assetId = 1; optional int32 reason = 2; } message UninstallReasonResponseProto { }