diff --git a/go/testplans/suite_scheduler.pb.go b/go/testplans/suite_scheduler.pb.go
index 83edbd1..6f78105 100644
--- a/go/testplans/suite_scheduler.pb.go
+++ b/go/testplans/suite_scheduler.pb.go
@@ -140,6 +140,54 @@
 	return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 0}
 }
 
+type SchedulerConfig_TriggerType int32
+
+const (
+	// Trigger test whenever there is a new build for the primary board.
+	SchedulerConfig_PRIMARY SchedulerConfig_TriggerType = 0
+	// Trigger test when every board in the group has a new build.
+	SchedulerConfig_ALL SchedulerConfig_TriggerType = 1
+)
+
+// Enum value maps for SchedulerConfig_TriggerType.
+var (
+	SchedulerConfig_TriggerType_name = map[int32]string{
+		0: "PRIMARY",
+		1: "ALL",
+	}
+	SchedulerConfig_TriggerType_value = map[string]int32{
+		"PRIMARY": 0,
+		"ALL":     1,
+	}
+)
+
+func (x SchedulerConfig_TriggerType) Enum() *SchedulerConfig_TriggerType {
+	p := new(SchedulerConfig_TriggerType)
+	*p = x
+	return p
+}
+
+func (x SchedulerConfig_TriggerType) String() string {
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (SchedulerConfig_TriggerType) Descriptor() protoreflect.EnumDescriptor {
+	return file_testplans_suite_scheduler_proto_enumTypes[2].Descriptor()
+}
+
+func (SchedulerConfig_TriggerType) Type() protoreflect.EnumType {
+	return &file_testplans_suite_scheduler_proto_enumTypes[2]
+}
+
+func (x SchedulerConfig_TriggerType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use SchedulerConfig_TriggerType.Descriptor instead.
+func (SchedulerConfig_TriggerType) EnumDescriptor() ([]byte, []int) {
+	return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 1}
+}
+
 // LaunchProfile defines how often the suite is launched.
 type SchedulerConfig_LaunchCriteria_LaunchProfile int32
 
@@ -184,11 +232,11 @@
 }
 
 func (SchedulerConfig_LaunchCriteria_LaunchProfile) Descriptor() protoreflect.EnumDescriptor {
-	return file_testplans_suite_scheduler_proto_enumTypes[2].Descriptor()
+	return file_testplans_suite_scheduler_proto_enumTypes[3].Descriptor()
 }
 
 func (SchedulerConfig_LaunchCriteria_LaunchProfile) Type() protoreflect.EnumType {
-	return &file_testplans_suite_scheduler_proto_enumTypes[2]
+	return &file_testplans_suite_scheduler_proto_enumTypes[3]
 }
 
 func (x SchedulerConfig_LaunchCriteria_LaunchProfile) Number() protoreflect.EnumNumber {
@@ -868,11 +916,8 @@
 	TimeoutMins int32 `protobuf:"varint,3,opt,name=timeout_mins,json=timeoutMins,proto3" json:"timeout_mins,omitempty"`
 	// If sanity HW test passed, launch this test. Irrespective of the release build's
 	// final status.
-	OnlySanityTestRequired bool `protobuf:"varint,4,opt,name=only_sanity_test_required,json=onlySanityTestRequired,proto3" json:"only_sanity_test_required,omitempty"`
-	// The options are primary and all, which indicate whether we want to trigger this test
-	// whenever there is a new build for the primary board or only run the test when
-	// every board in a group has a new build.
-	TriggerType string `protobuf:"bytes,5,opt,name=trigger_type,json=triggerType,proto3" json:"trigger_type,omitempty"`
+	OnlySanityTestRequired bool                        `protobuf:"varint,4,opt,name=only_sanity_test_required,json=onlySanityTestRequired,proto3" json:"only_sanity_test_required,omitempty"`
+	TriggerType            SchedulerConfig_TriggerType `protobuf:"varint,5,opt,name=trigger_type,json=triggerType,proto3,enum=testplans.SchedulerConfig_TriggerType" json:"trigger_type,omitempty"`
 }
 
 func (x *SchedulerConfig_RunOptions) Reset() {
@@ -935,11 +980,11 @@
 	return false
 }
 
-func (x *SchedulerConfig_RunOptions) GetTriggerType() string {
+func (x *SchedulerConfig_RunOptions) GetTriggerType() SchedulerConfig_TriggerType {
 	if x != nil {
 		return x.TriggerType
 	}
-	return ""
+	return SchedulerConfig_PRIMARY
 }
 
 // A list of extra labels/dimensions to attach.
@@ -1017,7 +1062,7 @@
 	0x69, 0x61, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20,
 	0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x61,
 	0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x61, 0x72,
-	0x69, 0x61, 0x6e, 0x74, 0x22, 0xdb, 0x0d, 0x0a, 0x0f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
+	0x69, 0x61, 0x6e, 0x74, 0x22, 0xa8, 0x0e, 0x0a, 0x0f, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
 	0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
 	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
 	0x73, 0x75, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x75, 0x69,
@@ -1103,7 +1148,7 @@
 	0x52, 0x09, 0x71, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70,
 	0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x12,
 	0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28,
-	0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x1a, 0xb9, 0x02, 0x0a, 0x0a,
+	0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x1a, 0xe1, 0x02, 0x0a, 0x0a,
 	0x52, 0x75, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65,
 	0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x74, 0x72, 0x79,
 	0x12, 0x57, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02,
@@ -1117,30 +1162,35 @@
 	0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x73, 0x61, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x65, 0x73, 0x74,
 	0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
 	0x16, 0x6f, 0x6e, 0x6c, 0x79, 0x53, 0x61, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52,
-	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67,
-	0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74,
-	0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x53, 0x77,
-	0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12,
-	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
-	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
-	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x39, 0x0a, 0x0e, 0x46, 0x69, 0x72, 0x6d, 0x77,
-	0x61, 0x72, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53,
-	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x52,
-	0x4f, 0x53, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45,
-	0x10, 0x02, 0x22, 0x44, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x43,
-	0x66, 0x67, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20,
-	0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e,
-	0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
-	0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2a, 0x4b, 0x0a, 0x06, 0x42, 0x72, 0x61, 0x6e,
-	0x63, 0x68, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x5f, 0x55, 0x4e, 0x53,
-	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x41,
-	0x4e, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x45, 0x56, 0x10, 0x02, 0x12,
-	0x08, 0x0a, 0x04, 0x42, 0x45, 0x54, 0x41, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41,
-	0x42, 0x4c, 0x45, 0x10, 0x04, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f,
-	0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75,
-	0x6d, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
-	0x67, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x33,
+	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x49, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67,
+	0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e,
+	0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75,
+	0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65,
+	0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79,
+	0x70, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x44, 0x69,
+	0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,
+	0x39, 0x0a, 0x0e, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63,
+	0x68, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
+	0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x52, 0x4f, 0x53, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
+	0x46, 0x49, 0x52, 0x4d, 0x57, 0x41, 0x52, 0x45, 0x10, 0x02, 0x22, 0x23, 0x0a, 0x0b, 0x54, 0x72,
+	0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49,
+	0x4d, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x01, 0x22,
+	0x44, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x66, 0x67, 0x12,
+	0x34, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x1a, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e, 0x53, 0x63, 0x68,
+	0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, 0x6f,
+	0x6e, 0x66, 0x69, 0x67, 0x73, 0x2a, 0x4b, 0x0a, 0x06, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12,
+	0x16, 0x0a, 0x12, 0x42, 0x52, 0x41, 0x4e, 0x43, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
+	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x41, 0x4e, 0x41, 0x52,
+	0x59, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x45, 0x56, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04,
+	0x42, 0x45, 0x54, 0x41, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45,
+	0x10, 0x04, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75,
+	0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73,
+	0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f,
+	0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+	0x33,
 }
 
 var (
@@ -1155,43 +1205,45 @@
 	return file_testplans_suite_scheduler_proto_rawDescData
 }
 
-var file_testplans_suite_scheduler_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
+var file_testplans_suite_scheduler_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
 var file_testplans_suite_scheduler_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
 var file_testplans_suite_scheduler_proto_goTypes = []interface{}{
 	(Branch)(0),                                          // 0: testplans.Branch
 	(SchedulerConfig_FirmwareBranch)(0),                  // 1: testplans.SchedulerConfig.FirmwareBranch
-	(SchedulerConfig_LaunchCriteria_LaunchProfile)(0),    // 2: testplans.SchedulerConfig.LaunchCriteria.LaunchProfile
-	(*Board)(nil),                                        // 3: testplans.Board
-	(*LabConfig)(nil),                                    // 4: testplans.LabConfig
-	(*BoardVariant)(nil),                                 // 5: testplans.BoardVariant
-	(*SchedulerConfig)(nil),                              // 6: testplans.SchedulerConfig
-	(*SchedulerCfg)(nil),                                 // 7: testplans.SchedulerCfg
-	(*SchedulerConfig_Contact)(nil),                      // 8: testplans.SchedulerConfig.Contact
-	(*SchedulerConfig_LaunchCriteria)(nil),               // 9: testplans.SchedulerConfig.LaunchCriteria
-	(*SchedulerConfig_TargetOptions)(nil),                // 10: testplans.SchedulerConfig.TargetOptions
-	(*SchedulerConfig_PoolOptions)(nil),                  // 11: testplans.SchedulerConfig.PoolOptions
-	(*SchedulerConfig_RunOptions)(nil),                   // 12: testplans.SchedulerConfig.RunOptions
-	(*SchedulerConfig_RunOptions_SwarmingDimension)(nil), // 13: testplans.SchedulerConfig.RunOptions.SwarmingDimension
+	(SchedulerConfig_TriggerType)(0),                     // 2: testplans.SchedulerConfig.TriggerType
+	(SchedulerConfig_LaunchCriteria_LaunchProfile)(0),    // 3: testplans.SchedulerConfig.LaunchCriteria.LaunchProfile
+	(*Board)(nil),                                        // 4: testplans.Board
+	(*LabConfig)(nil),                                    // 5: testplans.LabConfig
+	(*BoardVariant)(nil),                                 // 6: testplans.BoardVariant
+	(*SchedulerConfig)(nil),                              // 7: testplans.SchedulerConfig
+	(*SchedulerCfg)(nil),                                 // 8: testplans.SchedulerCfg
+	(*SchedulerConfig_Contact)(nil),                      // 9: testplans.SchedulerConfig.Contact
+	(*SchedulerConfig_LaunchCriteria)(nil),               // 10: testplans.SchedulerConfig.LaunchCriteria
+	(*SchedulerConfig_TargetOptions)(nil),                // 11: testplans.SchedulerConfig.TargetOptions
+	(*SchedulerConfig_PoolOptions)(nil),                  // 12: testplans.SchedulerConfig.PoolOptions
+	(*SchedulerConfig_RunOptions)(nil),                   // 13: testplans.SchedulerConfig.RunOptions
+	(*SchedulerConfig_RunOptions_SwarmingDimension)(nil), // 14: testplans.SchedulerConfig.RunOptions.SwarmingDimension
 }
 var file_testplans_suite_scheduler_proto_depIdxs = []int32{
-	3,  // 0: testplans.LabConfig.boards:type_name -> testplans.Board
-	8,  // 1: testplans.SchedulerConfig.contacts:type_name -> testplans.SchedulerConfig.Contact
-	9,  // 2: testplans.SchedulerConfig.launch_criteria:type_name -> testplans.SchedulerConfig.LaunchCriteria
+	4,  // 0: testplans.LabConfig.boards:type_name -> testplans.Board
+	9,  // 1: testplans.SchedulerConfig.contacts:type_name -> testplans.SchedulerConfig.Contact
+	10, // 2: testplans.SchedulerConfig.launch_criteria:type_name -> testplans.SchedulerConfig.LaunchCriteria
 	0,  // 3: testplans.SchedulerConfig.branches:type_name -> testplans.Branch
-	10, // 4: testplans.SchedulerConfig.target_options:type_name -> testplans.SchedulerConfig.TargetOptions
-	11, // 5: testplans.SchedulerConfig.pool_options:type_name -> testplans.SchedulerConfig.PoolOptions
+	11, // 4: testplans.SchedulerConfig.target_options:type_name -> testplans.SchedulerConfig.TargetOptions
+	12, // 5: testplans.SchedulerConfig.pool_options:type_name -> testplans.SchedulerConfig.PoolOptions
 	1,  // 6: testplans.SchedulerConfig.firmware_ro_build_spec:type_name -> testplans.SchedulerConfig.FirmwareBranch
-	12, // 7: testplans.SchedulerConfig.run_options:type_name -> testplans.SchedulerConfig.RunOptions
-	6,  // 8: testplans.SchedulerCfg.configs:type_name -> testplans.SchedulerConfig
-	2,  // 9: testplans.SchedulerConfig.LaunchCriteria.launch_profile:type_name -> testplans.SchedulerConfig.LaunchCriteria.LaunchProfile
-	5,  // 10: testplans.SchedulerConfig.TargetOptions.variants_list:type_name -> testplans.BoardVariant
-	5,  // 11: testplans.SchedulerConfig.TargetOptions.exclude_variants:type_name -> testplans.BoardVariant
-	13, // 12: testplans.SchedulerConfig.RunOptions.dimensions:type_name -> testplans.SchedulerConfig.RunOptions.SwarmingDimension
-	13, // [13:13] is the sub-list for method output_type
-	13, // [13:13] is the sub-list for method input_type
-	13, // [13:13] is the sub-list for extension type_name
-	13, // [13:13] is the sub-list for extension extendee
-	0,  // [0:13] is the sub-list for field type_name
+	13, // 7: testplans.SchedulerConfig.run_options:type_name -> testplans.SchedulerConfig.RunOptions
+	7,  // 8: testplans.SchedulerCfg.configs:type_name -> testplans.SchedulerConfig
+	3,  // 9: testplans.SchedulerConfig.LaunchCriteria.launch_profile:type_name -> testplans.SchedulerConfig.LaunchCriteria.LaunchProfile
+	6,  // 10: testplans.SchedulerConfig.TargetOptions.variants_list:type_name -> testplans.BoardVariant
+	6,  // 11: testplans.SchedulerConfig.TargetOptions.exclude_variants:type_name -> testplans.BoardVariant
+	14, // 12: testplans.SchedulerConfig.RunOptions.dimensions:type_name -> testplans.SchedulerConfig.RunOptions.SwarmingDimension
+	2,  // 13: testplans.SchedulerConfig.RunOptions.trigger_type:type_name -> testplans.SchedulerConfig.TriggerType
+	14, // [14:14] is the sub-list for method output_type
+	14, // [14:14] is the sub-list for method input_type
+	14, // [14:14] is the sub-list for extension type_name
+	14, // [14:14] is the sub-list for extension extendee
+	0,  // [0:14] is the sub-list for field type_name
 }
 
 func init() { file_testplans_suite_scheduler_proto_init() }
@@ -1338,7 +1390,7 @@
 		File: protoimpl.DescBuilder{
 			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 			RawDescriptor: file_testplans_suite_scheduler_proto_rawDesc,
-			NumEnums:      3,
+			NumEnums:      4,
 			NumMessages:   11,
 			NumExtensions: 0,
 			NumServices:   0,
diff --git a/src/testplans/suite_scheduler.proto b/src/testplans/suite_scheduler.proto
index 8acdcef..93d6771 100644
--- a/src/testplans/suite_scheduler.proto
+++ b/src/testplans/suite_scheduler.proto
@@ -144,6 +144,12 @@
     }
     FirmwareBranch firmware_ro_build_spec = 8;
 
+    enum TriggerType {
+      // Trigger test whenever there is a new build for the primary board.
+      PRIMARY = 0;
+      // Trigger test when every board in the group has a new build.
+      ALL = 1;
+    }
     // Execution related options.
     message RunOptions {
         // Whether to retry if the task fails.
@@ -161,11 +167,8 @@
         int32 timeout_mins = 3;
         // If sanity HW test passed, launch this test. Irrespective of the release build's
         // final status.
-        bool only_sanity_test_required = 4;
-        // The options are primary and all, which indicate whether we want to trigger this test
-        // whenever there is a new build for the primary board or only run the test when
-        // every board in a group has a new build.
-        string trigger_type = 5;
+        bool only_sanity_test_required = 4; 
+        TriggerType trigger_type = 5;
     }
     RunOptions run_options = 9;
 
