blob: 688762f183f1da095c03874fe64b02b18e22a654 [file] [log] [blame]
// Copyright 2020 The Feed Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto2";
package feedwire;
option optimize_for=LITE_RUNTIME;
import "src/trellis/proto/content_id.proto";
import "src/trellis/proto/expiration_info.proto";
// Features define both the structure and content found in the Stream.
message Feature {
// The ContentId identifying the parent feature for this feature.
optional ContentId parent_id = 1;
// Enum denoting which extension containing the renderable data is associated
// with this Feature.
enum RenderableUnit {
UNKNOWN_RENDERABLE_UNIT = 0;
STREAM = 1;
CONTENT = 3;
CLUSTER = 4;
REDACTED_10 = 10;
REDACTED_11 = 11;
reserved 2, 5, 6, 7, 8, 9;
}
optional RenderableUnit renderable_unit = 2;
// Indicates whether this feature should expire, and additional metadata
// necessariy to handle expiration. Note that clients may not support
// expiration of every type of feature.
optional ExpirationInfo expiration_info = 3;
extensions 185431437; // Stream
extensions 185431438; // Card
extensions 185431439; // Content
extensions 190812910; // Cluster
extensions 194964015; // Token
extensions 286406442; // REDACTED
extensions 286406443; // REDACTED
reserved 246375740, 274598443, 274598444, 277068786;
}