// 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 test.fleet.v1;

option go_package = "go.chromium.org/chromiumos/infra/proto/go/test/fleet/v1;fleet";

// Fleet DeviceUnderTest is referenced in test plan specifications.
// See test/plan/v1/plan.proto
message DeviceUnderTest {
  // `setup` was initially added to allow test plans to select DeviceUnderTests
  // via constraints on the how the devices are setup in the fleet. This feature
  // was dropped in the initial revisions of the API until a valid use-case for
  // such a feature is demonstrated. Test metadata can still specify required
  // deployment setup for particular tests (e.g., presence of an  external
  // camera for tests that exercise an external camera).
  reserved 2;
  reserved "setup";

  // Name identifying the device in the fleet.
  //
  // MUST be valid resource name per https://aip.dev/122.
  //
  // Pattern: duts/{dut}
  string name = 1;

  // Configuration of scheduler options that apply to tasks that can execute on
  // this DUT.
  Scheduler scheduler = 3;
}

message Scheduler {
  // The task scheduling pools this device may be used for.
  //
  // Historical note: The concept of managed pools (e.g.: DUT_POOL_CQ) was used
  // for automatic balancing of healthy devices in critical pools. Due to
  // merging of critical pools into a common scheduler pool, this auto-balancing
  // service is no longer required.
  //
  // Old enum values are now serialized to the JSON encoding of those enums
  // (e.g. "DUT_POOL_QUOTA").
  // See lab/device.proto:DeviceUnderTest::DutPool.
  repeated string pools = 1;
}