// Copyright 2022 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_roller;

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

message InputProperties {
  // Remote URL of repository to checkout.
  string remote = 1;

  // Paths of submodules to roll.
  repeated string submodule_paths = 2;

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

  // If no revision or ref is specified in the build input, resolve and roll to
  // this ref. E.g. "refs/heads/main".
  string default_ref = 4;
}
