// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        (unknown)
// source: test.proto

package grpctest

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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 TestRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Input         int32                  `protobuf:"varint,1,opt,name=Input,proto3" json:"Input,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestRequest) Reset() {
	*x = TestRequest{}
	mi := &file_test_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestRequest) ProtoMessage() {}

func (x *TestRequest) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestRequest.ProtoReflect.Descriptor instead.
func (*TestRequest) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{0}
}

func (x *TestRequest) GetInput() int32 {
	if x != nil {
		return x.Input
	}
	return 0
}

type TestResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Output        int32                  `protobuf:"varint,2,opt,name=Output,proto3" json:"Output,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TestResponse) Reset() {
	*x = TestResponse{}
	mi := &file_test_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*TestResponse) ProtoMessage() {}

func (x *TestResponse) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TestResponse.ProtoReflect.Descriptor instead.
func (*TestResponse) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{1}
}

func (x *TestResponse) GetOutput() int32 {
	if x != nil {
		return x.Output
	}
	return 0
}

type PrintKVRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Key   string                 `protobuf:"bytes,1,opt,name=Key,proto3" json:"Key,omitempty"`
	// Types that are valid to be assigned to Value:
	//
	//	*PrintKVRequest_ValueString
	//	*PrintKVRequest_ValueInt
	Value         isPrintKVRequest_Value `protobuf_oneof:"Value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PrintKVRequest) Reset() {
	*x = PrintKVRequest{}
	mi := &file_test_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*PrintKVRequest) ProtoMessage() {}

func (x *PrintKVRequest) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PrintKVRequest.ProtoReflect.Descriptor instead.
func (*PrintKVRequest) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{2}
}

func (x *PrintKVRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *PrintKVRequest) GetValue() isPrintKVRequest_Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *PrintKVRequest) GetValueString() string {
	if x != nil {
		if x, ok := x.Value.(*PrintKVRequest_ValueString); ok {
			return x.ValueString
		}
	}
	return ""
}

func (x *PrintKVRequest) GetValueInt() int32 {
	if x != nil {
		if x, ok := x.Value.(*PrintKVRequest_ValueInt); ok {
			return x.ValueInt
		}
	}
	return 0
}

type isPrintKVRequest_Value interface {
	isPrintKVRequest_Value()
}

type PrintKVRequest_ValueString struct {
	ValueString string `protobuf:"bytes,2,opt,name=ValueString,proto3,oneof"`
}

type PrintKVRequest_ValueInt struct {
	ValueInt int32 `protobuf:"varint,3,opt,name=ValueInt,proto3,oneof"`
}

func (*PrintKVRequest_ValueString) isPrintKVRequest_Value() {}

func (*PrintKVRequest_ValueInt) isPrintKVRequest_Value() {}

type PrintKVResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PrintKVResponse) Reset() {
	*x = PrintKVResponse{}
	mi := &file_test_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*PrintKVResponse) ProtoMessage() {}

func (x *PrintKVResponse) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PrintKVResponse.ProtoReflect.Descriptor instead.
func (*PrintKVResponse) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{3}
}

type BidirectionalRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            uint32                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BidirectionalRequest) Reset() {
	*x = BidirectionalRequest{}
	mi := &file_test_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*BidirectionalRequest) ProtoMessage() {}

func (x *BidirectionalRequest) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BidirectionalRequest.ProtoReflect.Descriptor instead.
func (*BidirectionalRequest) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{4}
}

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

type BidirectionalResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Id            uint32                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BidirectionalResponse) Reset() {
	*x = BidirectionalResponse{}
	mi := &file_test_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*BidirectionalResponse) ProtoMessage() {}

func (x *BidirectionalResponse) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BidirectionalResponse.ProtoReflect.Descriptor instead.
func (*BidirectionalResponse) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{5}
}

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

type PrintStdioRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Stdout        []byte                 `protobuf:"bytes,1,opt,name=stdout,proto3" json:"stdout,omitempty"`
	Stderr        []byte                 `protobuf:"bytes,2,opt,name=stderr,proto3" json:"stderr,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PrintStdioRequest) Reset() {
	*x = PrintStdioRequest{}
	mi := &file_test_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*PrintStdioRequest) ProtoMessage() {}

func (x *PrintStdioRequest) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PrintStdioRequest.ProtoReflect.Descriptor instead.
func (*PrintStdioRequest) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{6}
}

func (x *PrintStdioRequest) GetStdout() []byte {
	if x != nil {
		return x.Stdout
	}
	return nil
}

func (x *PrintStdioRequest) GetStderr() []byte {
	if x != nil {
		return x.Stderr
	}
	return nil
}

type PanicRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Message       string                 `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PanicRequest) Reset() {
	*x = PanicRequest{}
	mi := &file_test_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*PanicRequest) ProtoMessage() {}

func (x *PanicRequest) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PanicRequest.ProtoReflect.Descriptor instead.
func (*PanicRequest) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{7}
}

func (x *PanicRequest) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

type PingRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PingRequest) Reset() {
	*x = PingRequest{}
	mi := &file_test_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*PingRequest) ProtoMessage() {}

func (x *PingRequest) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PingRequest.ProtoReflect.Descriptor instead.
func (*PingRequest) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{8}
}

type PongResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Msg           string                 `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PongResponse) Reset() {
	*x = PongResponse{}
	mi := &file_test_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*PongResponse) ProtoMessage() {}

func (x *PongResponse) ProtoReflect() protoreflect.Message {
	mi := &file_test_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PongResponse.ProtoReflect.Descriptor instead.
func (*PongResponse) Descriptor() ([]byte, []int) {
	return file_test_proto_rawDescGZIP(), []int{9}
}

func (x *PongResponse) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

var File_test_proto protoreflect.FileDescriptor

const file_test_proto_rawDesc = "" +
	"\n" +
	"\n" +
	"test.proto\x12\bgrpctest\x1a\x1bgoogle/protobuf/empty.proto\"#\n" +
	"\vTestRequest\x12\x14\n" +
	"\x05Input\x18\x01 \x01(\x05R\x05Input\"&\n" +
	"\fTestResponse\x12\x16\n" +
	"\x06Output\x18\x02 \x01(\x05R\x06Output\"m\n" +
	"\x0ePrintKVRequest\x12\x10\n" +
	"\x03Key\x18\x01 \x01(\tR\x03Key\x12\"\n" +
	"\vValueString\x18\x02 \x01(\tH\x00R\vValueString\x12\x1c\n" +
	"\bValueInt\x18\x03 \x01(\x05H\x00R\bValueIntB\a\n" +
	"\x05Value\"\x11\n" +
	"\x0fPrintKVResponse\"&\n" +
	"\x14BidirectionalRequest\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\rR\x02id\"'\n" +
	"\x15BidirectionalResponse\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\rR\x02id\"C\n" +
	"\x11PrintStdioRequest\x12\x16\n" +
	"\x06stdout\x18\x01 \x01(\fR\x06stdout\x12\x16\n" +
	"\x06stderr\x18\x02 \x01(\fR\x06stderr\"(\n" +
	"\fPanicRequest\x12\x18\n" +
	"\amessage\x18\x01 \x01(\tR\amessage\"\r\n" +
	"\vPingRequest\" \n" +
	"\fPongResponse\x12\x10\n" +
	"\x03msg\x18\x01 \x01(\tR\x03msg2\x96\x03\n" +
	"\x04Test\x129\n" +
	"\x06Double\x12\x15.grpctest.TestRequest\x1a\x16.grpctest.TestResponse\"\x00\x12@\n" +
	"\aPrintKV\x12\x18.grpctest.PrintKVRequest\x1a\x19.grpctest.PrintKVResponse\"\x00\x12R\n" +
	"\rBidirectional\x12\x1e.grpctest.BidirectionalRequest\x1a\x1f.grpctest.BidirectionalResponse\"\x00\x12=\n" +
	"\x06Stream\x12\x15.grpctest.TestRequest\x1a\x16.grpctest.TestResponse\"\x00(\x010\x01\x12C\n" +
	"\n" +
	"PrintStdio\x12\x1b.grpctest.PrintStdioRequest\x1a\x16.google.protobuf.Empty\"\x00\x129\n" +
	"\x05Panic\x12\x16.grpctest.PanicRequest\x1a\x16.google.protobuf.Empty\"\x002C\n" +
	"\bPingPong\x127\n" +
	"\x04Ping\x12\x15.grpctest.PingRequest\x1a\x16.grpctest.PongResponse\"\x00B\fZ\n" +
	"./grpctestb\x06proto3"

var (
	file_test_proto_rawDescOnce sync.Once
	file_test_proto_rawDescData []byte
)

func file_test_proto_rawDescGZIP() []byte {
	file_test_proto_rawDescOnce.Do(func() {
		file_test_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_test_proto_rawDesc), len(file_test_proto_rawDesc)))
	})
	return file_test_proto_rawDescData
}

var file_test_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_test_proto_goTypes = []any{
	(*TestRequest)(nil),           // 0: grpctest.TestRequest
	(*TestResponse)(nil),          // 1: grpctest.TestResponse
	(*PrintKVRequest)(nil),        // 2: grpctest.PrintKVRequest
	(*PrintKVResponse)(nil),       // 3: grpctest.PrintKVResponse
	(*BidirectionalRequest)(nil),  // 4: grpctest.BidirectionalRequest
	(*BidirectionalResponse)(nil), // 5: grpctest.BidirectionalResponse
	(*PrintStdioRequest)(nil),     // 6: grpctest.PrintStdioRequest
	(*PanicRequest)(nil),          // 7: grpctest.PanicRequest
	(*PingRequest)(nil),           // 8: grpctest.PingRequest
	(*PongResponse)(nil),          // 9: grpctest.PongResponse
	(*emptypb.Empty)(nil),         // 10: google.protobuf.Empty
}
var file_test_proto_depIdxs = []int32{
	0,  // 0: grpctest.Test.Double:input_type -> grpctest.TestRequest
	2,  // 1: grpctest.Test.PrintKV:input_type -> grpctest.PrintKVRequest
	4,  // 2: grpctest.Test.Bidirectional:input_type -> grpctest.BidirectionalRequest
	0,  // 3: grpctest.Test.Stream:input_type -> grpctest.TestRequest
	6,  // 4: grpctest.Test.PrintStdio:input_type -> grpctest.PrintStdioRequest
	7,  // 5: grpctest.Test.Panic:input_type -> grpctest.PanicRequest
	8,  // 6: grpctest.PingPong.Ping:input_type -> grpctest.PingRequest
	1,  // 7: grpctest.Test.Double:output_type -> grpctest.TestResponse
	3,  // 8: grpctest.Test.PrintKV:output_type -> grpctest.PrintKVResponse
	5,  // 9: grpctest.Test.Bidirectional:output_type -> grpctest.BidirectionalResponse
	1,  // 10: grpctest.Test.Stream:output_type -> grpctest.TestResponse
	10, // 11: grpctest.Test.PrintStdio:output_type -> google.protobuf.Empty
	10, // 12: grpctest.Test.Panic:output_type -> google.protobuf.Empty
	9,  // 13: grpctest.PingPong.Ping:output_type -> grpctest.PongResponse
	7,  // [7:14] is the sub-list for method output_type
	0,  // [0:7] is the sub-list for method input_type
	0,  // [0:0] is the sub-list for extension type_name
	0,  // [0:0] is the sub-list for extension extendee
	0,  // [0:0] is the sub-list for field type_name
}

func init() { file_test_proto_init() }
func file_test_proto_init() {
	if File_test_proto != nil {
		return
	}
	file_test_proto_msgTypes[2].OneofWrappers = []any{
		(*PrintKVRequest_ValueString)(nil),
		(*PrintKVRequest_ValueInt)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_test_proto_rawDesc), len(file_test_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   10,
			NumExtensions: 0,
			NumServices:   2,
		},
		GoTypes:           file_test_proto_goTypes,
		DependencyIndexes: file_test_proto_depIdxs,
		MessageInfos:      file_test_proto_msgTypes,
	}.Build()
	File_test_proto = out.File
	file_test_proto_goTypes = nil
	file_test_proto_depIdxs = nil
}
