blob: 24e7b7afc8de21d9851d96a754b9ec3c5af760e7 [file] [log] [blame]
// Copyright 2018 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";
import "src/main/proto/search/now/wire/feed/capability.proto";
import "src/main/proto/search/now/wire/feed/data_operation.proto";
import "src/main/proto/search/now/wire/feed/response.proto";
package search.now.wire.feed;
option optimize_for=LITE_RUNTIME;
option java_package = "com.google.search.now.wire.feed";
option java_outer_classname = "FeedResponseProto";
// A feed response is a series of directives to manipulate backend storage,
// similar to database commands. Individual data operations contain all the
// necessary information to manipulate the client state.
message FeedResponse {
extend Response {
optional FeedResponse feed_response = 1000;
}
// DataOperations are applied on the client in order in which they are
// received.
repeated DataOperation data_operation = 1;
// Metadata for the entire FeedResponse.
optional FeedResponseMetadata feed_response_metadata = 2;
// The list of server-response supported capabilities.
repeated Capability server_capabilities = 3;
}
// Data which is relevant for the whole response made by the server.
message FeedResponseMetadata {
// Time at which the server fulfilled this response. This is needed as client
// cannot be the source of truth.
optional int64 response_time_ms = 1;
}