// Code generated by protoc-gen-go. DO NOT EDIT.
// source: task/query.proto

package task

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	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

// QueryType specifies the kind of query in a Query message.
type QueryType int32

const (
	QueryType_UNKNOWN_QUERY_TYPE QueryType = 0
	QueryType_FLOW_PARAM         QueryType = 1
	QueryType_FLOW_ID            QueryType = 2
	QueryType_COMMUNITY_ID       QueryType = 3
	QueryType_MOCK_QUERY         QueryType = 254
)

var QueryType_name = map[int32]string{
	0:   "UNKNOWN_QUERY_TYPE",
	1:   "FLOW_PARAM",
	2:   "FLOW_ID",
	3:   "COMMUNITY_ID",
	254: "MOCK_QUERY",
}

var QueryType_value = map[string]int32{
	"UNKNOWN_QUERY_TYPE": 0,
	"FLOW_PARAM":         1,
	"FLOW_ID":            2,
	"COMMUNITY_ID":       3,
	"MOCK_QUERY":         254,
}

func (x QueryType) String() string {
	return proto.EnumName(QueryType_name, int32(x))
}

func (QueryType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_7429cd82a974d6e8, []int{0}
}

// FlowParam contains parameters for flow queries.
type FlowParam struct {
	// Network contains a network protocol identifier and is expected to contain
	// the same values as are commonly used in go's net package. Currently only
	// "tcp" and "udp" are supported.
	Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"`
	// SrcHostPort contains a "host and port string" for the source endpoint.
	// Values are expected to adhere to the output of go's net.JoinHostPort
	// function, i.e., "host:port", or, "[host]:port".
	SrcHostPort string `protobuf:"bytes,2,opt,name=src_host_port,json=srcHostPort,proto3" json:"src_host_port,omitempty"`
	// DstHostPort contains a "host and port string" for the destination
	// endpoint. Values are expected to adhere to the output of go's
	// net.JoinHostPort function, i.e., "host:port", or, "[host]:port".
	DstHostPort          string   `protobuf:"bytes,3,opt,name=dst_host_port,json=dstHostPort,proto3" json:"dst_host_port,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_FlowParam proto.InternalMessageInfo

func (m *FlowParam) GetNetwork() string {
	if m != nil {
		return m.Network
	}
	return ""
}

func (m *FlowParam) GetSrcHostPort() string {
	if m != nil {
		return m.SrcHostPort
	}
	return ""
}

func (m *FlowParam) GetDstHostPort() string {
	if m != nil {
		return m.DstHostPort
	}
	return ""
}

// MockQuery is fore testing purposes only.
type MockQuery struct {
	Mock                 string   `protobuf:"bytes,1,opt,name=mock,proto3" json:"mock,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_MockQuery proto.InternalMessageInfo

func (m *MockQuery) GetMock() string {
	if m != nil {
		return m.Mock
	}
	return ""
}

// Query encapsulates various query types to be processed by stenosis. Query
// messages are expected to be forwarded as JSON-marshaled data via stenosis
// REST API endpoint (typically as ad-hoc queries) or as gRPC messages
// (typically by FEVER).
type Query struct {
	// Type specifies the query type.
	Type QueryType `protobuf:"varint,1,opt,name=type,proto3,enum=task.QueryType" json:"type,omitempty"`
	// BeforeTime is the point in time before which packets are queried for.
	BeforeTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=before_time,json=beforeTime,proto3" json:"before_time,omitempty"`
	// AfterTime is the point in time after which packets are queried for.
	AfterTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=after_time,json=afterTime,proto3" json:"after_time,omitempty"`
	// Content contains the Query type-specific parameters.
	//
	// Types that are valid to be assigned to Content:
	//	*Query_FlowParam
	//	*Query_MockQuery
	Content              isQuery_Content `protobuf_oneof:"content"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

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

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

var xxx_messageInfo_Query proto.InternalMessageInfo

func (m *Query) GetType() QueryType {
	if m != nil {
		return m.Type
	}
	return QueryType_UNKNOWN_QUERY_TYPE
}

func (m *Query) GetBeforeTime() *timestamp.Timestamp {
	if m != nil {
		return m.BeforeTime
	}
	return nil
}

func (m *Query) GetAfterTime() *timestamp.Timestamp {
	if m != nil {
		return m.AfterTime
	}
	return nil
}

type isQuery_Content interface {
	isQuery_Content()
}

type Query_FlowParam struct {
	FlowParam *FlowParam `protobuf:"bytes,4,opt,name=flow_param,json=flowParam,proto3,oneof"`
}

type Query_MockQuery struct {
	MockQuery *MockQuery `protobuf:"bytes,14,opt,name=mock_query,json=mockQuery,proto3,oneof"`
}

func (*Query_FlowParam) isQuery_Content() {}

func (*Query_MockQuery) isQuery_Content() {}

func (m *Query) GetContent() isQuery_Content {
	if m != nil {
		return m.Content
	}
	return nil
}

func (m *Query) GetFlowParam() *FlowParam {
	if x, ok := m.GetContent().(*Query_FlowParam); ok {
		return x.FlowParam
	}
	return nil
}

func (m *Query) GetMockQuery() *MockQuery {
	if x, ok := m.GetContent().(*Query_MockQuery); ok {
		return x.MockQuery
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Query) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Query_FlowParam)(nil),
		(*Query_MockQuery)(nil),
	}
}

func init() {
	proto.RegisterEnum("task.QueryType", QueryType_name, QueryType_value)
	proto.RegisterType((*FlowParam)(nil), "task.FlowParam")
	proto.RegisterType((*MockQuery)(nil), "task.MockQuery")
	proto.RegisterType((*Query)(nil), "task.Query")
}

func init() { proto.RegisterFile("task/query.proto", fileDescriptor_7429cd82a974d6e8) }

var fileDescriptor_7429cd82a974d6e8 = []byte{
	// 413 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x51, 0xcb, 0x6e, 0xd3, 0x40,
	0x14, 0x6d, 0x1e, 0x10, 0xf9, 0x06, 0x52, 0x6b, 0x16, 0xc8, 0xea, 0xa6, 0x28, 0x15, 0x12, 0x62,
	0x61, 0x57, 0x65, 0x85, 0x58, 0xb5, 0x69, 0xab, 0x56, 0xc5, 0x8f, 0x1a, 0x47, 0x55, 0xd8, 0x8c,
	0x6c, 0x77, 0x9c, 0x46, 0x89, 0x7d, 0xcd, 0xcc, 0x0d, 0x51, 0xbe, 0x83, 0xff, 0x45, 0x68, 0xc6,
	0xd8, 0xca, 0x8e, 0x9d, 0xef, 0x79, 0xd8, 0xe7, 0x1c, 0x83, 0x4d, 0xa9, 0x5a, 0x7b, 0x3f, 0xb7,
	0x42, 0xee, 0xdd, 0x5a, 0x22, 0x21, 0x1b, 0x6a, 0xe4, 0xe4, 0x74, 0x89, 0xb8, 0xdc, 0x08, 0xcf,
	0x60, 0xd9, 0xb6, 0xf0, 0x68, 0x55, 0x0a, 0x45, 0x69, 0x59, 0x37, 0xb2, 0x69, 0x09, 0xd6, 0xed,
	0x06, 0x77, 0x51, 0x2a, 0xd3, 0x92, 0x39, 0x30, 0xaa, 0x04, 0xed, 0x50, 0xae, 0x9d, 0xde, 0xfb,
	0xde, 0x47, 0x2b, 0x6e, 0x4f, 0x36, 0x85, 0xb7, 0x4a, 0xe6, 0xfc, 0x05, 0x15, 0xf1, 0x1a, 0x25,
	0x39, 0x7d, 0xc3, 0x8f, 0x95, 0xcc, 0xef, 0x50, 0x51, 0x84, 0x92, 0xb4, 0xe6, 0x59, 0xd1, 0x81,
	0x66, 0xd0, 0x68, 0x9e, 0x15, 0xb5, 0x9a, 0xe9, 0x29, 0x58, 0x3e, 0xe6, 0xeb, 0x47, 0x1d, 0x94,
	0x31, 0x18, 0x96, 0x98, 0xb7, 0xdf, 0x32, 0xcf, 0xd3, 0xdf, 0x7d, 0x78, 0xd5, 0xb0, 0x67, 0x30,
	0xa4, 0x7d, 0x2d, 0x0c, 0x3b, 0xb9, 0x38, 0x76, 0x75, 0x1f, 0xd7, 0x50, 0xc9, 0xbe, 0x16, 0xb1,
	0x21, 0xd9, 0x57, 0x18, 0x67, 0xa2, 0x40, 0x29, 0xb8, 0x2e, 0x66, 0x52, 0x8d, 0x2f, 0x4e, 0xdc,
	0xa6, 0xb5, 0xdb, 0xb6, 0x76, 0x93, 0xb6, 0x75, 0x0c, 0x8d, 0x5c, 0x03, 0xec, 0x0b, 0x40, 0x5a,
	0x90, 0x90, 0x8d, 0x77, 0xf0, 0x5f, 0xaf, 0x65, 0xd4, 0xc6, 0x7a, 0x0e, 0x50, 0x6c, 0x70, 0xc7,
	0x6b, 0xbd, 0x9b, 0x33, 0x34, 0xd6, 0x7f, 0x11, 0xbb, 0x39, 0xef, 0x8e, 0x62, 0xab, 0xe8, 0xb6,
	0x3d, 0x07, 0xd0, 0x05, 0xb9, 0xf9, 0x47, 0xce, 0xe4, 0xd0, 0xd1, 0x2d, 0xa2, 0x1d, 0x65, 0x7b,
	0x5c, 0x59, 0x30, 0xca, 0xb1, 0x22, 0x51, 0xd1, 0xa7, 0x1c, 0xac, 0xae, 0x39, 0x7b, 0x07, 0x6c,
	0x1e, 0x3c, 0x04, 0xe1, 0x53, 0xc0, 0x1f, 0xe7, 0x37, 0xf1, 0x82, 0x27, 0x8b, 0xe8, 0xc6, 0x3e,
	0x62, 0x13, 0x80, 0xdb, 0x6f, 0xe1, 0x13, 0x8f, 0x2e, 0xe3, 0x4b, 0xdf, 0xee, 0xb1, 0x31, 0x8c,
	0xcc, 0x7d, 0x7f, 0x6d, 0xf7, 0x99, 0x0d, 0x6f, 0x66, 0xa1, 0xef, 0xcf, 0x83, 0xfb, 0x64, 0xa1,
	0x91, 0x01, 0x3b, 0x06, 0xf0, 0xc3, 0xd9, 0x43, 0xf3, 0x0e, 0xfb, 0x4f, 0xef, 0xea, 0xc3, 0x8f,
	0xb3, 0xe5, 0x8a, 0x5e, 0xb6, 0x99, 0x9b, 0x63, 0xe9, 0x5d, 0xcf, 0xbe, 0x87, 0x5e, 0x21, 0x7e,
	0x09, 0xe9, 0x29, 0x12, 0x15, 0xaa, 0x95, 0xf2, 0x74, 0xda, 0xec, 0xb5, 0x59, 0xe6, 0xf3, 0xdf,
	0x00, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x79, 0xee, 0x00, 0x73, 0x02, 0x00, 0x00,
}
