// Copyright 2021 The Fuchsia 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 = "proto3";

package recipes.fuchsia.submodule_update;

import "recipe_modules/fuchsia/auto_roller/options.proto";

message InputProperties {
  // Jiri manifest to use.
  string manifest = 1;

  // Jiri remote manifest project.
  string project = 2;

  // Remote manifest repository.
  string remote = 3;

  // Super manifest project to update.
  string superproject = 4;

  // General options for creating the roll CL.
  recipe_modules.fuchsia.auto_roller.Options roll_options = 5;
}
