// 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.test_owners;

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

  // Remote manifest repository.
  string remote = 2;

  // GCS bucket to upload test owners to.
  string owners_gcs_bucket = 3;

  // Path within `owners_gcs_bucket` to upload the test owners manifest to.
  string owners_gcs_path = 4;

  // Don't upload results to GCS.
  bool dry_run = 5;
}
