blob: e8e720110b4dc9cc0be738f38c0fd71d967eb0e2 [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/feature.proto";
// Top level feature which shows a stream of cards. Provides any UI information
// which may be needed in order to render the stream of cards.
message Stream {
extend Feature {
optional Stream stream_extension = 185431437;
}
}
// Feature which represents a cluster in a Stream. May have a Card or Content
// as children.
// TODO Determine if Clusters can be removed.
message Cluster {
extend Feature {
optional Cluster cluster_extension = 190812910;
}
// Empty for now as we don't support any custom information.
}
// Feature which represents a full card in a Stream. Allows metadata to be sent
// to describe how to render the card.
message Card {
extend Feature {
optional Card card_extension = 185431438;
}
}
// Feature which is able to show actual content in a stream. This could be
// inside or outside a card. Actual data on what to display will be sent on an
// extension.
message Content {
extend Feature {
optional Content content_extension = 185431439;
}
enum Type {
UNKNOWN_CONTENT = 0;
XUIKIT = 1;
}
optional Type type = 1;
optional bool is_ad = 3;
extensions 1000; // ElementsContent
reserved 2;
}