// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.25.0-devel
// 	protoc        v3.6.1
// source: chromite/api/build_api_test.proto

package api

import (
	chromiumos "go.chromium.org/chromiumos/infra/proto/go/chromiumos"
	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)
)

type TestEnum int32

const (
	TestEnum_TEST_ENUM_UNSPECIFIED TestEnum = 0
	TestEnum_TEST_ENUM_FOO         TestEnum = 1
	TestEnum_TEST_ENUM_BAR         TestEnum = 2
	TestEnum_TEST_ENUM_BAZ         TestEnum = 3
)

// Enum value maps for TestEnum.
var (
	TestEnum_name = map[int32]string{
		0: "TEST_ENUM_UNSPECIFIED",
		1: "TEST_ENUM_FOO",
		2: "TEST_ENUM_BAR",
		3: "TEST_ENUM_BAZ",
	}
	TestEnum_value = map[string]int32{
		"TEST_ENUM_UNSPECIFIED": 0,
		"TEST_ENUM_FOO":         1,
		"TEST_ENUM_BAR":         2,
		"TEST_ENUM_BAZ":         3,
	}
)

func (x TestEnum) Enum() *TestEnum {
	p := new(TestEnum)
	*p = x
	return p
}

func (x TestEnum) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TestEnum) Descriptor() protoreflect.EnumDescriptor {
	return file_chromite_api_build_api_test_proto_enumTypes[0].Descriptor()
}

func (TestEnum) Type() protoreflect.EnumType {
	return &file_chromite_api_build_api_test_proto_enumTypes[0]
}

func (x TestEnum) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use TestEnum.Descriptor instead.
func (TestEnum) EnumDescriptor() ([]byte, []int) {
	return file_chromite_api_build_api_test_proto_rawDescGZIP(), []int{0}
}

type NestedPath struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Path *chromiumos.Path `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
}

func (x *NestedPath) Reset() {
	*x = NestedPath{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chromite_api_build_api_test_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NestedPath) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NestedPath) ProtoMessage() {}

func (x *NestedPath) ProtoReflect() protoreflect.Message {
	mi := &file_chromite_api_build_api_test_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 NestedPath.ProtoReflect.Descriptor instead.
func (*NestedPath) Descriptor() ([]byte, []int) {
	return file_chromite_api_build_api_test_proto_rawDescGZIP(), []int{0}
}

func (x *NestedPath) GetPath() *chromiumos.Path {
	if x != nil {
		return x.Path
	}
	return nil
}

type MultiFieldMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id       int32    `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Name     string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Flag     bool     `protobuf:"varint,3,opt,name=flag,proto3" json:"flag,omitempty"`
	TestEnum TestEnum `protobuf:"varint,4,opt,name=test_enum,json=testEnum,proto3,enum=chromite.api.TestEnum" json:"test_enum,omitempty"`
}

func (x *MultiFieldMessage) Reset() {
	*x = MultiFieldMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chromite_api_build_api_test_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *MultiFieldMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MultiFieldMessage) ProtoMessage() {}

func (x *MultiFieldMessage) ProtoReflect() protoreflect.Message {
	mi := &file_chromite_api_build_api_test_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 MultiFieldMessage.ProtoReflect.Descriptor instead.
func (*MultiFieldMessage) Descriptor() ([]byte, []int) {
	return file_chromite_api_build_api_test_proto_rawDescGZIP(), []int{1}
}

func (x *MultiFieldMessage) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *MultiFieldMessage) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *MultiFieldMessage) GetFlag() bool {
	if x != nil {
		return x.Flag
	}
	return false
}

func (x *MultiFieldMessage) GetTestEnum() TestEnum {
	if x != nil {
		return x.TestEnum
	}
	return TestEnum_TEST_ENUM_UNSPECIFIED
}

// Simple input message.
type TestRequestMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Chroot message for parsing and automatic chroot re-execution testing.
	Chroot *chromiumos.Chroot `protobuf:"bytes,2,opt,name=chroot,proto3" json:"chroot,omitempty"`
	// Path and ResultPath messages for insertion/extraction testing.
	Path        *chromiumos.Path       `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
	AnotherPath *chromiumos.Path       `protobuf:"bytes,4,opt,name=another_path,json=anotherPath,proto3" json:"another_path,omitempty"`
	NestedPath  *NestedPath            `protobuf:"bytes,5,opt,name=nested_path,json=nestedPath,proto3" json:"nested_path,omitempty"`
	ResultPath  *chromiumos.ResultPath `protobuf:"bytes,6,opt,name=result_path,json=resultPath,proto3" json:"result_path,omitempty"`
	// BuildTarget messages for parsing tests.
	BuildTarget  *chromiumos.BuildTarget   `protobuf:"bytes,7,opt,name=build_target,json=buildTarget,proto3" json:"build_target,omitempty"`
	BuildTargets []*chromiumos.BuildTarget `protobuf:"bytes,8,rep,name=build_targets,json=buildTargets,proto3" json:"build_targets,omitempty"`
	// For SyncedDir syncing tests.
	SyncedDir  *chromiumos.SyncedDir   `protobuf:"bytes,9,opt,name=synced_dir,json=syncedDir,proto3" json:"synced_dir,omitempty"`
	SyncedDirs []*chromiumos.SyncedDir `protobuf:"bytes,10,rep,name=synced_dirs,json=syncedDirs,proto3" json:"synced_dirs,omitempty"`
	// Repeated message with multiple fields.
	Messages  []*MultiFieldMessage `protobuf:"bytes,11,rep,name=messages,proto3" json:"messages,omitempty"`
	TestEnum  TestEnum             `protobuf:"varint,12,opt,name=test_enum,json=testEnum,proto3,enum=chromite.api.TestEnum" json:"test_enum,omitempty"`
	TestEnums []TestEnum           `protobuf:"varint,13,rep,packed,name=test_enums,json=testEnums,proto3,enum=chromite.api.TestEnum" json:"test_enums,omitempty"`
	Number    int32                `protobuf:"varint,14,opt,name=number,proto3" json:"number,omitempty"`
	Numbers   []int32              `protobuf:"varint,15,rep,packed,name=numbers,proto3" json:"numbers,omitempty"`
}

func (x *TestRequestMessage) Reset() {
	*x = TestRequestMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chromite_api_build_api_test_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TestRequestMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestRequestMessage) ProtoMessage() {}

func (x *TestRequestMessage) ProtoReflect() protoreflect.Message {
	mi := &file_chromite_api_build_api_test_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 TestRequestMessage.ProtoReflect.Descriptor instead.
func (*TestRequestMessage) Descriptor() ([]byte, []int) {
	return file_chromite_api_build_api_test_proto_rawDescGZIP(), []int{2}
}

func (x *TestRequestMessage) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *TestRequestMessage) GetChroot() *chromiumos.Chroot {
	if x != nil {
		return x.Chroot
	}
	return nil
}

func (x *TestRequestMessage) GetPath() *chromiumos.Path {
	if x != nil {
		return x.Path
	}
	return nil
}

func (x *TestRequestMessage) GetAnotherPath() *chromiumos.Path {
	if x != nil {
		return x.AnotherPath
	}
	return nil
}

func (x *TestRequestMessage) GetNestedPath() *NestedPath {
	if x != nil {
		return x.NestedPath
	}
	return nil
}

func (x *TestRequestMessage) GetResultPath() *chromiumos.ResultPath {
	if x != nil {
		return x.ResultPath
	}
	return nil
}

func (x *TestRequestMessage) GetBuildTarget() *chromiumos.BuildTarget {
	if x != nil {
		return x.BuildTarget
	}
	return nil
}

func (x *TestRequestMessage) GetBuildTargets() []*chromiumos.BuildTarget {
	if x != nil {
		return x.BuildTargets
	}
	return nil
}

func (x *TestRequestMessage) GetSyncedDir() *chromiumos.SyncedDir {
	if x != nil {
		return x.SyncedDir
	}
	return nil
}

func (x *TestRequestMessage) GetSyncedDirs() []*chromiumos.SyncedDir {
	if x != nil {
		return x.SyncedDirs
	}
	return nil
}

func (x *TestRequestMessage) GetMessages() []*MultiFieldMessage {
	if x != nil {
		return x.Messages
	}
	return nil
}

func (x *TestRequestMessage) GetTestEnum() TestEnum {
	if x != nil {
		return x.TestEnum
	}
	return TestEnum_TEST_ENUM_UNSPECIFIED
}

func (x *TestRequestMessage) GetTestEnums() []TestEnum {
	if x != nil {
		return x.TestEnums
	}
	return nil
}

func (x *TestRequestMessage) GetNumber() int32 {
	if x != nil {
		return x.Number
	}
	return 0
}

func (x *TestRequestMessage) GetNumbers() []int32 {
	if x != nil {
		return x.Numbers
	}
	return nil
}

// Simple output message.
type TestResultMessage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Result string `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
	// Path messages for ResultPath testing.
	Artifact       *chromiumos.Path          `protobuf:"bytes,2,opt,name=artifact,proto3" json:"artifact,omitempty"`
	NestedArtifact *NestedPath               `protobuf:"bytes,3,opt,name=nested_artifact,json=nestedArtifact,proto3" json:"nested_artifact,omitempty"`
	Artifacts      []*chromiumos.Path        `protobuf:"bytes,4,rep,name=artifacts,proto3" json:"artifacts,omitempty"`
	Events         []*chromiumos.MetricEvent `protobuf:"bytes,5,rep,name=events,proto3" json:"events,omitempty"`
}

func (x *TestResultMessage) Reset() {
	*x = TestResultMessage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_chromite_api_build_api_test_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TestResultMessage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TestResultMessage) ProtoMessage() {}

func (x *TestResultMessage) ProtoReflect() protoreflect.Message {
	mi := &file_chromite_api_build_api_test_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 TestResultMessage.ProtoReflect.Descriptor instead.
func (*TestResultMessage) Descriptor() ([]byte, []int) {
	return file_chromite_api_build_api_test_proto_rawDescGZIP(), []int{3}
}

func (x *TestResultMessage) GetResult() string {
	if x != nil {
		return x.Result
	}
	return ""
}

func (x *TestResultMessage) GetArtifact() *chromiumos.Path {
	if x != nil {
		return x.Artifact
	}
	return nil
}

func (x *TestResultMessage) GetNestedArtifact() *NestedPath {
	if x != nil {
		return x.NestedArtifact
	}
	return nil
}

func (x *TestResultMessage) GetArtifacts() []*chromiumos.Path {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

func (x *TestResultMessage) GetEvents() []*chromiumos.MetricEvent {
	if x != nil {
		return x.Events
	}
	return nil
}

var File_chromite_api_build_api_test_proto protoreflect.FileDescriptor

var file_chromite_api_build_api_test_proto_rawDesc = []byte{
	0x0a, 0x21, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62,
	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70,
	0x69, 0x1a, 0x1c, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
	0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
	0x17, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
	0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x22, 0x32, 0x0a, 0x0a, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x61, 0x74, 0x68,
	0x12, 0x24, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68,
	0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x80, 0x01, 0x0a, 0x11, 0x4d, 0x75, 0x6c, 0x74, 0x69,
	0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
	0x66, 0x6c, 0x61, 0x67, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x75,
	0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
	0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x52,
	0x08, 0x74, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x22, 0xe2, 0x05, 0x0a, 0x12, 0x54, 0x65,
	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x2a, 0x0a, 0x06, 0x63, 0x68, 0x72, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x43, 0x68,
	0x72, 0x6f, 0x6f, 0x74, 0x52, 0x06, 0x63, 0x68, 0x72, 0x6f, 0x6f, 0x74, 0x12, 0x24, 0x0a, 0x04,
	0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x72,
	0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x04, 0x70, 0x61,
	0x74, 0x68, 0x12, 0x33, 0x0a, 0x0c, 0x61, 0x6e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x61,
	0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
	0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0b, 0x61, 0x6e, 0x6f, 0x74,
	0x68, 0x65, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x39, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65,
	0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63,
	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4e, 0x65, 0x73, 0x74,
	0x65, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x61,
	0x74, 0x68, 0x12, 0x37, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x61, 0x74,
	0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69,
	0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52,
	0x0a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x0c, 0x62,
	0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x42,
	0x75, 0x69, 0x6c, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c,
	0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64,
	0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x75, 0x69, 0x6c,
	0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x61,
	0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f,
	0x64, 0x69, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x72, 0x6f,
	0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x44, 0x69, 0x72,
	0x52, 0x09, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x44, 0x69, 0x72, 0x12, 0x36, 0x0a, 0x0b, 0x73,
	0x79, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x15, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x79,
	0x6e, 0x63, 0x65, 0x64, 0x44, 0x69, 0x72, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x65, 0x64, 0x44,
	0x69, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18,
	0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65,
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73,
	0x12, 0x33, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x08, 0x74, 0x65, 0x73,
	0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x35, 0x0a, 0x0a, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x6e,
	0x75, 0x6d, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x72, 0x6f,
	0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x75,
	0x6d, 0x52, 0x09, 0x74, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06,
	0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75,
	0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18,
	0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0xfd,
	0x01, 0x0a, 0x11, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2c, 0x0a, 0x08,
	0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x50, 0x61, 0x74, 0x68,
	0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x41, 0x0a, 0x0f, 0x6e, 0x65,
	0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61,
	0x70, 0x69, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, 0x61, 0x74, 0x68, 0x52, 0x0e, 0x6e,
	0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x2e, 0x0a,
	0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x10, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x50, 0x61,
	0x74, 0x68, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2f, 0x0a,
	0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e,
	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69,
	0x63, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2a, 0x5e,
	0x0a, 0x08, 0x54, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x45,
	0x53, 0x54, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x4e,
	0x55, 0x4d, 0x5f, 0x46, 0x4f, 0x4f, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x53, 0x54,
	0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x42, 0x41, 0x52, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x54,
	0x45, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x42, 0x41, 0x5a, 0x10, 0x03, 0x32, 0xe5,
	0x01, 0x0a, 0x0e, 0x54, 0x65, 0x73, 0x74, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x12, 0x56, 0x0a, 0x11, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74,
	0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x20, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74,
	0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d,
	0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x65, 0x0a, 0x0d, 0x52, 0x65, 0x6e,
	0x61, 0x6d, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x20, 0x2e, 0x63, 0x68, 0x72,
	0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x1f, 0x2e, 0x63,
	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x73, 0x74,
	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x11, 0xc2,
	0xed, 0x1a, 0x0d, 0x0a, 0x0b, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65,
	0x1a, 0x14, 0xc2, 0xed, 0x1a, 0x10, 0x0a, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x70,
	0x69, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x32, 0xf9, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x73, 0x69, 0x64,
	0x65, 0x43, 0x68, 0x72, 0x6f, 0x6f, 0x74, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x12, 0x5e, 0x0a, 0x19, 0x49, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x49, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x20,
	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65,
	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x1a, 0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x12, 0x67, 0x0a, 0x1a, 0x49, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x4f, 0x75, 0x74, 0x73, 0x69, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12,
	0x20, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54,
	0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x1a, 0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69,
	0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x22, 0x06, 0xc2, 0xed, 0x1a, 0x02, 0x10, 0x02, 0x1a, 0x16, 0xc2, 0xed, 0x1a, 0x12,
	0x0a, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x74, 0x65, 0x73, 0x74,
	0x10, 0x01, 0x32, 0xfc, 0x01, 0x0a, 0x17, 0x4f, 0x75, 0x74, 0x73, 0x69, 0x64, 0x65, 0x43, 0x68,
	0x72, 0x6f, 0x6f, 0x74, 0x41, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x60,
	0x0a, 0x1b, 0x4f, 0x75, 0x74, 0x73, 0x69, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
	0x4f, 0x75, 0x74, 0x73, 0x69, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x20, 0x2e,
	0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65, 0x73,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a,
	0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54,
	0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x12, 0x67, 0x0a, 0x1a, 0x4f, 0x75, 0x74, 0x73, 0x69, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x49, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x20,
	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x54, 0x65,
	0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
	0x1a, 0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
	0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x22, 0x06, 0xc2, 0xed, 0x1a, 0x02, 0x10, 0x01, 0x1a, 0x16, 0xc2, 0xed, 0x1a, 0x12, 0x0a,
	0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x10,
	0x02, 0x42, 0x38, 0x5a, 0x36, 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, 0x63,
	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_chromite_api_build_api_test_proto_rawDescOnce sync.Once
	file_chromite_api_build_api_test_proto_rawDescData = file_chromite_api_build_api_test_proto_rawDesc
)

func file_chromite_api_build_api_test_proto_rawDescGZIP() []byte {
	file_chromite_api_build_api_test_proto_rawDescOnce.Do(func() {
		file_chromite_api_build_api_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_chromite_api_build_api_test_proto_rawDescData)
	})
	return file_chromite_api_build_api_test_proto_rawDescData
}

var file_chromite_api_build_api_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_chromite_api_build_api_test_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_chromite_api_build_api_test_proto_goTypes = []interface{}{
	(TestEnum)(0),                  // 0: chromite.api.TestEnum
	(*NestedPath)(nil),             // 1: chromite.api.NestedPath
	(*MultiFieldMessage)(nil),      // 2: chromite.api.MultiFieldMessage
	(*TestRequestMessage)(nil),     // 3: chromite.api.TestRequestMessage
	(*TestResultMessage)(nil),      // 4: chromite.api.TestResultMessage
	(*chromiumos.Path)(nil),        // 5: chromiumos.Path
	(*chromiumos.Chroot)(nil),      // 6: chromiumos.Chroot
	(*chromiumos.ResultPath)(nil),  // 7: chromiumos.ResultPath
	(*chromiumos.BuildTarget)(nil), // 8: chromiumos.BuildTarget
	(*chromiumos.SyncedDir)(nil),   // 9: chromiumos.SyncedDir
	(*chromiumos.MetricEvent)(nil), // 10: chromiumos.MetricEvent
}
var file_chromite_api_build_api_test_proto_depIdxs = []int32{
	5,  // 0: chromite.api.NestedPath.path:type_name -> chromiumos.Path
	0,  // 1: chromite.api.MultiFieldMessage.test_enum:type_name -> chromite.api.TestEnum
	6,  // 2: chromite.api.TestRequestMessage.chroot:type_name -> chromiumos.Chroot
	5,  // 3: chromite.api.TestRequestMessage.path:type_name -> chromiumos.Path
	5,  // 4: chromite.api.TestRequestMessage.another_path:type_name -> chromiumos.Path
	1,  // 5: chromite.api.TestRequestMessage.nested_path:type_name -> chromite.api.NestedPath
	7,  // 6: chromite.api.TestRequestMessage.result_path:type_name -> chromiumos.ResultPath
	8,  // 7: chromite.api.TestRequestMessage.build_target:type_name -> chromiumos.BuildTarget
	8,  // 8: chromite.api.TestRequestMessage.build_targets:type_name -> chromiumos.BuildTarget
	9,  // 9: chromite.api.TestRequestMessage.synced_dir:type_name -> chromiumos.SyncedDir
	9,  // 10: chromite.api.TestRequestMessage.synced_dirs:type_name -> chromiumos.SyncedDir
	2,  // 11: chromite.api.TestRequestMessage.messages:type_name -> chromite.api.MultiFieldMessage
	0,  // 12: chromite.api.TestRequestMessage.test_enum:type_name -> chromite.api.TestEnum
	0,  // 13: chromite.api.TestRequestMessage.test_enums:type_name -> chromite.api.TestEnum
	5,  // 14: chromite.api.TestResultMessage.artifact:type_name -> chromiumos.Path
	1,  // 15: chromite.api.TestResultMessage.nested_artifact:type_name -> chromite.api.NestedPath
	5,  // 16: chromite.api.TestResultMessage.artifacts:type_name -> chromiumos.Path
	10, // 17: chromite.api.TestResultMessage.events:type_name -> chromiumos.MetricEvent
	3,  // 18: chromite.api.TestApiService.InputOutputMethod:input_type -> chromite.api.TestRequestMessage
	3,  // 19: chromite.api.TestApiService.RenamedMethod:input_type -> chromite.api.TestRequestMessage
	3,  // 20: chromite.api.InsideChrootApiService.InsideServiceInsideMethod:input_type -> chromite.api.TestRequestMessage
	3,  // 21: chromite.api.InsideChrootApiService.InsideServiceOutsideMethod:input_type -> chromite.api.TestRequestMessage
	3,  // 22: chromite.api.OutsideChrootApiService.OutsideServiceOutsideMethod:input_type -> chromite.api.TestRequestMessage
	3,  // 23: chromite.api.OutsideChrootApiService.OutsideServiceInsideMethod:input_type -> chromite.api.TestRequestMessage
	4,  // 24: chromite.api.TestApiService.InputOutputMethod:output_type -> chromite.api.TestResultMessage
	4,  // 25: chromite.api.TestApiService.RenamedMethod:output_type -> chromite.api.TestResultMessage
	4,  // 26: chromite.api.InsideChrootApiService.InsideServiceInsideMethod:output_type -> chromite.api.TestResultMessage
	4,  // 27: chromite.api.InsideChrootApiService.InsideServiceOutsideMethod:output_type -> chromite.api.TestResultMessage
	4,  // 28: chromite.api.OutsideChrootApiService.OutsideServiceOutsideMethod:output_type -> chromite.api.TestResultMessage
	4,  // 29: chromite.api.OutsideChrootApiService.OutsideServiceInsideMethod:output_type -> chromite.api.TestResultMessage
	24, // [24:30] is the sub-list for method output_type
	18, // [18:24] is the sub-list for method input_type
	18, // [18:18] is the sub-list for extension type_name
	18, // [18:18] is the sub-list for extension extendee
	0,  // [0:18] is the sub-list for field type_name
}

func init() { file_chromite_api_build_api_test_proto_init() }
func file_chromite_api_build_api_test_proto_init() {
	if File_chromite_api_build_api_test_proto != nil {
		return
	}
	file_chromite_api_build_api_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_chromite_api_build_api_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NestedPath); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chromite_api_build_api_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MultiFieldMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chromite_api_build_api_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TestRequestMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_chromite_api_build_api_test_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TestResultMessage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_chromite_api_build_api_test_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   3,
		},
		GoTypes:           file_chromite_api_build_api_test_proto_goTypes,
		DependencyIndexes: file_chromite_api_build_api_test_proto_depIdxs,
		EnumInfos:         file_chromite_api_build_api_test_proto_enumTypes,
		MessageInfos:      file_chromite_api_build_api_test_proto_msgTypes,
	}.Build()
	File_chromite_api_build_api_test_proto = out.File
	file_chromite_api_build_api_test_proto_rawDesc = nil
	file_chromite_api_build_api_test_proto_goTypes = nil
	file_chromite_api_build_api_test_proto_depIdxs = nil
}
