// Copyright 2019 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";

package feedwire1;

option optimize_for = LITE_RUNTIME;

option java_package = "org.chromium.components.feed.core.proto.wire";
option java_outer_classname = "ContentIdProto";

// Feed Wire Protocol version of the ContentId.
message ContentId {
  // The "domain" to which this content belongs. A domain specifies the party
  // responsible for generating the content, and this owner promises to specify
  // IDs (below) that match the owner's expectations of uniqueness.  The domain
  // differs from the table because multiple parties can create content which
  // are stored in the same table.
  optional string content_domain = 1;

  // In value to make the ContentId unique within the content_domain.
  optional fixed64 id = 2;

  // This represents namespace for the nodes found in the wire protocol.  The
  // storage architecture shares the wire protocol based upon the Table
  // (namespace).  The storage will be sharded into multiple Tables where
  // related content is stored within a single Table.  For example, Features
  // define the Structure and Content of the Stream and are stored in a single
  // table.  Notifications would be stored in their own table.
  optional string table = 3;
}
