| // Copyright 2020 The ChromiumOS Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // WARNING: DO NOT USE these protos outside of suite scheduler. This is |
| // only intended to help the transition to starlark configs. It will |
| // be deprecated once the new replacement is in place. |
| |
| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // versions: |
| // protoc-gen-go v1.27.1 |
| // protoc v3.17.1 |
| // source: testplans/suite_scheduler.proto |
| |
| package testplans |
| |
| import ( |
| api "go.chromium.org/chromiumos/config/go/test/api" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| reflect "reflect" |
| sync "sync" |
| ) |
| |
| const ( |
| // Verify that this generated code is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) |
| // Verify that runtime/protoimpl is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) |
| ) |
| |
| // Branches that can be targeted. |
| type Branch int32 |
| |
| const ( |
| Branch_BRANCH_UNSPECIFIED Branch = 0 |
| // Canary Branch or ToT. |
| Branch_CANARY Branch = 1 |
| // Dev Branch or ToT-1. |
| Branch_DEV Branch = 2 |
| // Beta Branch or ToT-2. |
| Branch_BETA Branch = 3 |
| // Stable Branch or ToT-3. |
| Branch_STABLE Branch = 4 |
| // Long term support tracking branch. This channel does not follow a ToT-N |
| // schema. |
| Branch_LTS Branch = 5 |
| ) |
| |
| // Enum value maps for Branch. |
| var ( |
| Branch_name = map[int32]string{ |
| 0: "BRANCH_UNSPECIFIED", |
| 1: "CANARY", |
| 2: "DEV", |
| 3: "BETA", |
| 4: "STABLE", |
| 5: "LTS", |
| } |
| Branch_value = map[string]int32{ |
| "BRANCH_UNSPECIFIED": 0, |
| "CANARY": 1, |
| "DEV": 2, |
| "BETA": 3, |
| "STABLE": 4, |
| "LTS": 5, |
| } |
| ) |
| |
| func (x Branch) Enum() *Branch { |
| p := new(Branch) |
| *p = x |
| return p |
| } |
| |
| func (x Branch) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (Branch) Descriptor() protoreflect.EnumDescriptor { |
| return file_testplans_suite_scheduler_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (Branch) Type() protoreflect.EnumType { |
| return &file_testplans_suite_scheduler_proto_enumTypes[0] |
| } |
| |
| func (x Branch) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use Branch.Descriptor instead. |
| func (Branch) EnumDescriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{0} |
| } |
| |
| // Whether to use firmware from ToT or firmware branch. |
| type SchedulerConfig_FirmwareBranch int32 |
| |
| const ( |
| SchedulerConfig_UNSPECIFIED SchedulerConfig_FirmwareBranch = 0 |
| // Canary Branch or ToT. |
| SchedulerConfig_CROS SchedulerConfig_FirmwareBranch = 1 |
| // Firmware branch. |
| SchedulerConfig_FIRMWARE SchedulerConfig_FirmwareBranch = 2 |
| // Dev Branch or ToT-1. |
| SchedulerConfig_DEV SchedulerConfig_FirmwareBranch = 3 |
| // Beta Branch or ToT-2. |
| SchedulerConfig_BETA SchedulerConfig_FirmwareBranch = 4 |
| // Stable Branch or ToT-3. |
| SchedulerConfig_STABLE SchedulerConfig_FirmwareBranch = 5 |
| ) |
| |
| // Enum value maps for SchedulerConfig_FirmwareBranch. |
| var ( |
| SchedulerConfig_FirmwareBranch_name = map[int32]string{ |
| 0: "UNSPECIFIED", |
| 1: "CROS", |
| 2: "FIRMWARE", |
| 3: "DEV", |
| 4: "BETA", |
| 5: "STABLE", |
| } |
| SchedulerConfig_FirmwareBranch_value = map[string]int32{ |
| "UNSPECIFIED": 0, |
| "CROS": 1, |
| "FIRMWARE": 2, |
| "DEV": 3, |
| "BETA": 4, |
| "STABLE": 5, |
| } |
| ) |
| |
| func (x SchedulerConfig_FirmwareBranch) Enum() *SchedulerConfig_FirmwareBranch { |
| p := new(SchedulerConfig_FirmwareBranch) |
| *p = x |
| return p |
| } |
| |
| func (x SchedulerConfig_FirmwareBranch) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (SchedulerConfig_FirmwareBranch) Descriptor() protoreflect.EnumDescriptor { |
| return file_testplans_suite_scheduler_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (SchedulerConfig_FirmwareBranch) Type() protoreflect.EnumType { |
| return &file_testplans_suite_scheduler_proto_enumTypes[1] |
| } |
| |
| func (x SchedulerConfig_FirmwareBranch) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_FirmwareBranch.Descriptor instead. |
| func (SchedulerConfig_FirmwareBranch) EnumDescriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 0} |
| } |
| |
| type SchedulerConfig_TriggerType int32 |
| |
| const ( |
| SchedulerConfig_TRIGGER_UNSPECIFIED SchedulerConfig_TriggerType = 0 |
| // Trigger test whenever there is a new build for the primary board. |
| SchedulerConfig_PRIMARY SchedulerConfig_TriggerType = 1 |
| // Trigger test when every board in the group has a new build. |
| SchedulerConfig_ALL SchedulerConfig_TriggerType = 2 |
| ) |
| |
| // Enum value maps for SchedulerConfig_TriggerType. |
| var ( |
| SchedulerConfig_TriggerType_name = map[int32]string{ |
| 0: "TRIGGER_UNSPECIFIED", |
| 1: "PRIMARY", |
| 2: "ALL", |
| } |
| SchedulerConfig_TriggerType_value = map[string]int32{ |
| "TRIGGER_UNSPECIFIED": 0, |
| "PRIMARY": 1, |
| "ALL": 2, |
| } |
| ) |
| |
| 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 |
| |
| const ( |
| SchedulerConfig_LaunchCriteria_UNSPECIFIED SchedulerConfig_LaunchCriteria_LaunchProfile = 0 |
| // Run on every new release build of the boards/variants targeted. |
| SchedulerConfig_LaunchCriteria_NEW_BUILD SchedulerConfig_LaunchCriteria_LaunchProfile = 1 |
| // Run once a day at the specified hour. Used to be "NIGHTLY". |
| SchedulerConfig_LaunchCriteria_DAILY SchedulerConfig_LaunchCriteria_LaunchProfile = 2 |
| // Run once a week at the specified time. |
| SchedulerConfig_LaunchCriteria_WEEKLY SchedulerConfig_LaunchCriteria_LaunchProfile = 3 |
| // NOT SUPPORTED. Will be supported in the redesign. |
| SchedulerConfig_LaunchCriteria_CRON_BASED SchedulerConfig_LaunchCriteria_LaunchProfile = 4 |
| // Run once every other week at the specified time |
| SchedulerConfig_LaunchCriteria_FORTNIGHTLY SchedulerConfig_LaunchCriteria_LaunchProfile = 5 |
| // Run on when all release build of the boards/variants targeted in lab |
| // config have finished. |
| SchedulerConfig_LaunchCriteria_NEW_BUILD_3D SchedulerConfig_LaunchCriteria_LaunchProfile = 6 |
| ) |
| |
| // Enum value maps for SchedulerConfig_LaunchCriteria_LaunchProfile. |
| var ( |
| SchedulerConfig_LaunchCriteria_LaunchProfile_name = map[int32]string{ |
| 0: "UNSPECIFIED", |
| 1: "NEW_BUILD", |
| 2: "DAILY", |
| 3: "WEEKLY", |
| 4: "CRON_BASED", |
| 5: "FORTNIGHTLY", |
| 6: "NEW_BUILD_3D", |
| } |
| SchedulerConfig_LaunchCriteria_LaunchProfile_value = map[string]int32{ |
| "UNSPECIFIED": 0, |
| "NEW_BUILD": 1, |
| "DAILY": 2, |
| "WEEKLY": 3, |
| "CRON_BASED": 4, |
| "FORTNIGHTLY": 5, |
| "NEW_BUILD_3D": 6, |
| } |
| ) |
| |
| func (x SchedulerConfig_LaunchCriteria_LaunchProfile) Enum() *SchedulerConfig_LaunchCriteria_LaunchProfile { |
| p := new(SchedulerConfig_LaunchCriteria_LaunchProfile) |
| *p = x |
| return p |
| } |
| |
| func (x SchedulerConfig_LaunchCriteria_LaunchProfile) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (SchedulerConfig_LaunchCriteria_LaunchProfile) Descriptor() protoreflect.EnumDescriptor { |
| return file_testplans_suite_scheduler_proto_enumTypes[3].Descriptor() |
| } |
| |
| func (SchedulerConfig_LaunchCriteria_LaunchProfile) Type() protoreflect.EnumType { |
| return &file_testplans_suite_scheduler_proto_enumTypes[3] |
| } |
| |
| func (x SchedulerConfig_LaunchCriteria_LaunchProfile) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_LaunchCriteria_LaunchProfile.Descriptor instead. |
| func (SchedulerConfig_LaunchCriteria_LaunchProfile) EnumDescriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 1, 0} |
| } |
| |
| // Defines a board, its variants and its models. |
| type Board struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Name of the board. Eg: eve. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // List of variants assiciated with the board. |
| // This should only be the suffixes. Eg: ['-kernelnext']. |
| Variants []string `protobuf:"bytes,2,rep,name=variants,proto3" json:"variants,omitempty"` |
| // List of models of the boards to test on. |
| Models []string `protobuf:"bytes,3,rep,name=models,proto3" json:"models,omitempty"` |
| } |
| |
| func (x *Board) Reset() { |
| *x = Board{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Board) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Board) ProtoMessage() {} |
| |
| func (x *Board) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[0] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use Board.ProtoReflect.Descriptor instead. |
| func (*Board) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *Board) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *Board) GetVariants() []string { |
| if x != nil { |
| return x.Variants |
| } |
| return nil |
| } |
| |
| func (x *Board) GetModels() []string { |
| if x != nil { |
| return x.Models |
| } |
| return nil |
| } |
| |
| // Aims to reflect data in lab_config.ini. |
| type LabConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // List of board definitions for ChromeOS. |
| Boards []*Board `protobuf:"bytes,1,rep,name=boards,proto3" json:"boards,omitempty"` |
| // List of board definitions for Android. |
| AndroidBoards []*Board `protobuf:"bytes,2,rep,name=android_boards,json=androidBoards,proto3" json:"android_boards,omitempty"` |
| } |
| |
| func (x *LabConfig) Reset() { |
| *x = LabConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *LabConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*LabConfig) ProtoMessage() {} |
| |
| func (x *LabConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[1] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use LabConfig.ProtoReflect.Descriptor instead. |
| func (*LabConfig) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *LabConfig) GetBoards() []*Board { |
| if x != nil { |
| return x.Boards |
| } |
| return nil |
| } |
| |
| func (x *LabConfig) GetAndroidBoards() []*Board { |
| if x != nil { |
| return x.AndroidBoards |
| } |
| return nil |
| } |
| |
| // Specify a Board and Variant pair. |
| type BoardVariant struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Board string `protobuf:"bytes,1,opt,name=board,proto3" json:"board,omitempty"` |
| Variant string `protobuf:"bytes,2,opt,name=variant,proto3" json:"variant,omitempty"` |
| } |
| |
| func (x *BoardVariant) Reset() { |
| *x = BoardVariant{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BoardVariant) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BoardVariant) ProtoMessage() {} |
| |
| func (x *BoardVariant) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[2] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use BoardVariant.ProtoReflect.Descriptor instead. |
| func (*BoardVariant) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (x *BoardVariant) GetBoard() string { |
| if x != nil { |
| return x.Board |
| } |
| return "" |
| } |
| |
| func (x *BoardVariant) GetVariant() string { |
| if x != nil { |
| return x.Variant |
| } |
| return "" |
| } |
| |
| // Most fields are the same as suite_scheduler.ini just better organized. |
| // The entries will be used to generate a suite_scheduler.ini in starlark |
| // scripts. next: 23 |
| type SchedulerConfig struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Name of the config. Needs to be unique. |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Name of the suite to run. |
| Suite string `protobuf:"bytes,2,opt,name=suite,proto3" json:"suite,omitempty"` |
| Contacts []*SchedulerConfig_Contact `protobuf:"bytes,3,rep,name=contacts,proto3" json:"contacts,omitempty"` |
| LaunchCriteria *SchedulerConfig_LaunchCriteria `protobuf:"bytes,4,opt,name=launch_criteria,json=launchCriteria,proto3" json:"launch_criteria,omitempty"` |
| // Branches to target. |
| Branches []Branch `protobuf:"varint,5,rep,packed,name=branches,proto3,enum=testplans.Branch" json:"branches,omitempty"` |
| TargetOptions *SchedulerConfig_TargetOptions `protobuf:"bytes,6,opt,name=target_options,json=targetOptions,proto3" json:"target_options,omitempty"` |
| PoolOptions *SchedulerConfig_PoolOptions `protobuf:"bytes,7,opt,name=pool_options,json=poolOptions,proto3" json:"pool_options,omitempty"` |
| // Assume as AP build. |
| // |
| // Types that are assignable to FirmwareRo: |
| // *SchedulerConfig_FirmwareRoBuildSpec |
| // *SchedulerConfig_FirmwareRoVersion |
| FirmwareRo isSchedulerConfig_FirmwareRo `protobuf_oneof:"firmware_ro"` |
| // Assume as AP build. |
| // |
| // Types that are assignable to FirmwareRw: |
| // *SchedulerConfig_FirmwareRwBuildSpec |
| // *SchedulerConfig_FirmwareRwVersion |
| FirmwareRw isSchedulerConfig_FirmwareRw `protobuf_oneof:"firmware_rw"` |
| // Types that are assignable to FirmwareEcRo: |
| // *SchedulerConfig_FirmwareEcRoBuildSpec |
| // *SchedulerConfig_FirmwareEcRoVersion |
| FirmwareEcRo isSchedulerConfig_FirmwareEcRo `protobuf_oneof:"firmware_ec_ro"` |
| // Types that are assignable to FirmwareEcRw: |
| // *SchedulerConfig_FirmwareEcRwBuildSpec |
| // *SchedulerConfig_FirmwareEcRwVersion |
| FirmwareEcRw isSchedulerConfig_FirmwareEcRw `protobuf_oneof:"firmware_ec_rw"` |
| // The name of the firmware branch to use for firmware_ro_build_spec |
| // and firmware_rw_build_spec is normally the derived from the board. |
| // Set firmware_board_name to override this. |
| FirmwareBoardName string `protobuf:"bytes,14,opt,name=firmware_board_name,json=firmwareBoardName,proto3" json:"firmware_board_name,omitempty"` |
| RunOptions *SchedulerConfig_RunOptions `protobuf:"bytes,9,opt,name=run_options,json=runOptions,proto3" json:"run_options,omitempty"` |
| // Name of the config, used for analytics. Does not have to be unique. |
| AnalyticsName string `protobuf:"bytes,10,opt,name=analytics_name,json=analyticsName,proto3" json:"analytics_name,omitempty"` |
| // The android image version for android provisioning |
| AndroidImageVersion string `protobuf:"bytes,15,opt,name=android_image_version,json=androidImageVersion,proto3" json:"android_image_version,omitempty"` |
| // GMSCORE cipd package ref for android provisioning |
| GmsCorePackage string `protobuf:"bytes,16,opt,name=gms_core_package,json=gmsCorePackage,proto3" json:"gms_core_package,omitempty"` |
| // List of Karbon Filters for the ctpv2 request object. |
| // To be converted to json str for config generation. |
| KarbonFilters []*api.CTPFilter `protobuf:"bytes,17,rep,name=karbon_filters,json=karbonFilters,proto3" json:"karbon_filters,omitempty"` |
| // List of Koffee Filters for the ctpv2 request object. |
| // To be converted to json str for config generation. |
| KoffeeFilters []*api.CTPFilter `protobuf:"bytes,18,rep,name=koffee_filters,json=koffeeFilters,proto3" json:"koffee_filters,omitempty"` |
| // Args will be provided to the respective test harness. |
| TestArgs string `protobuf:"bytes,23,opt,name=test_args,json=testArgs,proto3" json:"test_args,omitempty"` |
| // if enable_autotest_sharding is True, then autotest tests will be sharded. |
| EnableAutotestSharding bool `protobuf:"varint,24,opt,name=enable_autotest_sharding,json=enableAutotestSharding,proto3" json:"enable_autotest_sharding,omitempty"` |
| // If set the suite will be run using CTPv2, using the 3D solver to determine |
| // hardware Note all tests within this suite/group *must* have a 3d expression |
| // set in the respective harness |
| DddSuite bool `protobuf:"varint,25,opt,name=ddd_suite,json=dddSuite,proto3" json:"ddd_suite,omitempty"` |
| } |
| |
| func (x *SchedulerConfig) Reset() { |
| *x = SchedulerConfig{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig) ProtoMessage() {} |
| |
| func (x *SchedulerConfig) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[3] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *SchedulerConfig) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig) GetSuite() string { |
| if x != nil { |
| return x.Suite |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig) GetContacts() []*SchedulerConfig_Contact { |
| if x != nil { |
| return x.Contacts |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetLaunchCriteria() *SchedulerConfig_LaunchCriteria { |
| if x != nil { |
| return x.LaunchCriteria |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetBranches() []Branch { |
| if x != nil { |
| return x.Branches |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetTargetOptions() *SchedulerConfig_TargetOptions { |
| if x != nil { |
| return x.TargetOptions |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetPoolOptions() *SchedulerConfig_PoolOptions { |
| if x != nil { |
| return x.PoolOptions |
| } |
| return nil |
| } |
| |
| func (m *SchedulerConfig) GetFirmwareRo() isSchedulerConfig_FirmwareRo { |
| if m != nil { |
| return m.FirmwareRo |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetFirmwareRoBuildSpec() SchedulerConfig_FirmwareBranch { |
| if x, ok := x.GetFirmwareRo().(*SchedulerConfig_FirmwareRoBuildSpec); ok { |
| return x.FirmwareRoBuildSpec |
| } |
| return SchedulerConfig_UNSPECIFIED |
| } |
| |
| func (x *SchedulerConfig) GetFirmwareRoVersion() string { |
| if x, ok := x.GetFirmwareRo().(*SchedulerConfig_FirmwareRoVersion); ok { |
| return x.FirmwareRoVersion |
| } |
| return "" |
| } |
| |
| func (m *SchedulerConfig) GetFirmwareRw() isSchedulerConfig_FirmwareRw { |
| if m != nil { |
| return m.FirmwareRw |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetFirmwareRwBuildSpec() SchedulerConfig_FirmwareBranch { |
| if x, ok := x.GetFirmwareRw().(*SchedulerConfig_FirmwareRwBuildSpec); ok { |
| return x.FirmwareRwBuildSpec |
| } |
| return SchedulerConfig_UNSPECIFIED |
| } |
| |
| func (x *SchedulerConfig) GetFirmwareRwVersion() string { |
| if x, ok := x.GetFirmwareRw().(*SchedulerConfig_FirmwareRwVersion); ok { |
| return x.FirmwareRwVersion |
| } |
| return "" |
| } |
| |
| func (m *SchedulerConfig) GetFirmwareEcRo() isSchedulerConfig_FirmwareEcRo { |
| if m != nil { |
| return m.FirmwareEcRo |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetFirmwareEcRoBuildSpec() SchedulerConfig_FirmwareBranch { |
| if x, ok := x.GetFirmwareEcRo().(*SchedulerConfig_FirmwareEcRoBuildSpec); ok { |
| return x.FirmwareEcRoBuildSpec |
| } |
| return SchedulerConfig_UNSPECIFIED |
| } |
| |
| func (x *SchedulerConfig) GetFirmwareEcRoVersion() string { |
| if x, ok := x.GetFirmwareEcRo().(*SchedulerConfig_FirmwareEcRoVersion); ok { |
| return x.FirmwareEcRoVersion |
| } |
| return "" |
| } |
| |
| func (m *SchedulerConfig) GetFirmwareEcRw() isSchedulerConfig_FirmwareEcRw { |
| if m != nil { |
| return m.FirmwareEcRw |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetFirmwareEcRwBuildSpec() SchedulerConfig_FirmwareBranch { |
| if x, ok := x.GetFirmwareEcRw().(*SchedulerConfig_FirmwareEcRwBuildSpec); ok { |
| return x.FirmwareEcRwBuildSpec |
| } |
| return SchedulerConfig_UNSPECIFIED |
| } |
| |
| func (x *SchedulerConfig) GetFirmwareEcRwVersion() string { |
| if x, ok := x.GetFirmwareEcRw().(*SchedulerConfig_FirmwareEcRwVersion); ok { |
| return x.FirmwareEcRwVersion |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig) GetFirmwareBoardName() string { |
| if x != nil { |
| return x.FirmwareBoardName |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig) GetRunOptions() *SchedulerConfig_RunOptions { |
| if x != nil { |
| return x.RunOptions |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetAnalyticsName() string { |
| if x != nil { |
| return x.AnalyticsName |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig) GetAndroidImageVersion() string { |
| if x != nil { |
| return x.AndroidImageVersion |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig) GetGmsCorePackage() string { |
| if x != nil { |
| return x.GmsCorePackage |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig) GetKarbonFilters() []*api.CTPFilter { |
| if x != nil { |
| return x.KarbonFilters |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetKoffeeFilters() []*api.CTPFilter { |
| if x != nil { |
| return x.KoffeeFilters |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig) GetTestArgs() string { |
| if x != nil { |
| return x.TestArgs |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig) GetEnableAutotestSharding() bool { |
| if x != nil { |
| return x.EnableAutotestSharding |
| } |
| return false |
| } |
| |
| func (x *SchedulerConfig) GetDddSuite() bool { |
| if x != nil { |
| return x.DddSuite |
| } |
| return false |
| } |
| |
| type isSchedulerConfig_FirmwareRo interface { |
| isSchedulerConfig_FirmwareRo() |
| } |
| |
| type SchedulerConfig_FirmwareRoBuildSpec struct { |
| FirmwareRoBuildSpec SchedulerConfig_FirmwareBranch `protobuf:"varint,8,opt,name=firmware_ro_build_spec,json=firmwareRoBuildSpec,proto3,enum=testplans.SchedulerConfig_FirmwareBranch,oneof"` |
| } |
| |
| type SchedulerConfig_FirmwareRoVersion struct { |
| // Pinned RO firmware path (e.g. coral-firmware/R64-10068.106.0) |
| // Uses firmware_from_source.tar.bz2 from this archive path |
| // instead of pulling from latest firmware-branch or cros-tot build. |
| FirmwareRoVersion string `protobuf:"bytes,11,opt,name=firmware_ro_version,json=firmwareRoVersion,proto3,oneof"` |
| } |
| |
| func (*SchedulerConfig_FirmwareRoBuildSpec) isSchedulerConfig_FirmwareRo() {} |
| |
| func (*SchedulerConfig_FirmwareRoVersion) isSchedulerConfig_FirmwareRo() {} |
| |
| type isSchedulerConfig_FirmwareRw interface { |
| isSchedulerConfig_FirmwareRw() |
| } |
| |
| type SchedulerConfig_FirmwareRwBuildSpec struct { |
| FirmwareRwBuildSpec SchedulerConfig_FirmwareBranch `protobuf:"varint,12,opt,name=firmware_rw_build_spec,json=firmwareRwBuildSpec,proto3,enum=testplans.SchedulerConfig_FirmwareBranch,oneof"` |
| } |
| |
| type SchedulerConfig_FirmwareRwVersion struct { |
| // Pinned RW firmware path (e.g. coral-firmware/R64-10068.106.0) |
| // Uses firmware_from_source.tar.bz2 from this archive path |
| // instead of pulling from latest firmware-branch or cros-tot build. |
| FirmwareRwVersion string `protobuf:"bytes,13,opt,name=firmware_rw_version,json=firmwareRwVersion,proto3,oneof"` |
| } |
| |
| func (*SchedulerConfig_FirmwareRwBuildSpec) isSchedulerConfig_FirmwareRw() {} |
| |
| func (*SchedulerConfig_FirmwareRwVersion) isSchedulerConfig_FirmwareRw() {} |
| |
| type isSchedulerConfig_FirmwareEcRo interface { |
| isSchedulerConfig_FirmwareEcRo() |
| } |
| |
| type SchedulerConfig_FirmwareEcRoBuildSpec struct { |
| FirmwareEcRoBuildSpec SchedulerConfig_FirmwareBranch `protobuf:"varint,19,opt,name=firmware_ec_ro_build_spec,json=firmwareEcRoBuildSpec,proto3,enum=testplans.SchedulerConfig_FirmwareBranch,oneof"` |
| } |
| |
| type SchedulerConfig_FirmwareEcRoVersion struct { |
| // Pinned RO firmware path (e.g. coral-firmware/R64-10068.106.0) |
| // Uses firmware_from_source.tar.bz2 from this archive path |
| // instead of pulling from latest firmware-branch or cros-tot build. |
| FirmwareEcRoVersion string `protobuf:"bytes,20,opt,name=firmware_ec_ro_version,json=firmwareEcRoVersion,proto3,oneof"` |
| } |
| |
| func (*SchedulerConfig_FirmwareEcRoBuildSpec) isSchedulerConfig_FirmwareEcRo() {} |
| |
| func (*SchedulerConfig_FirmwareEcRoVersion) isSchedulerConfig_FirmwareEcRo() {} |
| |
| type isSchedulerConfig_FirmwareEcRw interface { |
| isSchedulerConfig_FirmwareEcRw() |
| } |
| |
| type SchedulerConfig_FirmwareEcRwBuildSpec struct { |
| FirmwareEcRwBuildSpec SchedulerConfig_FirmwareBranch `protobuf:"varint,21,opt,name=firmware_ec_rw_build_spec,json=firmwareEcRwBuildSpec,proto3,enum=testplans.SchedulerConfig_FirmwareBranch,oneof"` |
| } |
| |
| type SchedulerConfig_FirmwareEcRwVersion struct { |
| // Pinned RW firmware path (e.g. coral-firmware/R64-10068.106.0) |
| // Uses firmware_from_source.tar.bz2 from this archive path |
| // instead of pulling from latest firmware-branch or cros-tot build. |
| FirmwareEcRwVersion string `protobuf:"bytes,22,opt,name=firmware_ec_rw_version,json=firmwareEcRwVersion,proto3,oneof"` |
| } |
| |
| func (*SchedulerConfig_FirmwareEcRwBuildSpec) isSchedulerConfig_FirmwareEcRw() {} |
| |
| func (*SchedulerConfig_FirmwareEcRwVersion) isSchedulerConfig_FirmwareEcRw() {} |
| |
| // A proto to contain all the configs. |
| type SchedulerCfg struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Configs []*SchedulerConfig `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"` |
| } |
| |
| func (x *SchedulerCfg) Reset() { |
| *x = SchedulerCfg{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerCfg) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerCfg) ProtoMessage() {} |
| |
| func (x *SchedulerCfg) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[4] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerCfg.ProtoReflect.Descriptor instead. |
| func (*SchedulerCfg) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *SchedulerCfg) GetConfigs() []*SchedulerConfig { |
| if x != nil { |
| return x.Configs |
| } |
| return nil |
| } |
| |
| // Contact emails will one day be paged in case of problems with the config. |
| type SchedulerConfig_Contact struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"` |
| } |
| |
| func (x *SchedulerConfig_Contact) Reset() { |
| *x = SchedulerConfig_Contact{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig_Contact) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig_Contact) ProtoMessage() {} |
| |
| func (x *SchedulerConfig_Contact) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[5] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_Contact.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig_Contact) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 0} |
| } |
| |
| func (x *SchedulerConfig_Contact) GetEmail() string { |
| if x != nil { |
| return x.Email |
| } |
| return "" |
| } |
| |
| // LaunchCriteria specifies when the suite should be launched. |
| type SchedulerConfig_LaunchCriteria struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| LaunchProfile SchedulerConfig_LaunchCriteria_LaunchProfile `protobuf:"varint,1,opt,name=launch_profile,json=launchProfile,proto3,enum=testplans.SchedulerConfig_LaunchCriteria_LaunchProfile" json:"launch_profile,omitempty"` |
| // Hour at which to run. Needs to be specified for nightly and weekly |
| // profiles. Has to be [0, 23]. |
| Hour int32 `protobuf:"varint,2,opt,name=hour,proto3" json:"hour,omitempty"` |
| // Day on which to run. Needs to be specified for weekly AND fortnightly |
| // profile. Has to be [0, 6]. |
| Day int32 `protobuf:"varint,3,opt,name=day,proto3" json:"day,omitempty"` |
| // NOT SUPPORTED. Cron compatible schedule eg: "* * 1,3,5 * *". |
| CronSchedule string `protobuf:"bytes,4,opt,name=cron_schedule,json=cronSchedule,proto3" json:"cron_schedule,omitempty"` |
| } |
| |
| func (x *SchedulerConfig_LaunchCriteria) Reset() { |
| *x = SchedulerConfig_LaunchCriteria{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig_LaunchCriteria) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig_LaunchCriteria) ProtoMessage() {} |
| |
| func (x *SchedulerConfig_LaunchCriteria) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[6] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_LaunchCriteria.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig_LaunchCriteria) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 1} |
| } |
| |
| func (x *SchedulerConfig_LaunchCriteria) GetLaunchProfile() SchedulerConfig_LaunchCriteria_LaunchProfile { |
| if x != nil { |
| return x.LaunchProfile |
| } |
| return SchedulerConfig_LaunchCriteria_UNSPECIFIED |
| } |
| |
| func (x *SchedulerConfig_LaunchCriteria) GetHour() int32 { |
| if x != nil { |
| return x.Hour |
| } |
| return 0 |
| } |
| |
| func (x *SchedulerConfig_LaunchCriteria) GetDay() int32 { |
| if x != nil { |
| return x.Day |
| } |
| return 0 |
| } |
| |
| func (x *SchedulerConfig_LaunchCriteria) GetCronSchedule() string { |
| if x != nil { |
| return x.CronSchedule |
| } |
| return "" |
| } |
| |
| // Set of boards, variants and models to target. |
| // next tag: 12 |
| type SchedulerConfig_TargetOptions struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Use at the most one among the two fields below. If boards_list is empty, |
| // all boards are targeted. exclude_boards will exclude those boards from |
| // the all boards list. |
| BoardsList []string `protobuf:"bytes,1,rep,name=boards_list,json=boardsList,proto3" json:"boards_list,omitempty"` |
| ExcludeBoards []string `protobuf:"bytes,2,rep,name=exclude_boards,json=excludeBoards,proto3" json:"exclude_boards,omitempty"` |
| // To specify variants, either all variants can be skipped. |
| SkipVariants bool `protobuf:"varint,8,opt,name=skip_variants,json=skipVariants,proto3" json:"skip_variants,omitempty"` |
| // OR use at the most one among the two fields below. If variants_list is |
| // empty, all variants are targeted. exclude_variants will exclude those |
| // variants from the all variants list. |
| VariantsList []*BoardVariant `protobuf:"bytes,3,rep,name=variants_list,json=variantsList,proto3" json:"variants_list,omitempty"` |
| ExcludeVariants []*BoardVariant `protobuf:"bytes,4,rep,name=exclude_variants,json=excludeVariants,proto3" json:"exclude_variants,omitempty"` |
| // There's two ways of specifying models. If all of these fields are empty, |
| // all possible models are targeted. |
| // Models to be targeted can be listed explicitly in models_list. |
| ModelsList []string `protobuf:"bytes,5,rep,name=models_list,json=modelsList,proto3" json:"models_list,omitempty"` |
| // OR start with the complete list and exclude some specific models. |
| // any_model only tests the suite on a single model. |
| AnyModel bool `protobuf:"varint,6,opt,name=any_model,json=anyModel,proto3" json:"any_model,omitempty"` |
| ExcludeModels []string `protobuf:"bytes,7,rep,name=exclude_models,json=excludeModels,proto3" json:"exclude_models,omitempty"` |
| // Option to speicify Mult-DUTs testing board/model, use only one of |
| // below options. When below multi-DUTs options are invoked, boards_list |
| // models_list, variants, and exclude control above will be ignored. |
| MultiDutsBoardsList []*SchedulerConfig_TargetOptions_MultiDutsByBoard `protobuf:"bytes,9,rep,name=multi_duts_boards_list,json=multiDutsBoardsList,proto3" json:"multi_duts_boards_list,omitempty"` |
| MultiDutsModelsList []*SchedulerConfig_TargetOptions_MultiDutsByModel `protobuf:"bytes,11,rep,name=multi_duts_models_list,json=multiDutsModelsList,proto3" json:"multi_duts_models_list,omitempty"` |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) Reset() { |
| *x = SchedulerConfig_TargetOptions{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig_TargetOptions) ProtoMessage() {} |
| |
| func (x *SchedulerConfig_TargetOptions) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[7] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_TargetOptions.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig_TargetOptions) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 2} |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetBoardsList() []string { |
| if x != nil { |
| return x.BoardsList |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetExcludeBoards() []string { |
| if x != nil { |
| return x.ExcludeBoards |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetSkipVariants() bool { |
| if x != nil { |
| return x.SkipVariants |
| } |
| return false |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetVariantsList() []*BoardVariant { |
| if x != nil { |
| return x.VariantsList |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetExcludeVariants() []*BoardVariant { |
| if x != nil { |
| return x.ExcludeVariants |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetModelsList() []string { |
| if x != nil { |
| return x.ModelsList |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetAnyModel() bool { |
| if x != nil { |
| return x.AnyModel |
| } |
| return false |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetExcludeModels() []string { |
| if x != nil { |
| return x.ExcludeModels |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetMultiDutsBoardsList() []*SchedulerConfig_TargetOptions_MultiDutsByBoard { |
| if x != nil { |
| return x.MultiDutsBoardsList |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_TargetOptions) GetMultiDutsModelsList() []*SchedulerConfig_TargetOptions_MultiDutsByModel { |
| if x != nil { |
| return x.MultiDutsModelsList |
| } |
| return nil |
| } |
| |
| // Aggregate of options related to DUT pool. |
| type SchedulerConfig_PoolOptions struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Quota Scheduler account to use. |
| QsAccount string `protobuf:"bytes,1,opt,name=qs_account,json=qsAccount,proto3" json:"qs_account,omitempty"` |
| // Pool to schedule on. |
| Pool string `protobuf:"bytes,2,opt,name=pool,proto3" json:"pool,omitempty"` |
| // Integer priority to assign. Only used by CTS. Quota scheduler takes care |
| // of priorities for the rest. Has to be [20, 255]. |
| Priority int32 `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"` |
| } |
| |
| func (x *SchedulerConfig_PoolOptions) Reset() { |
| *x = SchedulerConfig_PoolOptions{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig_PoolOptions) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig_PoolOptions) ProtoMessage() {} |
| |
| func (x *SchedulerConfig_PoolOptions) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[8] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_PoolOptions.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig_PoolOptions) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 3} |
| } |
| |
| func (x *SchedulerConfig_PoolOptions) GetQsAccount() string { |
| if x != nil { |
| return x.QsAccount |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig_PoolOptions) GetPool() string { |
| if x != nil { |
| return x.Pool |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig_PoolOptions) GetPriority() int32 { |
| if x != nil { |
| return x.Priority |
| } |
| return 0 |
| } |
| |
| // Execution related options. |
| type SchedulerConfig_RunOptions struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Whether to retry if the task fails. |
| Retry bool `protobuf:"varint,1,opt,name=retry,proto3" json:"retry,omitempty"` |
| Dimensions []*SchedulerConfig_RunOptions_SwarmingDimension `protobuf:"bytes,2,rep,name=dimensions,proto3" json:"dimensions,omitempty"` |
| // Timeout of the task. |
| TimeoutMins int32 `protobuf:"varint,3,opt,name=timeout_mins,json=timeoutMins,proto3" json:"timeout_mins,omitempty"` |
| // Use only_successful_build_required instead. |
| // |
| // Deprecated: Do not use. |
| 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"` |
| // If build passed and was uploaded, launch this test. |
| OnlySuccessfulBuildRequired bool `protobuf:"varint,6,opt,name=only_successful_build_required,json=onlySuccessfulBuildRequired,proto3" json:"only_successful_build_required,omitempty"` |
| // If set, suite will be executed through CFT execution path. |
| RunViaCft bool `protobuf:"varint,7,opt,name=run_via_cft,json=runViaCft,proto3" json:"run_via_cft,omitempty"` |
| // Tags criteria that will be used to enumerate tests for CFT test execution |
| // workflow. Will only be used if run_via_cft is true. |
| TagCriteria *api.TestSuite_TestCaseTagCriteria `protobuf:"bytes,8,opt,name=tag_criteria,json=tagCriteria,proto3" json:"tag_criteria,omitempty"` |
| // Bucket to schedule tasks in. If not provided, suite scheduler should |
| // assign the task to an appropriate "mainlab" builder. |
| BuilderId *SchedulerConfig_RunOptions_BuilderID `protobuf:"bytes,9,opt,name=builder_id,json=builderId,proto3" json:"builder_id,omitempty"` |
| // If set, suite will be executed through ctpv2. |
| RunViaCtpv2 bool `protobuf:"varint,10,opt,name=run_via_ctpv2,json=runViaCtpv2,proto3" json:"run_via_ctpv2,omitempty"` |
| // GCS Bucket to fetch CrOS images from. If not provided, will be |
| // "chromeos-image-archive" |
| CrosImageBucket string `protobuf:"bytes,11,opt,name=cros_image_bucket,json=crosImageBucket,proto3" json:"cros_image_bucket,omitempty"` |
| // If true and run_via_cft is true, this suite will run via trv2. |
| RunViaTrv2 bool `protobuf:"varint,12,opt,name=run_via_trv2,json=runViaTrv2,proto3" json:"run_via_trv2,omitempty"` |
| // If set, trv2 request will be translated to the dynamic trv2 request. |
| // Requires run_via_trv2 is true. |
| DynamicTrv2 bool `protobuf:"varint,13,opt,name=dynamic_trv2,json=dynamicTrv2,proto3" json:"dynamic_trv2,omitempty"` |
| } |
| |
| func (x *SchedulerConfig_RunOptions) Reset() { |
| *x = SchedulerConfig_RunOptions{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig_RunOptions) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig_RunOptions) ProtoMessage() {} |
| |
| func (x *SchedulerConfig_RunOptions) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[9] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_RunOptions.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig_RunOptions) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 4} |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetRetry() bool { |
| if x != nil { |
| return x.Retry |
| } |
| return false |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetDimensions() []*SchedulerConfig_RunOptions_SwarmingDimension { |
| if x != nil { |
| return x.Dimensions |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetTimeoutMins() int32 { |
| if x != nil { |
| return x.TimeoutMins |
| } |
| return 0 |
| } |
| |
| // Deprecated: Do not use. |
| func (x *SchedulerConfig_RunOptions) GetOnlySanityTestRequired() bool { |
| if x != nil { |
| return x.OnlySanityTestRequired |
| } |
| return false |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetTriggerType() SchedulerConfig_TriggerType { |
| if x != nil { |
| return x.TriggerType |
| } |
| return SchedulerConfig_TRIGGER_UNSPECIFIED |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetOnlySuccessfulBuildRequired() bool { |
| if x != nil { |
| return x.OnlySuccessfulBuildRequired |
| } |
| return false |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetRunViaCft() bool { |
| if x != nil { |
| return x.RunViaCft |
| } |
| return false |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetTagCriteria() *api.TestSuite_TestCaseTagCriteria { |
| if x != nil { |
| return x.TagCriteria |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetBuilderId() *SchedulerConfig_RunOptions_BuilderID { |
| if x != nil { |
| return x.BuilderId |
| } |
| return nil |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetRunViaCtpv2() bool { |
| if x != nil { |
| return x.RunViaCtpv2 |
| } |
| return false |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetCrosImageBucket() string { |
| if x != nil { |
| return x.CrosImageBucket |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetRunViaTrv2() bool { |
| if x != nil { |
| return x.RunViaTrv2 |
| } |
| return false |
| } |
| |
| func (x *SchedulerConfig_RunOptions) GetDynamicTrv2() bool { |
| if x != nil { |
| return x.DynamicTrv2 |
| } |
| return false |
| } |
| |
| // next tag: 3 |
| type SchedulerConfig_TargetOptions_MultiDutsByBoard struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| PrimaryBoard string `protobuf:"bytes,1,opt,name=primary_board,json=primaryBoard,proto3" json:"primary_board,omitempty"` |
| SecondaryBoards []string `protobuf:"bytes,2,rep,name=secondary_boards,json=secondaryBoards,proto3" json:"secondary_boards,omitempty"` |
| } |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByBoard) Reset() { |
| *x = SchedulerConfig_TargetOptions_MultiDutsByBoard{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByBoard) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig_TargetOptions_MultiDutsByBoard) ProtoMessage() {} |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByBoard) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[10] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_TargetOptions_MultiDutsByBoard.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig_TargetOptions_MultiDutsByBoard) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 2, 0} |
| } |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByBoard) GetPrimaryBoard() string { |
| if x != nil { |
| return x.PrimaryBoard |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByBoard) GetSecondaryBoards() []string { |
| if x != nil { |
| return x.SecondaryBoards |
| } |
| return nil |
| } |
| |
| // next tag: 3 |
| type SchedulerConfig_TargetOptions_MultiDutsByModel struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| PrimaryModel string `protobuf:"bytes,1,opt,name=primary_model,json=primaryModel,proto3" json:"primary_model,omitempty"` |
| SecondaryModels []string `protobuf:"bytes,2,rep,name=secondary_models,json=secondaryModels,proto3" json:"secondary_models,omitempty"` |
| } |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByModel) Reset() { |
| *x = SchedulerConfig_TargetOptions_MultiDutsByModel{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByModel) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig_TargetOptions_MultiDutsByModel) ProtoMessage() {} |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByModel) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[11] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_TargetOptions_MultiDutsByModel.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig_TargetOptions_MultiDutsByModel) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 2, 1} |
| } |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByModel) GetPrimaryModel() string { |
| if x != nil { |
| return x.PrimaryModel |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig_TargetOptions_MultiDutsByModel) GetSecondaryModels() []string { |
| if x != nil { |
| return x.SecondaryModels |
| } |
| return nil |
| } |
| |
| // A list of extra labels/dimensions to attach. |
| // Extra Swarming Dimensions that can be specified. |
| type SchedulerConfig_RunOptions_SwarmingDimension struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` |
| Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` |
| } |
| |
| func (x *SchedulerConfig_RunOptions_SwarmingDimension) Reset() { |
| *x = SchedulerConfig_RunOptions_SwarmingDimension{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig_RunOptions_SwarmingDimension) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig_RunOptions_SwarmingDimension) ProtoMessage() {} |
| |
| func (x *SchedulerConfig_RunOptions_SwarmingDimension) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[12] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_RunOptions_SwarmingDimension.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig_RunOptions_SwarmingDimension) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 4, 0} |
| } |
| |
| func (x *SchedulerConfig_RunOptions_SwarmingDimension) GetKey() string { |
| if x != nil { |
| return x.Key |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig_RunOptions_SwarmingDimension) GetValue() string { |
| if x != nil { |
| return x.Value |
| } |
| return "" |
| } |
| |
| // Identifies a unique buildbucket builder. |
| type SchedulerConfig_RunOptions_BuilderID struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Project that the builder exists in. |
| Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` |
| // Bucket that the builder exists in. |
| Bucket string `protobuf:"bytes,2,opt,name=bucket,proto3" json:"bucket,omitempty"` |
| // Name of the builder. |
| Builder string `protobuf:"bytes,3,opt,name=builder,proto3" json:"builder,omitempty"` |
| } |
| |
| func (x *SchedulerConfig_RunOptions_BuilderID) Reset() { |
| *x = SchedulerConfig_RunOptions_BuilderID{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[13] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SchedulerConfig_RunOptions_BuilderID) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SchedulerConfig_RunOptions_BuilderID) ProtoMessage() {} |
| |
| func (x *SchedulerConfig_RunOptions_BuilderID) ProtoReflect() protoreflect.Message { |
| mi := &file_testplans_suite_scheduler_proto_msgTypes[13] |
| if protoimpl.UnsafeEnabled && x != nil { |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| if ms.LoadMessageInfo() == nil { |
| ms.StoreMessageInfo(mi) |
| } |
| return ms |
| } |
| return mi.MessageOf(x) |
| } |
| |
| // Deprecated: Use SchedulerConfig_RunOptions_BuilderID.ProtoReflect.Descriptor instead. |
| func (*SchedulerConfig_RunOptions_BuilderID) Descriptor() ([]byte, []int) { |
| return file_testplans_suite_scheduler_proto_rawDescGZIP(), []int{3, 4, 1} |
| } |
| |
| func (x *SchedulerConfig_RunOptions_BuilderID) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig_RunOptions_BuilderID) GetBucket() string { |
| if x != nil { |
| return x.Bucket |
| } |
| return "" |
| } |
| |
| func (x *SchedulerConfig_RunOptions_BuilderID) GetBuilder() string { |
| if x != nil { |
| return x.Builder |
| } |
| return "" |
| } |
| |
| var File_testplans_suite_scheduler_proto protoreflect.FileDescriptor |
| |
| var file_testplans_suite_scheduler_proto_rawDesc = []byte{ |
| 0x0a, 0x1f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2f, 0x73, 0x75, 0x69, 0x74, |
| 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x12, 0x09, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x1a, 0x24, 0x63, 0x68, |
| 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x61, 0x70, |
| 0x69, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, |
| 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x74, |
| 0x65, 0x73, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x74, 0x70, 0x32, 0x2e, 0x70, 0x72, 0x6f, |
| 0x74, 0x6f, 0x22, 0x4f, 0x0a, 0x05, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, |
| 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, |
| 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, |
| 0x09, 0x52, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, |
| 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x64, |
| 0x65, 0x6c, 0x73, 0x22, 0x6e, 0x0a, 0x09, 0x4c, 0x61, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, |
| 0x12, 0x28, 0x0a, 0x06, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e, 0x42, 0x6f, 0x61, |
| 0x72, 0x64, 0x52, 0x06, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x0e, 0x61, 0x6e, |
| 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, |
| 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e, 0x42, |
| 0x6f, 0x61, 0x72, 0x64, 0x52, 0x0d, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x42, 0x6f, 0x61, |
| 0x72, 0x64, 0x73, 0x22, 0x3e, 0x0a, 0x0c, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x56, 0x61, 0x72, 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, 0x85, 0x1e, 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, 0x74, |
| 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x22, 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, |
| 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, |
| 0x73, 0x12, 0x52, 0x0a, 0x0f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x63, 0x72, 0x69, 0x74, |
| 0x65, 0x72, 0x69, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 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, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x43, 0x72, 0x69, |
| 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x43, 0x72, 0x69, |
| 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x2d, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, |
| 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, |
| 0x61, 0x6e, 0x73, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, |
| 0x63, 0x68, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x6f, |
| 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4f, |
| 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4f, 0x70, |
| 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x0c, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, |
| 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 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, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, |
| 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, |
| 0x12, 0x60, 0x0a, 0x16, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x72, 0x6f, 0x5f, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, |
| 0x32, 0x29, 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, 0x46, 0x69, 0x72, |
| 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x48, 0x00, 0x52, 0x13, 0x66, |
| 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x52, 0x6f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x70, |
| 0x65, 0x63, 0x12, 0x30, 0x0a, 0x13, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x72, |
| 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, |
| 0x00, 0x52, 0x11, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x52, 0x6f, 0x56, 0x65, 0x72, |
| 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x60, 0x0a, 0x16, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, |
| 0x5f, 0x72, 0x77, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0c, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 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, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x48, |
| 0x01, 0x52, 0x13, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x52, 0x77, 0x42, 0x75, 0x69, |
| 0x6c, 0x64, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x13, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, |
| 0x72, 0x65, 0x5f, 0x72, 0x77, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, |
| 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x52, |
| 0x77, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x19, 0x66, 0x69, 0x72, 0x6d, |
| 0x77, 0x61, 0x72, 0x65, 0x5f, 0x65, 0x63, 0x5f, 0x72, 0x6f, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 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, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, |
| 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x48, 0x02, 0x52, 0x15, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, |
| 0x72, 0x65, 0x45, 0x63, 0x52, 0x6f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x70, 0x65, 0x63, 0x12, |
| 0x35, 0x0a, 0x16, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x65, 0x63, 0x5f, 0x72, |
| 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x48, |
| 0x02, 0x52, 0x13, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x45, 0x63, 0x52, 0x6f, 0x56, |
| 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x19, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, |
| 0x72, 0x65, 0x5f, 0x65, 0x63, 0x5f, 0x72, 0x77, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, |
| 0x70, 0x65, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 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, 0x46, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, 0x72, |
| 0x61, 0x6e, 0x63, 0x68, 0x48, 0x03, 0x52, 0x15, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, |
| 0x45, 0x63, 0x52, 0x77, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x70, 0x65, 0x63, 0x12, 0x35, 0x0a, |
| 0x16, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x65, 0x63, 0x5f, 0x72, 0x77, 0x5f, |
| 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, |
| 0x13, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x45, 0x63, 0x52, 0x77, 0x56, 0x65, 0x72, |
| 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, |
| 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x11, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, |
| 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, |
| 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 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, 0x52, 0x75, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, |
| 0x52, 0x0a, 0x72, 0x75, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0e, |
| 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x4e, |
| 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x5f, 0x69, |
| 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x13, 0x61, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, |
| 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x6d, 0x73, 0x5f, 0x63, |
| 0x6f, 0x72, 0x65, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x0e, 0x67, 0x6d, 0x73, 0x43, 0x6f, 0x72, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, |
| 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x6b, 0x61, 0x72, 0x62, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, |
| 0x65, 0x72, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x68, 0x72, 0x6f, |
| 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, |
| 0x43, 0x54, 0x50, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0d, 0x6b, 0x61, 0x72, 0x62, 0x6f, |
| 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0e, 0x6b, 0x6f, 0x66, 0x66, |
| 0x65, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x1e, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x74, 0x65, |
| 0x73, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x54, 0x50, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, |
| 0x52, 0x0d, 0x6b, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, |
| 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, 0x17, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x41, 0x72, 0x67, 0x73, 0x12, 0x38, 0x0a, 0x18, |
| 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x74, 0x65, 0x73, 0x74, 0x5f, |
| 0x73, 0x68, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, |
| 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x74, 0x65, 0x73, 0x74, 0x53, 0x68, |
| 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x64, 0x64, 0x5f, 0x73, 0x75, |
| 0x69, 0x74, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x64, 0x64, 0x53, 0x75, |
| 0x69, 0x74, 0x65, 0x1a, 0x1f, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x14, |
| 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, |
| 0x6d, 0x61, 0x69, 0x6c, 0x1a, 0xb6, 0x02, 0x0a, 0x0e, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x43, |
| 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x5e, 0x0a, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, |
| 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, |
| 0x37, 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, 0x4c, 0x61, 0x75, 0x6e, |
| 0x63, 0x68, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x2e, 0x4c, 0x61, 0x75, 0x6e, 0x63, |
| 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, |
| 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x64, |
| 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x23, 0x0a, |
| 0x0d, 0x63, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x04, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, |
| 0x6c, 0x65, 0x22, 0x79, 0x0a, 0x0d, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x66, |
| 0x69, 0x6c, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, |
| 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x45, 0x57, 0x5f, 0x42, 0x55, 0x49, 0x4c, |
| 0x44, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x41, 0x49, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x0a, |
| 0x0a, 0x06, 0x57, 0x45, 0x45, 0x4b, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x52, |
| 0x4f, 0x4e, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, |
| 0x52, 0x54, 0x4e, 0x49, 0x47, 0x48, 0x54, 0x4c, 0x59, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x4e, |
| 0x45, 0x57, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x33, 0x44, 0x10, 0x06, 0x1a, 0x91, 0x06, |
| 0x0a, 0x0d, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, |
| 0x1f, 0x0a, 0x0b, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, |
| 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, |
| 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x62, 0x6f, 0x61, 0x72, |
| 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, |
| 0x65, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6b, 0x69, 0x70, 0x5f, |
| 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, |
| 0x73, 0x6b, 0x69, 0x70, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x0d, |
| 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x2e, |
| 0x42, 0x6f, 0x61, 0x72, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x0c, 0x76, 0x61, |
| 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x10, 0x65, 0x78, |
| 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x04, |
| 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x6e, 0x73, |
| 0x2e, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x0f, 0x65, |
| 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x1f, |
| 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, |
| 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, |
| 0x1b, 0x0a, 0x09, 0x61, 0x6e, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, |
| 0x28, 0x08, 0x52, 0x08, 0x61, 0x6e, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x25, 0x0a, 0x0e, |
| 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x07, |
| 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4d, 0x6f, 0x64, |
| 0x65, 0x6c, 0x73, 0x12, 0x6e, 0x0a, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x64, 0x75, 0x74, |
| 0x73, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x39, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x75, |
| 0x6c, 0x74, 0x69, 0x44, 0x75, 0x74, 0x73, 0x42, 0x79, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x13, |
| 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x75, 0x74, 0x73, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x4c, |
| 0x69, 0x73, 0x74, 0x12, 0x6e, 0x0a, 0x16, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x64, 0x75, 0x74, |
| 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x0b, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x39, 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, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x75, |
| 0x6c, 0x74, 0x69, 0x44, 0x75, 0x74, 0x73, 0x42, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x13, |
| 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x75, 0x74, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x4c, |
| 0x69, 0x73, 0x74, 0x1a, 0x62, 0x0a, 0x10, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x44, 0x75, 0x74, 0x73, |
| 0x42, 0x79, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, |
| 0x72, 0x79, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, |
| 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x29, 0x0a, 0x10, |
| 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x73, |
| 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, |
| 0x79, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x73, 0x1a, 0x62, 0x0a, 0x10, 0x4d, 0x75, 0x6c, 0x74, 0x69, |
| 0x44, 0x75, 0x74, 0x73, 0x42, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x70, |
| 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, |
| 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x6f, |
| 0x64, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x6f, |
| 0x6e, 0x64, 0x61, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x4a, 0x04, 0x08, 0x0a, 0x10, |
| 0x0b, 0x1a, 0x5c, 0x0a, 0x0b, 0x50, 0x6f, 0x6f, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, |
| 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x09, 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, |
| 0xdf, 0x06, 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, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 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, 0x52, 0x75, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, |
| 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, |
| 0x6e, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, |
| 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x69, 0x6e, 0x73, |
| 0x12, 0x3d, 0x0a, 0x19, 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, 0x42, 0x02, 0x18, 0x01, 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, |
| 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, 0x12, 0x43, 0x0a, 0x1e, 0x6f, 0x6e, |
| 0x6c, 0x79, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x5f, 0x62, 0x75, |
| 0x69, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, |
| 0x28, 0x08, 0x52, 0x1b, 0x6f, 0x6e, 0x6c, 0x79, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x66, |
| 0x75, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, |
| 0x1e, 0x0a, 0x0b, 0x72, 0x75, 0x6e, 0x5f, 0x76, 0x69, 0x61, 0x5f, 0x63, 0x66, 0x74, 0x18, 0x07, |
| 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x56, 0x69, 0x61, 0x43, 0x66, 0x74, 0x12, |
| 0x55, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, |
| 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, |
| 0x6f, 0x73, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x73, 0x74, |
| 0x53, 0x75, 0x69, 0x74, 0x65, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x43, 0x61, 0x73, 0x65, 0x54, 0x61, |
| 0x67, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x0b, 0x74, 0x61, 0x67, 0x43, 0x72, |
| 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x4e, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, |
| 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 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, 0x52, 0x75, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, |
| 0x73, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x09, 0x62, 0x75, 0x69, |
| 0x6c, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x72, 0x75, 0x6e, 0x5f, 0x76, 0x69, |
| 0x61, 0x5f, 0x63, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, |
| 0x75, 0x6e, 0x56, 0x69, 0x61, 0x43, 0x74, 0x70, 0x76, 0x32, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x72, |
| 0x6f, 0x73, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, |
| 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x6f, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, |
| 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x5f, 0x76, 0x69, |
| 0x61, 0x5f, 0x74, 0x72, 0x76, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x75, |
| 0x6e, 0x56, 0x69, 0x61, 0x54, 0x72, 0x76, 0x32, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x79, 0x6e, 0x61, |
| 0x6d, 0x69, 0x63, 0x5f, 0x74, 0x72, 0x76, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, |
| 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x54, 0x72, 0x76, 0x32, 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, 0x1a, 0x57, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, |
| 0x64, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, |
| 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, |
| 0x72, 0x22, 0x58, 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, 0x12, 0x07, 0x0a, 0x03, |
| 0x44, 0x45, 0x56, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x45, 0x54, 0x41, 0x10, 0x04, 0x12, |
| 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x05, 0x22, 0x3c, 0x0a, 0x0b, 0x54, |
| 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x52, |
| 0x49, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, |
| 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, |
| 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x02, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x72, |
| 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x72, 0x6f, 0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x72, 0x6d, |
| 0x77, 0x61, 0x72, 0x65, 0x5f, 0x72, 0x77, 0x42, 0x10, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x6d, 0x77, |
| 0x61, 0x72, 0x65, 0x5f, 0x65, 0x63, 0x5f, 0x72, 0x6f, 0x42, 0x10, 0x0a, 0x0e, 0x66, 0x69, 0x72, |
| 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x65, 0x63, 0x5f, 0x72, 0x77, 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, 0x54, 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, 0x12, 0x07, |
| 0x0a, 0x03, 0x4c, 0x54, 0x53, 0x10, 0x05, 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 ( |
| file_testplans_suite_scheduler_proto_rawDescOnce sync.Once |
| file_testplans_suite_scheduler_proto_rawDescData = file_testplans_suite_scheduler_proto_rawDesc |
| ) |
| |
| func file_testplans_suite_scheduler_proto_rawDescGZIP() []byte { |
| file_testplans_suite_scheduler_proto_rawDescOnce.Do(func() { |
| file_testplans_suite_scheduler_proto_rawDescData = protoimpl.X.CompressGZIP(file_testplans_suite_scheduler_proto_rawDescData) |
| }) |
| return file_testplans_suite_scheduler_proto_rawDescData |
| } |
| |
| var file_testplans_suite_scheduler_proto_enumTypes = make([]protoimpl.EnumInfo, 4) |
| var file_testplans_suite_scheduler_proto_msgTypes = make([]protoimpl.MessageInfo, 14) |
| var file_testplans_suite_scheduler_proto_goTypes = []interface{}{ |
| (Branch)(0), // 0: testplans.Branch |
| (SchedulerConfig_FirmwareBranch)(0), // 1: testplans.SchedulerConfig.FirmwareBranch |
| (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_TargetOptions_MultiDutsByBoard)(nil), // 14: testplans.SchedulerConfig.TargetOptions.MultiDutsByBoard |
| (*SchedulerConfig_TargetOptions_MultiDutsByModel)(nil), // 15: testplans.SchedulerConfig.TargetOptions.MultiDutsByModel |
| (*SchedulerConfig_RunOptions_SwarmingDimension)(nil), // 16: testplans.SchedulerConfig.RunOptions.SwarmingDimension |
| (*SchedulerConfig_RunOptions_BuilderID)(nil), // 17: testplans.SchedulerConfig.RunOptions.BuilderID |
| (*api.CTPFilter)(nil), // 18: chromiumos.test.api.CTPFilter |
| (*api.TestSuite_TestCaseTagCriteria)(nil), // 19: chromiumos.test.api.TestSuite.TestCaseTagCriteria |
| } |
| var file_testplans_suite_scheduler_proto_depIdxs = []int32{ |
| 4, // 0: testplans.LabConfig.boards:type_name -> testplans.Board |
| 4, // 1: testplans.LabConfig.android_boards:type_name -> testplans.Board |
| 9, // 2: testplans.SchedulerConfig.contacts:type_name -> testplans.SchedulerConfig.Contact |
| 10, // 3: testplans.SchedulerConfig.launch_criteria:type_name -> testplans.SchedulerConfig.LaunchCriteria |
| 0, // 4: testplans.SchedulerConfig.branches:type_name -> testplans.Branch |
| 11, // 5: testplans.SchedulerConfig.target_options:type_name -> testplans.SchedulerConfig.TargetOptions |
| 12, // 6: testplans.SchedulerConfig.pool_options:type_name -> testplans.SchedulerConfig.PoolOptions |
| 1, // 7: testplans.SchedulerConfig.firmware_ro_build_spec:type_name -> testplans.SchedulerConfig.FirmwareBranch |
| 1, // 8: testplans.SchedulerConfig.firmware_rw_build_spec:type_name -> testplans.SchedulerConfig.FirmwareBranch |
| 1, // 9: testplans.SchedulerConfig.firmware_ec_ro_build_spec:type_name -> testplans.SchedulerConfig.FirmwareBranch |
| 1, // 10: testplans.SchedulerConfig.firmware_ec_rw_build_spec:type_name -> testplans.SchedulerConfig.FirmwareBranch |
| 13, // 11: testplans.SchedulerConfig.run_options:type_name -> testplans.SchedulerConfig.RunOptions |
| 18, // 12: testplans.SchedulerConfig.karbon_filters:type_name -> chromiumos.test.api.CTPFilter |
| 18, // 13: testplans.SchedulerConfig.koffee_filters:type_name -> chromiumos.test.api.CTPFilter |
| 7, // 14: testplans.SchedulerCfg.configs:type_name -> testplans.SchedulerConfig |
| 3, // 15: testplans.SchedulerConfig.LaunchCriteria.launch_profile:type_name -> testplans.SchedulerConfig.LaunchCriteria.LaunchProfile |
| 6, // 16: testplans.SchedulerConfig.TargetOptions.variants_list:type_name -> testplans.BoardVariant |
| 6, // 17: testplans.SchedulerConfig.TargetOptions.exclude_variants:type_name -> testplans.BoardVariant |
| 14, // 18: testplans.SchedulerConfig.TargetOptions.multi_duts_boards_list:type_name -> testplans.SchedulerConfig.TargetOptions.MultiDutsByBoard |
| 15, // 19: testplans.SchedulerConfig.TargetOptions.multi_duts_models_list:type_name -> testplans.SchedulerConfig.TargetOptions.MultiDutsByModel |
| 16, // 20: testplans.SchedulerConfig.RunOptions.dimensions:type_name -> testplans.SchedulerConfig.RunOptions.SwarmingDimension |
| 2, // 21: testplans.SchedulerConfig.RunOptions.trigger_type:type_name -> testplans.SchedulerConfig.TriggerType |
| 19, // 22: testplans.SchedulerConfig.RunOptions.tag_criteria:type_name -> chromiumos.test.api.TestSuite.TestCaseTagCriteria |
| 17, // 23: testplans.SchedulerConfig.RunOptions.builder_id:type_name -> testplans.SchedulerConfig.RunOptions.BuilderID |
| 24, // [24:24] is the sub-list for method output_type |
| 24, // [24:24] is the sub-list for method input_type |
| 24, // [24:24] is the sub-list for extension type_name |
| 24, // [24:24] is the sub-list for extension extendee |
| 0, // [0:24] is the sub-list for field type_name |
| } |
| |
| func init() { file_testplans_suite_scheduler_proto_init() } |
| func file_testplans_suite_scheduler_proto_init() { |
| if File_testplans_suite_scheduler_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_testplans_suite_scheduler_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Board); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*LabConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BoardVariant); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerCfg); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig_Contact); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig_LaunchCriteria); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig_TargetOptions); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig_PoolOptions); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig_RunOptions); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig_TargetOptions_MultiDutsByBoard); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig_TargetOptions_MultiDutsByModel); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig_RunOptions_SwarmingDimension); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SchedulerConfig_RunOptions_BuilderID); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| file_testplans_suite_scheduler_proto_msgTypes[3].OneofWrappers = []interface{}{ |
| (*SchedulerConfig_FirmwareRoBuildSpec)(nil), |
| (*SchedulerConfig_FirmwareRoVersion)(nil), |
| (*SchedulerConfig_FirmwareRwBuildSpec)(nil), |
| (*SchedulerConfig_FirmwareRwVersion)(nil), |
| (*SchedulerConfig_FirmwareEcRoBuildSpec)(nil), |
| (*SchedulerConfig_FirmwareEcRoVersion)(nil), |
| (*SchedulerConfig_FirmwareEcRwBuildSpec)(nil), |
| (*SchedulerConfig_FirmwareEcRwVersion)(nil), |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_testplans_suite_scheduler_proto_rawDesc, |
| NumEnums: 4, |
| NumMessages: 14, |
| NumExtensions: 0, |
| NumServices: 0, |
| }, |
| GoTypes: file_testplans_suite_scheduler_proto_goTypes, |
| DependencyIndexes: file_testplans_suite_scheduler_proto_depIdxs, |
| EnumInfos: file_testplans_suite_scheduler_proto_enumTypes, |
| MessageInfos: file_testplans_suite_scheduler_proto_msgTypes, |
| }.Build() |
| File_testplans_suite_scheduler_proto = out.File |
| file_testplans_suite_scheduler_proto_rawDesc = nil |
| file_testplans_suite_scheduler_proto_goTypes = nil |
| file_testplans_suite_scheduler_proto_depIdxs = nil |
| } |