// 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 "google/protobuf/struct.proto";

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

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

  // Whether to make roll Change-Id unique to the build.
  bool create_unique_change_id = 3;

  // Notify option when pushing roll CL.
  string cl_notify_option = 4;

  // Whether to dry-run the auto-roll (CQ+1 and abandon the change).
  bool dry_run = 5;
}
