// Copyright 2019 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 manufacturing;

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

import "manufacturing/config_id.proto";

// These are the configs that's provided in manufacture stage of a ChromeOS device.
// Next Tag: 7
message Config {
  ConfigID manufacturing_id = 1;

  // phase for the device. Next Tag: 9
  enum Phase {
    PHASE_INVALID = 0;
    PHASE_EVT = 1;
    PHASE_EVT2 = 2;
    PHASE_DVT = 3;
    PHASE_DVT2 = 4;
    PHASE_PVT = 5;
    PHASE_PVT2 = 6;
    PHASE_PVT3 = 7;
    PHASE_MP = 8;
  }
  Phase device_phase = 2;

  // phases for cr50 module. Next Tag: 3
  enum CR50Phase {
    CR50_PHASE_INVALID = 0;
    CR50_PHASE_PREPVT = 1;
    CR50_PHASE_PVT = 2;
  }

  CR50Phase cr50_phase = 3;

  // key env for cr50 RW version. Next Tag: 3
  enum CR50KeyEnv {
    CR50_KEYENV_INVALID = 0;
    CR50_KEYENV_PROD = 1;
    CR50_KEYENV_DEV = 2;
  }
  // Detected based on the cr50 RW version that the DUT is running on.
  CR50KeyEnv cr50_key_env = 4;

  // wifi chip that is installed on the DUT in manufacturing stage.
  string wifi_chip = 5;

  // Save repeated hwid components obtained from hwid service
  repeated string hwid_component = 6;
}

// Message contains all ChromeOS manufacturing configs.
message ConfigList {
  repeated Config value = 1;
}
