// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// The messages in this file comprise the DBus/Protobuf interface for
// Hardware Verifier.

syntax = "proto3";

option optimize_for = SPEED;

package hardware_verifier;

// Name of the folder which contains |runtime_probe.pb.h| is different than
// the one which contains |runtime_probo.proto| so we import the file name
// directly and use |BUILD.gn| to handle the include path properly.
import "runtime_probe.proto";

// List of the possible qualification status of a component.
// TODO(yhong): Using the existing definition from AVL side when the
//     integration work starts.
enum QualificationStatus {
  UNQUALIFIED = 0;
  REJECTED = 1;
  QUALIFIED = 2;
  // This category has at least one ComponentInfo defined, but we cannot match
  // any known components in the probe result.
  NO_MATCH = 3;
}

message ComponentInfo {
  // required
  runtime_probe.ProbeRequest.SupportCategory component_category = 1;

  string component_uuid = 2;  // required

  QualificationStatus qualification_status = 3;  // required
}

message HwVerificationSpec {
  // A list of all known components and their qualification status.
  repeated ComponentInfo component_infos = 1;

  message GenericComponentValueAllowlist {
    // required
    runtime_probe.ProbeRequest.SupportCategory component_category = 1;

    // A list of field names that are allowed to be included in the report.
    repeated string field_names = 2;
  }

  // Records the allowlist of the generic component values of each category.
  repeated GenericComponentValueAllowlist generic_component_value_allowlists =
      2;
}

message HwVerificationReport {
  bool is_compliant = 1;

  // Records the qualification status of the components that is also probed
  // by the hardware prober.
  repeated ComponentInfo found_component_infos = 2;

  message GenericDeviceInfo {
    // Records the generic component values of some specific types.  Note
    // that because |HwVerificationReport| intents to only include the needed
    // data, not all categories which |runtime_probe| supports are listed.
    repeated runtime_probe.AudioCodec.Fields audio_codec = 1;
    repeated runtime_probe.Battery.Fields battery = 2;
    repeated runtime_probe.Storage.Fields storage = 3;
    repeated runtime_probe.Network.Fields network = 4;
    repeated runtime_probe.Camera.Fields camera = 5;
    repeated runtime_probe.InputDevice.Fields stylus = 6;
    repeated runtime_probe.InputDevice.Fields touchpad = 7;
    repeated runtime_probe.InputDevice.Fields touchscreen = 8;
    repeated runtime_probe.Memory.Fields dram = 9;
    repeated runtime_probe.Edid.Fields display_panel = 10;
  }

  // Records the overall device matrics.
  GenericDeviceInfo generic_device_info = 3;
}
