// Copyright 2020 The Chromium OS 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 prototype;

option go_package = "go.chromium.org/chromiumos/infra/proto/go/prototype";

// Defines the metadata for a project, which ultimately controls how this
// project is managed throughout the infrastructure.
message DesignProject {
  // Defines the human-readable name for the project.
  string name = 1;
  // Defines the git-repo path for the project.
  string repo = 2;
  // Defines the path that stores all of the project configuration.
  // Relative to the git-repo
  string config_path = 3;
  // Define the project's local_manifest.
  string repo_manifest_path = 4;
  // The Google Storage bucket for artifacts from the project's builds.
  string gs_bucket = 5;

  // Defines config needed to maintain firmware builders for the project.
  FirmwareConfig firmware_config = 6;

  // Define factory build config needed for manufacturing verification.
  FactoryConfig factory_config = 7;

  // Defines signing config unique to the given design project.
  SigningConfig signing_config = 8;

  message FirmwareConfig {
    // Defines the firmware branch that will be maintained for the project.
    string firmware_branch = 1;
  }

  message FactoryConfig {
    // Defines the factory branch that will be maintained for the project.
    string factory_branch = 1;

    // A key in the project.yaml metadata file, to look up the branch, path,
    // etc. For example, to match the entry in the project.yaml file:
    //
    // MILKYWAY:
    //   board: GALAXY
    //   branch: master
    //   version: 3
    //   path: v3/MILKYWAY
    //
    // project_key should be 'MILKYWAY'. The matching is case-insensitive.
    string hwid_project_key = 2;
  }

  message SigningConfig {
    // Key names have taken historically followed many different patterns.
    // To support all of the cases, this defines an explicit mapping between the
    // supported brands and corresponding keys present in the respective
    // keysets.
    // Going forward, this could be standardized, removing the need for the
    // explict mapping, but this will be required for the foreseeable future.
    map<string, string> brand_id_to_key = 1;
  }
}
