blob: e0b6c8ee68882befe1380f388f6ee5dd356f9bad [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package unifiedfleet.api.v1.models.chromeos.lab;
option go_package = "infra/unifiedfleet/api/v1/models/chromeos/lab;ufspb";
import "infra/unifiedfleet/api/v1/models/chromeos/lab/chameleon.proto";
import "infra/unifiedfleet/api/v1/models/chromeos/lab/dolos.proto";
import "infra/unifiedfleet/api/v1/models/chromeos/lab/rpm.proto";
import "infra/unifiedfleet/api/v1/models/chromeos/lab/servo.proto";
import "infra/unifiedfleet/api/v1/models/chromeos/lab/dut_state.proto";
import "go.chromium.org/chromiumos/config/proto/chromiumos/test/lab/api/wifi_router.proto";
import "go.chromium.org/chromiumos/config/proto/chromiumos/test/lab/api/pasit_host.proto";
// This proto defines setup labels in lab config of a DUT.
// Peripherals of device. Next Tag: 26
message Peripherals {
Servo servo = 1;
Chameleon chameleon = 2;
OSRPM rpm = 3;
// refer to cameras that connected to the device.
repeated Camera connected_camera = 4;
Audio audio = 5;
Wifi wifi = 6;
Touch touch = 7;
// e.g: "att", "verizon",.. It's a manual label set by lab, varies dut by dut.
string carrier = 8;
// e.g: "0_att,1_verizon,3_tmobile", "1_kddi,6_rakuten".. slot mapping: only for Starfish enabled modules.
string starfish_slot_mapping = 17;
// A list of all carriers that can be tested on the DUT. This extends the carrier field which could previously only
// be used with a single carrier.
repeated string supported_carriers = 21;
// Indicate if the device is setup in a steady and controllable camera box environment for camera test automation.
// http://go/cros-camera-box
bool camerabox = 9;
// Indicate if the device is setup in a chaos environment. It's a special settings for running wifi interop tests.
bool chaos = 10;
// Indicate the cables that connect audio, printer to the device in ACS lab.
repeated Cable cable = 11;
// Incompatible upgraded type from bool camerabox=9.
Camerabox camerabox_info = 12;
// Indicate if device is connected to a smart usb hub, detected in AdminRepair task.
bool smart_usbhub = 13;
// Indicate if the DUT's back camera supports region of interest
// Deprecated.
bool camera_roi_back = 14 [deprecated=true];
// Indicate if the DUT's front camera supports region of interest
// Deprecated.
bool camera_roi_front = 15 [deprecated=true];
repeated BluetoothPeer bluetooth_peers = 16;
HumanMotionRobot human_motion_robot = 18;
// Indicate if the DUT is connected to an audio latency toolkit
AudioLatencyToolkit audio_latency_toolkit = 19;
// Indicate if the DUT uses Dolos as a battery replacement
Dolos dolos = 20;
// The host and topology used in peripheral interop test beds.
reserved "pasit_host";
reserved 23;
chromiumos.test.lab.api.PasitHost pasit_host2 = 24;
// Indicate if the DUT is equipped with Intel AMT.
AMTManager amt_manager = 25;
}
// Next Tag: 3
enum CameraType {
CAMERA_INVALID = 0;
// camera Huddly GO
CAMERA_HUDDLY = 1;
// camera Logitech PTZ Pro 2
CAMERA_PTZPRO2 = 2;
}
// Next Tag: 2
message Camera {
CameraType camera_type = 1;
}
enum CableType {
CABLE_INVALID = 0;
CABLE_AUDIOJACK = 1;
CABLE_USBAUDIO = 2;
CABLE_USBPRINTING = 3;
CABLE_HDMIAUDIO = 4;
}
message Cable {
CableType type = 1;
}
// Next Tag: 4
message Audio {
// Indicate if the DUT is housed in an audio box to record / replay audio
// for audio testing.
bool audio_box = 1;
// Indicate if the DUT is connected to Atrus speakermic
bool atrus = 2;
// Indicate if the DUT is connected to chameleon through static audio cable
bool audio_cable = 3;
}
// Next Tag: 7
message Wifi {
reserved 5;
// Indicate if the device is inside a hermetic wifi cell.
bool wificell = 1;
// DUT's WiFi antenna's connection.
// Next Tag: 3
enum AntennaConnection {
CONN_UNKNOWN = 0;
// WIFI antenna is connected conductively.
CONN_CONDUCTIVE = 1;
// WIFI antenna is connected over-the-air.
CONN_OTA = 2;
}
AntennaConnection antenna_conn = 2;
enum Router {
ROUTER_UNSPECIFIED = 0;
ROUTER_802_11AX = 1;
}
// Indicate if the device is in a pre-setup environment with 802.11ax routers.
// crbug.com/1044786
Router router = 3;
// collections of routers used for wifi testing.
repeated WifiRouter wifi_routers = 4;
// WifiRouterFeatures that are supported by all wifi routers in the testbed.
//
// If there are no wifi routers this will be empty.
// If any routers have unknown features, this will just have a single
// WIFI_ROUTER_FEATURE_UNKNOWN entry.
// If any routers' features has a WIFI_ROUTER_FEATURE_INVALID feature, a
// WIFI_ROUTER_FEATURE_INVALID feature will be included along with the other
// common, valid features.
// If there are no common, valid features between all routers, this will just
// have a single WIFI_ROUTER_FEATURE_INVALID entry.
repeated chromiumos.test.lab.api.WifiRouterFeature wifi_router_features = 6;
}
// Next Tag: 7
message WifiRouter {
reserved 6;
string hostname = 1;
PeripheralState state = 2;
string build_target = 3;
string model = 4;
// RPM to perform remote power management. use OSRPM defined here.
OSRPM rpm = 5;
// Supported test router hardware and software features.
repeated chromiumos.test.lab.api.WifiRouterFeature supported_features = 7;
// The type of router device this is (e.g. OpenWrt-based, ChromeOS Gale).
chromiumos.test.lab.api.WifiRouterDeviceType device_type = 8;
}
// Next Tag: 2
message Touch {
// Has touch monitor mimo.
bool mimo = 1;
}
// Next Tag: 3
message Camerabox {
// Facing of DUT's camera to be tested whose FOV should cover chart tablet's screen.
// Next Tag: 4
enum Facing {
FACING_UNKNOWN = 0;
// DUT's back camera is facing to chart tablet.
FACING_BACK = 1;
// DUT's front camera is facing to chart tablet.
FACING_FRONT = 2;
// DUT has no camera
FACING_NOCAMERA = 3;
}
// Light provision of camerabox, if LED is present or not.
// Next Tag: 3
enum Light {
LIGHT_UNKNOWN = 0;
// Camerabox has LED light provisioned.
LIGHT_LED = 1;
// Camerabox do not have LED light provision.
LIGHT_NOLED = 2;
}
Facing facing = 1;
Light light = 2;
}
// RaspberryPi models hardware without an assumption of how
// it will be used, e.g. Bluetooth peers, audio testing, etc.
message RaspberryPi {
string hostname = 1;
PeripheralState state = 2;
}
// BluetoothPeer is hardware that is used as a Bluetooth peer.
// It models function rather than hardware.
message BluetoothPeer {
oneof device {
RaspberryPi raspberry_pi = 1;
}
// Remote Power Management for the bluetooth peer device.
OSRPM rpm = 2;
}
// HumanMotionRobot models the whole HMR system
// including touchhost, Pi, HMR fixture, etc.
message HumanMotionRobot {
// hostname for HMR pi
string hostname = 1;
// model of the HMR
string hmr_model = 2;
// hostname for touch-host pi
string gateway_hostname = 3;
// Remote Power Management for HMR device.
OSRPM rpm = 4;
}
// AudioLatencyToolkit models audio latency toolkits
// including a Teensy and Teensy Audio Board
// Next Tag: 1
message AudioLatencyToolkit {
string version = 1; // default: "4.1"
}
// AMTManager enables remote, out-of-band management.
message AMTManager {
// Hostname for the AMT management port.
string hostname = 1;
}