// 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 recipe_modules.fuchsia.presubmit_util;

message Options {
  // Gerrit hostname to test against.
  string gerrit_host = 1;

  // Gerrit project to test against.
  string gerrit_project = 2;

  // Timeout for external tests completion.
  int32 timeout_secs = 3;

  // Builder names of tryjobs to orchestrate.
  repeated string tryjobs = 4;

  // Alternate Gerrit hostname for searching tryjobs, as they may be
  // registered under a different host.
  string tryjobs_gerrit_host = 5;

  // Time to wait for tryjobs to initialize after applying CQ label.
  int32 tryjobs_wait_secs = 6;

  // Whether to explicitly trigger tryjobs instead of applying CQ label.
  bool trigger_tryjobs = 7;

  // Test against this ref.
  string ref = 8;

  // Gerrit label to check for presumbmit status.
  string presubmit_status_gerrit_label = 9;
}
