// Copyright 2023 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.fuchsia.profile;

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

  // Remote manifest repository.
  string remote = 2;

  // Path to a fint params file.
  string fint_params_path = 3;

  // The map of builders to process profiles.
  repeated string profile_builders = 4;

  // A list of child build ids to use for profile data instead of launching new
  // profile builders.
  repeated string child_build_ids = 5;

  // CIPD package for profile data.
  string cipd_package = 6;

  // The list of PGO-optimizing builders.
  repeated string pgo_builders = 7;
}
