// 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 GenericComponentValueWhitelist {
    // 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 whitelist of the generic component values of each category.
  repeated GenericComponentValueWhitelist generic_component_value_whitelists =
      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;

  // Next tag: 6
  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;
  }

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