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

import "google/protobuf/struct.proto";

message InputProperties {
  // Jiri remote manifest project.
  string project = 1;

  // Jiri manifest to use.
  string manifest = 2;

  // Remote manifest repository.
  string remote = 3;

  // Mapping from tool to binary name.
  map<string,string> output_name_map = 4;

  // Mapping from tool to list of extra platforms to build for.
  map<string, google.protobuf.ListValue> extra_arch_map = 5;

  // Whether to publish the tools.
  bool publish = 6;

  // CIPD prefix under which packages should be published.
  string cipd_root = 7;
}
