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

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package suggestions;

// Providers are identified with an ID.
enum ProviderId {
  SERVER0 = 0;
  // SERVER1 through 8 were never used.
  SERVER8 = 8;
  SERVER9 = 9;
  SERVER10 = 10;
  SERVER11 = 11;
}

// The SuggestionsProfile is a protobuf response from the server that contains
// the list of suggestions to be presented to the user.
//
// Notice that the tags on this proto must match the ones on the server side.
//
// Next tag: 17
message SuggestionsProfile {
  repeated ChromeSuggestion suggestions = 1;

  reserved 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15;

  // Timestamp when the profile was generated (usec).
  optional int64 timestamp = 16;
}

// An individual suggestion.
//
// Notice that the tags on this proto must match the ones on the server side.
//
// Next tag: 15
message ChromeSuggestion {
  // The URL of the suggestion.
  optional string url = 1;

  // Title of the suggestion.
  optional string title = 2;

  // The URL of the favicon associated with this page.
  optional string favicon_url = 3;

  // The URL of the thumbnail associated with this page.
  optional string thumbnail = 4;

  // The provider(s) responsible for this suggestion.
  repeated ProviderId providers = 5;

  reserved 6;

  // The timestamp (usec) at which this suggestion ceases to be valid.
  optional int64 expiry_ts = 7;

  reserved 8, 9, 10, 11, 12, 13, 14;
}

// A list of URLs that should be filtered from the SuggestionsProfile.
//
// Next tag: 2
message SuggestionsBlacklist {
  // URLs that make up the blacklist.
  repeated string urls = 1;
}

// ImageData contains the data to represent a website image (e.g. thumbnail).
//
// Next tag: 3
message ImageData {
  // The URL of the website represented by this image.
  optional string url = 1;

  // Bitmap bytes, encoded as JPEG.
  optional bytes data = 2;
}
