chromium/components/feed/core/proto/v2/wire/data_operation.proto

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

syntax = "proto2";

package feedwire;

import "components/feed/core/proto/v2/wire/feature.proto";
import "components/feed/core/proto/v2/wire/payload_metadata.proto";
import "components/feed/core/proto/v2/wire/render_data.proto";
import "components/feed/core/proto/v2/wire/request_schedule.proto";
import "components/feed/core/proto/v2/wire/token.proto";

option optimize_for = LITE_RUNTIME;

message DataOperation {
  enum Operation {
    UNKNOWN_OPERATION = 0;
    CLEAR_ALL = 1;
    UPDATE_OR_APPEND = 2;
    REMOVE = 3;
  }
  oneof payload {
    Feature feature = 3;
    Token next_page_token = 5;
    RenderData render_data = 6;
    RequestSchedule request_schedule = 9;
  }
  optional Operation operation = 1;
  optional PayloadMetadata metadata = 2;
}