// Code generated by protoc-gen-go.
// source: code.justin.tv/release/trace/api/api.proto
// DO NOT EDIT!

/*
Package api is a generated protocol buffer package.

It is generated from these files:
	code.justin.tv/release/trace/api/api.proto
	code.justin.tv/release/trace/api/transaction.proto

It has these top-level messages:
	FirehoseRequest
	Query
	Comparison
	StringComparison
	IntegerComparison
	TransactionSet
	Transaction
	Call
	Service
	Timestamp
	RPCParams
	HTTPParams
	SQLParams
	MemcachedParams
	GRPCParams
*/
package api

import (
	"code.justin.tv/common/chitin/grpctrace"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"

	math "math"

	context "golang.org/x/net/context"

	grpc "google.golang.org/grpc"
)

// 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.ProtoPackageIsVersion2 // please upgrade the proto package

type IntegerComparison_Type int32

const (
	IntegerComparison_EQUALS  IntegerComparison_Type = 0
	IntegerComparison_GREATER IntegerComparison_Type = 1
	IntegerComparison_LESSER  IntegerComparison_Type = 2
)

var IntegerComparison_Type_name = map[int32]string{
	0: "EQUALS",
	1: "GREATER",
	2: "LESSER",
}
var IntegerComparison_Type_value = map[string]int32{
	"EQUALS":  0,
	"GREATER": 1,
	"LESSER":  2,
}

func (x IntegerComparison_Type) String() string {
	return proto.EnumName(IntegerComparison_Type_name, int32(x))
}
func (IntegerComparison_Type) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{4, 0} }

type FirehoseRequest struct {
	Query    *Query  `protobuf:"bytes,1,opt,name=query" json:"query,omitempty"`
	Sampling float64 `protobuf:"fixed64,2,opt,name=sampling" json:"sampling,omitempty"`
}

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

func (m *FirehoseRequest) GetQuery() *Query {
	if m != nil {
		return m.Query
	}
	return nil
}

func (m *FirehoseRequest) GetSampling() float64 {
	if m != nil {
		return m.Sampling
	}
	return 0
}

// A Query represents a collection of comparisons
// All comparisons in a Query must match on the same Call
// By default, subqueries in a Query must match the Call matched by the Query OR descendant subcalls of the matched Call
// This is overriden by the depth field
type Query struct {
	// enum Type {
	//  AND = 0;
	//  OR = 1;
	// }
	// Type type = 1;
	Subqueries  []*Query      `protobuf:"bytes,2,rep,name=subqueries" json:"subqueries,omitempty"`
	Comparisons []*Comparison `protobuf:"bytes,3,rep,name=comparisons" json:"comparisons,omitempty"`
}

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

func (m *Query) GetSubqueries() []*Query {
	if m != nil {
		return m.Subqueries
	}
	return nil
}

func (m *Query) GetComparisons() []*Comparison {
	if m != nil {
		return m.Comparisons
	}
	return nil
}

// Comparison contains the various potential comparisons each Call can handle
// Servers MUST support multiple subcomparisons being set on a single Comparison
// Clients SHOULD NOT set multiple subcomparisons on a single Comparison
// Each subcomparison maps directly to the value of a field in a Call
// You can see their definitions in transaction.proto
type Comparison struct {
	// Inverts the result of all subcomparisons
	Not            bool               `protobuf:"varint,1,opt,name=not" json:"not,omitempty"`
	ServiceName    *StringComparison  `protobuf:"bytes,20,opt,name=service_name,json=serviceName" json:"service_name,omitempty"`
	ServiceHost    *StringComparison  `protobuf:"bytes,21,opt,name=service_host,json=serviceHost" json:"service_host,omitempty"`
	ServicePid     *IntegerComparison `protobuf:"bytes,22,opt,name=service_pid,json=servicePid" json:"service_pid,omitempty"`
	ServicePeer    *StringComparison  `protobuf:"bytes,23,opt,name=service_peer,json=servicePeer" json:"service_peer,omitempty"`
	RequestSentTo  *StringComparison  `protobuf:"bytes,24,opt,name=request_sent_to,json=requestSentTo" json:"request_sent_to,omitempty"`
	ClientDuration *IntegerComparison `protobuf:"bytes,30,opt,name=client_duration,json=clientDuration" json:"client_duration,omitempty"`
	ServerDuration *IntegerComparison `protobuf:"bytes,31,opt,name=server_duration,json=serverDuration" json:"server_duration,omitempty"`
	HttpMethod     *StringComparison  `protobuf:"bytes,40,opt,name=http_method,json=httpMethod" json:"http_method,omitempty"`
	// StringComparison http_uri_path = 41; // Removed due to PII concerns
	HttpRoute      *StringComparison  `protobuf:"bytes,42,opt,name=http_route,json=httpRoute" json:"http_route,omitempty"`
	HttpStatusCode *IntegerComparison `protobuf:"bytes,43,opt,name=http_status_code,json=httpStatusCode" json:"http_status_code,omitempty"`
}

func (m *Comparison) Reset()                    { *m = Comparison{} }
func (m *Comparison) String() string            { return proto.CompactTextString(m) }
func (*Comparison) ProtoMessage()               {}
func (*Comparison) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

func (m *Comparison) GetNot() bool {
	if m != nil {
		return m.Not
	}
	return false
}

func (m *Comparison) GetServiceName() *StringComparison {
	if m != nil {
		return m.ServiceName
	}
	return nil
}

func (m *Comparison) GetServiceHost() *StringComparison {
	if m != nil {
		return m.ServiceHost
	}
	return nil
}

func (m *Comparison) GetServicePid() *IntegerComparison {
	if m != nil {
		return m.ServicePid
	}
	return nil
}

func (m *Comparison) GetServicePeer() *StringComparison {
	if m != nil {
		return m.ServicePeer
	}
	return nil
}

func (m *Comparison) GetRequestSentTo() *StringComparison {
	if m != nil {
		return m.RequestSentTo
	}
	return nil
}

func (m *Comparison) GetClientDuration() *IntegerComparison {
	if m != nil {
		return m.ClientDuration
	}
	return nil
}

func (m *Comparison) GetServerDuration() *IntegerComparison {
	if m != nil {
		return m.ServerDuration
	}
	return nil
}

func (m *Comparison) GetHttpMethod() *StringComparison {
	if m != nil {
		return m.HttpMethod
	}
	return nil
}

func (m *Comparison) GetHttpRoute() *StringComparison {
	if m != nil {
		return m.HttpRoute
	}
	return nil
}

func (m *Comparison) GetHttpStatusCode() *IntegerComparison {
	if m != nil {
		return m.HttpStatusCode
	}
	return nil
}

type StringComparison struct {
	// enum Type {
	//  EQUALS = 0;
	//  LIKE = 1;
	// }
	// Type type = 1;
	Value string `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
}

func (m *StringComparison) Reset()                    { *m = StringComparison{} }
func (m *StringComparison) String() string            { return proto.CompactTextString(m) }
func (*StringComparison) ProtoMessage()               {}
func (*StringComparison) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

func (m *StringComparison) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

type IntegerComparison struct {
	Type  IntegerComparison_Type `protobuf:"varint,1,opt,name=type,enum=code.justin.tv.release.trace.api.IntegerComparison_Type" json:"type,omitempty"`
	Value int64                  `protobuf:"zigzag64,2,opt,name=value" json:"value,omitempty"`
}

func (m *IntegerComparison) Reset()                    { *m = IntegerComparison{} }
func (m *IntegerComparison) String() string            { return proto.CompactTextString(m) }
func (*IntegerComparison) ProtoMessage()               {}
func (*IntegerComparison) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

func (m *IntegerComparison) GetType() IntegerComparison_Type {
	if m != nil {
		return m.Type
	}
	return IntegerComparison_EQUALS
}

func (m *IntegerComparison) GetValue() int64 {
	if m != nil {
		return m.Value
	}
	return 0
}

func init() {
	proto.RegisterType((*FirehoseRequest)(nil), "code.justin.tv.release.trace.api.FirehoseRequest")
	proto.RegisterType((*Query)(nil), "code.justin.tv.release.trace.api.Query")
	proto.RegisterType((*Comparison)(nil), "code.justin.tv.release.trace.api.Comparison")
	proto.RegisterType((*StringComparison)(nil), "code.justin.tv.release.trace.api.StringComparison")
	proto.RegisterType((*IntegerComparison)(nil), "code.justin.tv.release.trace.api.IntegerComparison")
	proto.RegisterEnum("code.justin.tv.release.trace.api.IntegerComparison_Type", IntegerComparison_Type_name, IntegerComparison_Type_value)
}

// 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

// Client API for Trace service

type TraceClient interface {
	Firehose(ctx context.Context, in *FirehoseRequest, opts ...grpc.CallOption) (Trace_FirehoseClient, error)
}

type traceClient struct {
	cc *grpc.ClientConn
}

func NewTraceClient(cc *grpc.ClientConn) TraceClient {
	return &traceClient{cc}
}

func (c *traceClient) Firehose(ctx context.Context, in *FirehoseRequest, opts ...grpc.CallOption) (Trace_FirehoseClient, error) {
	stream, err := grpctrace.NewClientStream(ctx, &_Trace_serviceDesc.Streams[0], c.cc, "/code.justin.tv.release.trace.api.Trace/Firehose", opts...)
	if err != nil {
		return nil, err
	}
	x := &traceFirehoseClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Trace_FirehoseClient interface {
	Recv() (*Transaction, error)
	grpc.ClientStream
}

type traceFirehoseClient struct {
	grpc.ClientStream
}

func (x *traceFirehoseClient) Recv() (*Transaction, error) {
	m := new(Transaction)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

// Server API for Trace service

type TraceServer interface {
	Firehose(*FirehoseRequest, Trace_FirehoseServer) error
}

func RegisterTraceServer(s *grpc.Server, srv TraceServer) {
	grpctrace.RegisterService(s, &_Trace_serviceDesc, srv)
}

func _Trace_Firehose_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(FirehoseRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(TraceServer).Firehose(m, &traceFirehoseServer{stream})
}

type Trace_FirehoseServer interface {
	Send(*Transaction) error
	grpc.ServerStream
}

type traceFirehoseServer struct {
	grpc.ServerStream
}

func (x *traceFirehoseServer) Send(m *Transaction) error {
	return x.ServerStream.SendMsg(m)
}

var _Trace_serviceDesc = grpc.ServiceDesc{
	ServiceName: "code.justin.tv.release.trace.api.Trace",
	HandlerType: (*TraceServer)(nil),
	Methods:     []grpc.MethodDesc{},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Firehose",
			Handler:       _Trace_Firehose_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "code.justin.tv/release/trace/api/api.proto",
}

func init() { proto.RegisterFile("code.justin.tv/release/trace/api/api.proto", fileDescriptor0) }

var fileDescriptor0 = []byte{
	// 568 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0xd5, 0xcf, 0x6f, 0xd3, 0x30,
	0x14, 0x07, 0xf0, 0x65, 0x5d, 0xf7, 0xe3, 0x15, 0xb6, 0x60, 0x0d, 0xb0, 0x76, 0x80, 0x2a, 0x17,
	0xaa, 0x0d, 0x32, 0xe8, 0x2e, 0x5c, 0x38, 0x8c, 0x51, 0x06, 0xd2, 0x98, 0xb6, 0x24, 0xbb, 0x4c,
	0xa0, 0xc8, 0x4b, 0x9e, 0x56, 0xa3, 0x36, 0xf6, 0x6c, 0x67, 0x52, 0xff, 0x13, 0x8e, 0x1c, 0xf8,
	0x43, 0x91, 0x9d, 0x6e, 0xcb, 0xc6, 0x21, 0xa2, 0x3d, 0x54, 0xaa, 0x95, 0xf7, 0x3e, 0x5f, 0xf7,
	0xa9, 0x76, 0x60, 0x3b, 0x13, 0x39, 0x86, 0x3f, 0x4b, 0x6d, 0x78, 0x11, 0x9a, 0xeb, 0x5d, 0x85,
	0x23, 0x64, 0x1a, 0x77, 0x8d, 0x62, 0x19, 0xee, 0x32, 0xc9, 0xed, 0x27, 0x94, 0x4a, 0x18, 0x41,
	0xba, 0xf7, 0x6b, 0xc3, 0x69, 0x6d, 0xe8, 0x6a, 0x43, 0x26, 0xf9, 0x56, 0xbf, 0x51, 0x33, 0x8a,
	0x15, 0x9a, 0x65, 0x86, 0x8b, 0xa2, 0x52, 0x83, 0x11, 0x6c, 0x7c, 0xe6, 0x0a, 0x87, 0x42, 0x63,
	0x84, 0x57, 0x25, 0x6a, 0x43, 0x3e, 0x40, 0xfb, 0xaa, 0x44, 0x35, 0xa1, 0x5e, 0xd7, 0xeb, 0x75,
	0xfa, 0xaf, 0xc2, 0xa6, 0xe0, 0xf0, 0xd4, 0x96, 0x47, 0x55, 0x17, 0xd9, 0x82, 0x55, 0xcd, 0xc6,
	0x72, 0xc4, 0x8b, 0x4b, 0xba, 0xd8, 0xf5, 0x7a, 0x5e, 0x74, 0xbb, 0x0e, 0x7e, 0x7b, 0xd0, 0x76,
	0xc5, 0xe4, 0x10, 0x40, 0x97, 0x17, 0xb6, 0x83, 0xa3, 0xa6, 0x8b, 0xdd, 0xd6, 0xff, 0x24, 0xd5,
	0x5a, 0xc9, 0x31, 0x74, 0x32, 0x31, 0x96, 0x4c, 0x71, 0x2d, 0x0a, 0x4d, 0x5b, 0x4e, 0x7a, 0xdd,
	0x2c, 0x1d, 0xdc, 0x36, 0x45, 0x75, 0x20, 0xf8, 0xb5, 0x02, 0x70, 0xf7, 0x8c, 0xf8, 0xd0, 0x2a,
	0x84, 0x71, 0xa3, 0x58, 0x8d, 0xec, 0x57, 0x72, 0x06, 0x8f, 0x34, 0xaa, 0x6b, 0x9e, 0x61, 0x5a,
	0xb0, 0x31, 0xd2, 0x4d, 0x37, 0xa5, 0x7e, 0x73, 0x62, 0x6c, 0x14, 0x2f, 0x2e, 0xeb, 0xb9, 0x53,
	0xe7, 0x98, 0x8d, 0xb1, 0xce, 0x0e, 0x85, 0x36, 0xf4, 0xe9, 0xdc, 0xec, 0x17, 0xa1, 0x0d, 0x49,
	0xe0, 0x66, 0x99, 0x4a, 0x9e, 0xd3, 0x67, 0x4e, 0xdd, 0x6b, 0x56, 0xbf, 0x16, 0x06, 0x2f, 0x51,
	0xd5, 0x58, 0x98, 0x3a, 0x27, 0x3c, 0xaf, 0x6f, 0x56, 0x22, 0x2a, 0xfa, 0x7c, 0xee, 0xcd, 0x9e,
	0x20, 0x2a, 0x72, 0x0e, 0x1b, 0xaa, 0xfa, 0x13, 0xa6, 0x1a, 0x0b, 0x93, 0x1a, 0x41, 0xe9, 0xcc,
	0xf2, 0xe3, 0x29, 0x15, 0x63, 0x61, 0x12, 0x41, 0xbe, 0xc3, 0x46, 0x36, 0xe2, 0x56, 0xcd, 0x4b,
	0xc5, 0xec, 0x09, 0xa0, 0x2f, 0x66, 0x1f, 0xc6, 0x7a, 0x65, 0x7d, 0x9a, 0x52, 0x56, 0xb7, 0x3f,
	0x04, 0xd5, 0x9d, 0xfe, 0x72, 0x0e, 0xbd, 0xb2, 0x6e, 0xf5, 0x18, 0x3a, 0x43, 0x63, 0x64, 0x3a,
	0x46, 0x33, 0x14, 0x39, 0xed, 0xcd, 0x3c, 0x13, 0xb0, 0xcc, 0x37, 0xa7, 0x90, 0x53, 0x70, 0xab,
	0x54, 0x89, 0xd2, 0x20, 0xdd, 0x9e, 0xd9, 0x5c, 0xb3, 0x4a, 0x64, 0x11, 0xf2, 0x03, 0x7c, 0x47,
	0x6a, 0xc3, 0x4c, 0xa9, 0x53, 0x6b, 0xd1, 0x9d, 0x39, 0xc6, 0x60, 0xb1, 0xd8, 0x59, 0x07, 0x22,
	0xc7, 0xa0, 0x07, 0xfe, 0xc3, 0x74, 0xb2, 0x09, 0xed, 0x6b, 0x36, 0x2a, 0xd1, 0x5d, 0x35, 0x6b,
	0x51, 0xb5, 0x08, 0xfe, 0x78, 0xf0, 0xe4, 0x1f, 0x8f, 0x1c, 0xc1, 0x92, 0x99, 0x48, 0x74, 0x87,
	0x79, 0xbd, 0xff, 0x7e, 0x86, 0x2d, 0x85, 0xc9, 0x44, 0x62, 0xe4, 0x94, 0xfb, 0xc9, 0xe4, 0x26,
	0x79, 0x07, 0x96, 0x6c, 0x0d, 0x01, 0x58, 0x1e, 0x9c, 0x9e, 0xed, 0x1f, 0xc5, 0xfe, 0x02, 0xe9,
	0xc0, 0xca, 0x61, 0x34, 0xd8, 0x4f, 0x06, 0x91, 0xef, 0xd9, 0x07, 0x47, 0x83, 0x38, 0x1e, 0x44,
	0xfe, 0x62, 0x7f, 0x02, 0xed, 0xc4, 0x86, 0x11, 0x09, 0xab, 0x37, 0xb7, 0x30, 0x79, 0xd7, 0xbc,
	0xaf, 0x07, 0x37, 0xf6, 0xd6, 0x9b, 0xe6, 0x96, 0xe4, 0xee, 0xe6, 0x0f, 0x16, 0xde, 0x7a, 0x1f,
	0xdb, 0xe7, 0x2d, 0x26, 0xf9, 0xc5, 0xb2, 0x7b, 0x0b, 0xec, 0xfd, 0x0d, 0x00, 0x00, 0xff, 0xff,
	0x24, 0xcb, 0x41, 0x56, 0x89, 0x06, 0x00, 0x00,
}
