// Code generated by protoc-gen-go. DO NOT EDIT.
// source: envoy/service/tap/v3/tap.proto

package envoy_service_tap_v3

import (
	context "context"
	fmt "fmt"
	_ "github.com/cncf/udpa/go/udpa/annotations"
	v31 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	v3 "github.com/envoyproxy/go-control-plane/envoy/data/tap/v3"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	proto "github.com/golang/protobuf/proto"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type StreamTapsRequest struct {
	Identifier           *StreamTapsRequest_Identifier `protobuf:"bytes,1,opt,name=identifier,proto3" json:"identifier,omitempty"`
	TraceId              uint64                        `protobuf:"varint,2,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"`
	Trace                *v3.TraceWrapper              `protobuf:"bytes,3,opt,name=trace,proto3" json:"trace,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                      `json:"-"`
	XXX_unrecognized     []byte                        `json:"-"`
	XXX_sizecache        int32                         `json:"-"`
}

func (m *StreamTapsRequest) Reset()         { *m = StreamTapsRequest{} }
func (m *StreamTapsRequest) String() string { return proto.CompactTextString(m) }
func (*StreamTapsRequest) ProtoMessage()    {}
func (*StreamTapsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_35a24a29eecfc2f0, []int{0}
}

func (m *StreamTapsRequest) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamTapsRequest.Unmarshal(m, b)
}
func (m *StreamTapsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamTapsRequest.Marshal(b, m, deterministic)
}
func (m *StreamTapsRequest) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamTapsRequest.Merge(m, src)
}
func (m *StreamTapsRequest) XXX_Size() int {
	return xxx_messageInfo_StreamTapsRequest.Size(m)
}
func (m *StreamTapsRequest) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamTapsRequest.DiscardUnknown(m)
}

var xxx_messageInfo_StreamTapsRequest proto.InternalMessageInfo

func (m *StreamTapsRequest) GetIdentifier() *StreamTapsRequest_Identifier {
	if m != nil {
		return m.Identifier
	}
	return nil
}

func (m *StreamTapsRequest) GetTraceId() uint64 {
	if m != nil {
		return m.TraceId
	}
	return 0
}

func (m *StreamTapsRequest) GetTrace() *v3.TraceWrapper {
	if m != nil {
		return m.Trace
	}
	return nil
}

type StreamTapsRequest_Identifier struct {
	Node                 *v31.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	TapId                string    `protobuf:"bytes,2,opt,name=tap_id,json=tapId,proto3" json:"tap_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (m *StreamTapsRequest_Identifier) Reset()         { *m = StreamTapsRequest_Identifier{} }
func (m *StreamTapsRequest_Identifier) String() string { return proto.CompactTextString(m) }
func (*StreamTapsRequest_Identifier) ProtoMessage()    {}
func (*StreamTapsRequest_Identifier) Descriptor() ([]byte, []int) {
	return fileDescriptor_35a24a29eecfc2f0, []int{0, 0}
}

func (m *StreamTapsRequest_Identifier) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamTapsRequest_Identifier.Unmarshal(m, b)
}
func (m *StreamTapsRequest_Identifier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamTapsRequest_Identifier.Marshal(b, m, deterministic)
}
func (m *StreamTapsRequest_Identifier) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamTapsRequest_Identifier.Merge(m, src)
}
func (m *StreamTapsRequest_Identifier) XXX_Size() int {
	return xxx_messageInfo_StreamTapsRequest_Identifier.Size(m)
}
func (m *StreamTapsRequest_Identifier) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamTapsRequest_Identifier.DiscardUnknown(m)
}

var xxx_messageInfo_StreamTapsRequest_Identifier proto.InternalMessageInfo

func (m *StreamTapsRequest_Identifier) GetNode() *v31.Node {
	if m != nil {
		return m.Node
	}
	return nil
}

func (m *StreamTapsRequest_Identifier) GetTapId() string {
	if m != nil {
		return m.TapId
	}
	return ""
}

type StreamTapsResponse struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StreamTapsResponse) Reset()         { *m = StreamTapsResponse{} }
func (m *StreamTapsResponse) String() string { return proto.CompactTextString(m) }
func (*StreamTapsResponse) ProtoMessage()    {}
func (*StreamTapsResponse) Descriptor() ([]byte, []int) {
	return fileDescriptor_35a24a29eecfc2f0, []int{1}
}

func (m *StreamTapsResponse) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_StreamTapsResponse.Unmarshal(m, b)
}
func (m *StreamTapsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_StreamTapsResponse.Marshal(b, m, deterministic)
}
func (m *StreamTapsResponse) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StreamTapsResponse.Merge(m, src)
}
func (m *StreamTapsResponse) XXX_Size() int {
	return xxx_messageInfo_StreamTapsResponse.Size(m)
}
func (m *StreamTapsResponse) XXX_DiscardUnknown() {
	xxx_messageInfo_StreamTapsResponse.DiscardUnknown(m)
}

var xxx_messageInfo_StreamTapsResponse proto.InternalMessageInfo

func init() {
	proto.RegisterType((*StreamTapsRequest)(nil), "envoy.service.tap.v3.StreamTapsRequest")
	proto.RegisterType((*StreamTapsRequest_Identifier)(nil), "envoy.service.tap.v3.StreamTapsRequest.Identifier")
	proto.RegisterType((*StreamTapsResponse)(nil), "envoy.service.tap.v3.StreamTapsResponse")
}

func init() { proto.RegisterFile("envoy/service/tap/v3/tap.proto", fileDescriptor_35a24a29eecfc2f0) }

var fileDescriptor_35a24a29eecfc2f0 = []byte{
	// 439 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xc1, 0x6b, 0x14, 0x31,
	0x14, 0xc6, 0xcd, 0xb6, 0xbb, 0xae, 0x4f, 0x90, 0x1a, 0x14, 0xd7, 0x05, 0xdb, 0xba, 0x17, 0x17,
	0xd4, 0x0c, 0xcc, 0xa2, 0x94, 0x15, 0x2f, 0x7b, 0xdb, 0x8b, 0x94, 0xd9, 0x05, 0x8f, 0xf2, 0x3a,
	0x79, 0xad, 0xc1, 0x9a, 0xc4, 0x24, 0x3b, 0xda, 0x9b, 0xc7, 0x22, 0xfe, 0x05, 0xe2, 0x5f, 0xe2,
	0x5d, 0xf0, 0xea, 0xbf, 0xe3, 0x49, 0x32, 0x99, 0xb1, 0x85, 0x2e, 0x5a, 0x4f, 0x93, 0x99, 0xef,
	0xfb, 0x7d, 0x5f, 0xf2, 0x26, 0xb0, 0x4d, 0xba, 0x32, 0x27, 0x99, 0x27, 0x57, 0xa9, 0x92, 0xb2,
	0x80, 0x36, 0xab, 0x26, 0xf1, 0x21, 0xac, 0x33, 0xc1, 0xf0, 0x5b, 0xb5, 0x2e, 0x1a, 0x5d, 0x44,
	0xa1, 0x9a, 0x0c, 0x77, 0x12, 0x55, 0x1a, 0x7d, 0xa8, 0x8e, 0xb2, 0xd2, 0x38, 0x8a, 0xd4, 0x01,
	0x7a, 0x4a, 0x58, 0x6b, 0x90, 0x18, 0xb0, 0xcd, 0x7c, 0xef, 0xd0, 0x5a, 0x72, 0x8d, 0xe1, 0xde,
	0x4a, 0x5a, 0xcc, 0x50, 0x6b, 0x13, 0x30, 0x28, 0xa3, 0x7d, 0xe6, 0x03, 0x86, 0x95, 0x6f, 0xe4,
	0xfb, 0x17, 0xe4, 0x8a, 0x9c, 0x57, 0x46, 0x2b, 0x7d, 0xd4, 0x58, 0xee, 0x54, 0x78, 0xac, 0x24,
	0x06, 0xca, 0xda, 0x45, 0x12, 0x46, 0x9f, 0x37, 0xe0, 0xe6, 0x22, 0x38, 0xc2, 0xb7, 0x4b, 0xb4,
	0xbe, 0xa0, 0x77, 0x2b, 0xf2, 0x81, 0x17, 0x00, 0x4a, 0x92, 0x0e, 0xea, 0x50, 0x91, 0x1b, 0xb0,
	0x5d, 0x36, 0xbe, 0x9e, 0xe7, 0x62, 0xdd, 0xe9, 0xc4, 0x05, 0x58, 0xcc, 0xff, 0x90, 0xc5, 0xb9,
	0x14, 0x7e, 0x17, 0xfa, 0xc1, 0x61, 0x49, 0xaf, 0x94, 0x1c, 0x74, 0x76, 0xd9, 0x78, 0xb3, 0xb8,
	0x5a, 0xbf, 0xcf, 0x25, 0x7f, 0x02, 0xdd, 0x7a, 0x39, 0xd8, 0xa8, 0x9b, 0x76, 0x9a, 0xa6, 0x38,
	0x90, 0xb6, 0x66, 0x19, 0xf5, 0x97, 0x69, 0x2a, 0x45, 0x72, 0x0f, 0xbf, 0x32, 0x80, 0xb3, 0x32,
	0xbe, 0x07, 0x9b, 0xda, 0x48, 0x6a, 0xb6, 0x3b, 0x6c, 0x42, 0xd2, 0xd8, 0x45, 0x1c, 0x7b, 0xcc,
	0x79, 0x61, 0x24, 0xcd, 0xfa, 0xbf, 0x66, 0xdd, 0x4f, 0xac, 0xb3, 0xc5, 0x8a, 0x9a, 0xe0, 0xb7,
	0xa1, 0x17, 0xd0, 0xb6, 0x1b, 0xbb, 0x56, 0x74, 0x03, 0xda, 0xb9, 0x9c, 0x3e, 0xff, 0xf2, 0xfd,
	0x74, 0x7b, 0x0f, 0x9e, 0xae, 0x39, 0x77, 0x8e, 0xc7, 0xf6, 0x35, 0xfe, 0xf5, 0xf0, 0xd3, 0x3c,
	0xe2, 0x8f, 0xe1, 0xe1, 0x7f, 0xe0, 0xa3, 0x39, 0xf0, 0xf3, 0x1f, 0xbd, 0x35, 0xda, 0xd3, 0x74,
	0x12, 0x93, 0x04, 0x3c, 0xba, 0x5c, 0x52, 0x82, 0xf2, 0x15, 0xdc, 0x58, 0xa2, 0x5d, 0x28, 0xfd,
	0x66, 0x91, 0x00, 0x5e, 0x02, 0x9c, 0xf9, 0xf8, 0x83, 0x4b, 0xfe, 0xcf, 0xe1, 0xf8, 0xdf, 0xc6,
	0x54, 0x39, 0xba, 0x32, 0x66, 0xb3, 0x67, 0xdf, 0x3e, 0xfe, 0xf8, 0xd9, 0xeb, 0x6c, 0x75, 0x60,
	0xa4, 0x4c, 0x22, 0xad, 0x33, 0x1f, 0x4e, 0xd6, 0x86, 0xcc, 0xfa, 0x4b, 0xb4, 0xfb, 0xf1, 0x22,
	0xee, 0xb3, 0x53, 0xc6, 0x0e, 0x7a, 0xf5, 0xa5, 0x9c, 0xfc, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xcc,
	0x64, 0x4c, 0x9d, 0x69, 0x03, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// TapSinkServiceClient is the client API for TapSinkService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type TapSinkServiceClient interface {
	StreamTaps(ctx context.Context, opts ...grpc.CallOption) (TapSinkService_StreamTapsClient, error)
}

type tapSinkServiceClient struct {
	cc *grpc.ClientConn
}

func NewTapSinkServiceClient(cc *grpc.ClientConn) TapSinkServiceClient {
	return &tapSinkServiceClient{cc}
}

func (c *tapSinkServiceClient) StreamTaps(ctx context.Context, opts ...grpc.CallOption) (TapSinkService_StreamTapsClient, error) {
	stream, err := c.cc.NewStream(ctx, &_TapSinkService_serviceDesc.Streams[0], "/envoy.service.tap.v3.TapSinkService/StreamTaps", opts...)
	if err != nil {
		return nil, err
	}
	x := &tapSinkServiceStreamTapsClient{stream}
	return x, nil
}

type TapSinkService_StreamTapsClient interface {
	Send(*StreamTapsRequest) error
	CloseAndRecv() (*StreamTapsResponse, error)
	grpc.ClientStream
}

type tapSinkServiceStreamTapsClient struct {
	grpc.ClientStream
}

func (x *tapSinkServiceStreamTapsClient) Send(m *StreamTapsRequest) error {
	return x.ClientStream.SendMsg(m)
}

func (x *tapSinkServiceStreamTapsClient) CloseAndRecv() (*StreamTapsResponse, error) {
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	m := new(StreamTapsResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// TapSinkServiceServer is the server API for TapSinkService service.
type TapSinkServiceServer interface {
	StreamTaps(TapSinkService_StreamTapsServer) error
}

// UnimplementedTapSinkServiceServer can be embedded to have forward compatible implementations.
type UnimplementedTapSinkServiceServer struct {
}

func (*UnimplementedTapSinkServiceServer) StreamTaps(srv TapSinkService_StreamTapsServer) error {
	return status.Errorf(codes.Unimplemented, "method StreamTaps not implemented")
}

func RegisterTapSinkServiceServer(s *grpc.Server, srv TapSinkServiceServer) {
	s.RegisterService(&_TapSinkService_serviceDesc, srv)
}

func _TapSinkService_StreamTaps_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(TapSinkServiceServer).StreamTaps(&tapSinkServiceStreamTapsServer{stream})
}

type TapSinkService_StreamTapsServer interface {
	SendAndClose(*StreamTapsResponse) error
	Recv() (*StreamTapsRequest, error)
	grpc.ServerStream
}

type tapSinkServiceStreamTapsServer struct {
	grpc.ServerStream
}

func (x *tapSinkServiceStreamTapsServer) SendAndClose(m *StreamTapsResponse) error {
	return x.ServerStream.SendMsg(m)
}

func (x *tapSinkServiceStreamTapsServer) Recv() (*StreamTapsRequest, error) {
	m := new(StreamTapsRequest)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

var _TapSinkService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "envoy.service.tap.v3.TapSinkService",
	HandlerType: (*TapSinkServiceServer)(nil),
	Methods:     []grpc.MethodDesc{},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StreamTaps",
			Handler:       _TapSinkService_StreamTaps_Handler,
			ClientStreams: true,
		},
	},
	Metadata: "envoy/service/tap/v3/tap.proto",
}
