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

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

  // Remote manifest repository.
  string remote = 2;

  // Spec path to pass to fint.
  string fint_params_path = 3;

  // Whether to build incrementally.
  bool incremental_build = 4;

  // Relative paths to other projects within the checkout that contain shac.star
  // files to run.
  repeated string additional_shac_project_dirs = 5;

  // Whether to use submodules for the checkout.
  bool enable_submodules = 6;
}
