chromium/chrome/browser/extensions/cws_item_service.proto

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Keep in sync with corresponding messages in :
// http://google3/google/chrome/webstore/v2/resources.proto
// http://google3/google/chrome/webstore/v2/item_service.proto

syntax = "proto3";

package extensions;

option optimize_for = LITE_RUNTIME;

// A Chrome Web Store (CWS) item's Store Metadata resource. Each item only has
// one StoreMetadata resource.
message StoreMetadata {
  // Item store metadata resource name.
  // Format: items/{itemId}/storeMetadata
  string name = 1;

  // The item is currently published in CWS.
  bool is_live = 2;

  // The publish time of the most recent version of the item. This is also the
  // time displayed in the Chrome Web Store (CWS) item details page. The
  // timestamp is relative to an epoch at UTC midnight on January 1, 1970.
  int64 last_update_time_millis = 3;

  // The violation type for which the item is taken down from CWS.
  // Possible values are:
  //   none
  //   malware
  //   policy-violation
  //   minor-policy-violation
  string violation_type = 4;

  // Labels applied to this item by the Chrome Web Store (CWS) to provide
  // additional item information. Possible values are:
  //   unpublished-long-ago
  //   no-privacy-practice
  repeated string labels = 5;
}

message BatchGetStoreMetadatasRequest {
  // The parent resource.
  // Format: items/{item_id}
  // Callers must specify a - (the hyphen or dash character) as a wildcard
  // character. So, set parent="items/-".
  string parent = 1;

  // The names of the item store metadata to retrieve.
  // A maximum of 100 item store metadata can be retrieved in a batch.
  // Format: items/{item_id}/storeMetadata
  repeated string names = 2;
}

message BatchGetStoreMetadatasResponse {
  // The requested items’ store metadata. If an item is not found, it is not
  // included in the response.
  repeated StoreMetadata store_metadatas = 1;
}

// Request message for FetchItemSnippet.
message FetchItemSnippetRequest {
  // The name of the item to retrieve.
  // Format: items/{item_id}
  // If no resource name is provided or the format is incorrect, the API returns
  // error code INVALID_ARGUMENT.
  string name = 1;
}

// Response message for FetchItemSnippet.
// The localized title and summary are based on the language of the client
// making the API request. If no client language is available, the language
// falls back to the item’s primary language.
message FetchItemSnippetResponse {
  // Extension/item id.
  string item_id = 1;

  // Manifest string.
  string manifest = 2;

  // Localized title, which maps to the "name" field in the manifest.
  string title = 3;

  // Localized summary, which maps to the "description" field in the manifest.
  string summary = 4;

  // Logo uri.
  string logo_uri = 5;

  // Localized user count string.
  string user_count_string = 6;

  // User review rating count.
  int64 rating_count = 7;

  // Average user review rating.
  double average_rating = 8;

  // Localized user review rating count string.
  string rating_count_string = 9;

  // next tag: 10
}