diff --git a/go/test/fleet/v1/dut.pb.go b/go/test/fleet/v1/dut.pb.go
index be3f80d..e722e9c 100644
--- a/go/test/fleet/v1/dut.pb.go
+++ b/go/test/fleet/v1/dut.pb.go
@@ -6,7 +6,6 @@
 import (
 	fmt "fmt"
 	proto "github.com/golang/protobuf/proto"
-	v1 "go.chromium.org/chromiumos/config/go/api/test/dut/v1"
 	math "math"
 )
 
@@ -30,10 +29,6 @@
 	//
 	// Pattern: duts/{dut}
 	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	// The setup of the device in the fleet.
-	// Contains information about the manual modifications and peripherals
-	// attached during deployement of the device to the fleet.
-	Setup *v1.DeviceUnderTest `protobuf:"bytes,2,opt,name=setup,proto3" json:"setup,omitempty"`
 	// Configuration of scheduler options that apply to tasks that can execute on
 	// this DUT.
 	Scheduler            *Scheduler `protobuf:"bytes,3,opt,name=scheduler,proto3" json:"scheduler,omitempty"`
@@ -74,13 +69,6 @@
 	return ""
 }
 
-func (m *DeviceUnderTest) GetSetup() *v1.DeviceUnderTest {
-	if m != nil {
-		return m.Setup
-	}
-	return nil
-}
-
 func (m *DeviceUnderTest) GetScheduler() *Scheduler {
 	if m != nil {
 		return m.Scheduler
@@ -145,21 +133,18 @@
 func init() { proto.RegisterFile("test/fleet/v1/dut.proto", fileDescriptor_8fb9559b7923438a) }
 
 var fileDescriptor_8fb9559b7923438a = []byte{
-	// 249 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0x4d, 0x4b, 0xf4, 0x30,
-	0x10, 0x80, 0xe9, 0xbb, 0xef, 0x0a, 0x8d, 0x88, 0x10, 0x04, 0x83, 0xa7, 0xba, 0xa7, 0x82, 0x30,
-	0x43, 0x57, 0xf0, 0x22, 0x22, 0x88, 0x07, 0xcf, 0x55, 0x2f, 0xde, 0x6a, 0x3b, 0xed, 0x06, 0xda,
-	0x4e, 0xc8, 0x47, 0xff, 0x92, 0x7f, 0x53, 0x36, 0xc5, 0x5d, 0xeb, 0x6d, 0x92, 0x67, 0xe6, 0x99,
-	0x0f, 0x71, 0xe9, 0xc9, 0x79, 0x6c, 0x7b, 0x22, 0x8f, 0x53, 0x81, 0x4d, 0xf0, 0x60, 0x2c, 0x7b,
-	0x96, 0x67, 0x7b, 0x00, 0x11, 0xc0, 0x54, 0x5c, 0xdd, 0xd4, 0x3b, 0xcb, 0x83, 0x0e, 0x03, 0x3b,
-	0xac, 0x79, 0x6c, 0x75, 0x87, 0x95, 0xd1, 0x18, 0xab, 0x9b, 0xb0, 0xac, 0xdd, 0x7c, 0x25, 0xe2,
-	0xfc, 0x99, 0x26, 0x5d, 0xd3, 0xfb, 0xd8, 0x90, 0x7d, 0x23, 0xe7, 0xa5, 0x14, 0xff, 0xc7, 0x6a,
-	0x20, 0x95, 0x64, 0x49, 0x9e, 0x96, 0x31, 0x96, 0x2f, 0x62, 0xed, 0xc8, 0x07, 0xa3, 0xfe, 0x65,
-	0x49, 0x7e, 0xba, 0xdd, 0xc2, 0xb1, 0x09, 0xcc, 0x4d, 0xa0, 0x32, 0x1a, 0xe2, 0x24, 0x7b, 0xfb,
-	0x54, 0xc0, 0x1f, 0x6d, 0x39, 0x0b, 0xe4, 0x9d, 0x48, 0x5d, 0xbd, 0xa3, 0x26, 0xf4, 0x64, 0xd5,
-	0x2a, 0xda, 0x14, 0x2c, 0x36, 0x80, 0xd7, 0x1f, 0x5e, 0x1e, 0x53, 0x37, 0xd7, 0x22, 0x3d, 0xfc,
-	0xcb, 0x0b, 0xb1, 0x36, 0xcc, 0xbd, 0x53, 0x49, 0xb6, 0xca, 0xd3, 0x72, 0x7e, 0x3c, 0x3d, 0x7e,
-	0x3c, 0x74, 0x7c, 0x98, 0x0c, 0xd8, 0x76, 0xf8, 0xeb, 0x16, 0x7a, 0x6c, 0x6d, 0x85, 0x71, 0x6d,
-	0xec, 0x18, 0x17, 0xd7, 0xbc, 0x8f, 0xc1, 0xe7, 0x49, 0xa4, 0xb7, 0xdf, 0x01, 0x00, 0x00, 0xff,
-	0xff, 0x5b, 0xa0, 0x89, 0x09, 0x6b, 0x01, 0x00, 0x00,
+	// 205 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x8f, 0xbb, 0x4b, 0xc7, 0x30,
+	0x14, 0x85, 0x89, 0xfd, 0x55, 0x4c, 0x44, 0x94, 0x20, 0x98, 0xb1, 0x76, 0xea, 0x94, 0x4b, 0x15,
+	0x5c, 0x44, 0x04, 0x71, 0x72, 0x8c, 0xba, 0xb8, 0xd5, 0xf6, 0xf6, 0x21, 0x6d, 0x6f, 0xc9, 0xa3,
+	0x7f, 0xbf, 0x18, 0xa9, 0xd2, 0xed, 0x1c, 0xbe, 0xc3, 0x81, 0x4f, 0x5c, 0x79, 0x74, 0x1e, 0xda,
+	0x11, 0xd1, 0xc3, 0x5a, 0x42, 0x13, 0xbc, 0x5e, 0x2c, 0x79, 0x92, 0x67, 0x3f, 0x40, 0x47, 0xa0,
+	0xd7, 0x32, 0xff, 0x12, 0xe7, 0xcf, 0xb8, 0x0e, 0x35, 0xbe, 0xcf, 0x0d, 0xda, 0x37, 0x74, 0x5e,
+	0x4a, 0x71, 0x98, 0xab, 0x09, 0x15, 0xcb, 0x58, 0xc1, 0x4d, 0xcc, 0xf2, 0x4e, 0x70, 0x57, 0xf7,
+	0xd8, 0x84, 0x11, 0xad, 0x4a, 0x32, 0x56, 0x9c, 0xde, 0x28, 0xbd, 0x7b, 0xd2, 0xaf, 0x1b, 0x37,
+	0xff, 0xd3, 0x97, 0xc3, 0xc9, 0xd1, 0x45, 0x62, 0x52, 0x87, 0x3e, 0x2c, 0xf9, 0xb5, 0xe0, 0x7f,
+	0x23, 0x79, 0x29, 0xd2, 0x85, 0x68, 0x74, 0x8a, 0x65, 0x49, 0xc1, 0xcd, 0x6f, 0x79, 0x7a, 0xfc,
+	0x78, 0xe8, 0x48, 0xd7, 0xbd, 0xa5, 0x69, 0x08, 0x93, 0x26, 0xdb, 0xc1, 0x56, 0xc8, 0xc1, 0x30,
+	0xb7, 0xb6, 0x82, 0xe8, 0x01, 0x1d, 0xc1, 0x4e, 0xf1, 0x3e, 0x86, 0xcf, 0xe3, 0x48, 0x6f, 0xbf,
+	0x03, 0x00, 0x00, 0xff, 0xff, 0x77, 0xa2, 0x12, 0x81, 0x00, 0x01, 0x00, 0x00,
 }
diff --git a/src/test/fleet/v1/dut.proto b/src/test/fleet/v1/dut.proto
index 8199dcc..b496100 100644
--- a/src/test/fleet/v1/dut.proto
+++ b/src/test/fleet/v1/dut.proto
@@ -8,12 +8,18 @@
 
 option go_package = "go.chromium.org/chromiumos/infra/proto/go/test/fleet/v1;fleet";
 
-// From chromiumos/config repo.
-import "chromiumos/config/api/test/dut/v1/dut.proto";
-
 // 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.
@@ -21,11 +27,6 @@
   // Pattern: duts/{dut}
   string name = 1;
 
-  // The setup of the device in the fleet.
-  // Contains information about the manual modifications and peripherals
-  // attached during deployement of the device to the fleet.
-  chromiumos.config.api.test.dut.v1.DeviceUnderTest setup = 2;
-
   // Configuration of scheduler options that apply to tasks that can execute on
   // this DUT.
   Scheduler scheduler = 3;
