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

package runner

import (
	context "context"
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	empty "github.com/golang/protobuf/ptypes/empty"
	grpc "google.golang.org/grpc"
	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.ProtoPackageIsVersion2 // please upgrade the proto package

// Request to allocate a slot for a call
type TryCall struct {
	ModelsCallJson       string            `protobuf:"bytes,1,opt,name=models_call_json,json=modelsCallJson,proto3" json:"models_call_json,omitempty"`
	SlotHashId           string            `protobuf:"bytes,2,opt,name=slot_hash_id,json=slotHashId,proto3" json:"slot_hash_id,omitempty"`
	Extensions           map[string]string `protobuf:"bytes,3,rep,name=extensions,proto3" json:"extensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_TryCall proto.InternalMessageInfo

func (m *TryCall) GetModelsCallJson() string {
	if m != nil {
		return m.ModelsCallJson
	}
	return ""
}

func (m *TryCall) GetSlotHashId() string {
	if m != nil {
		return m.SlotHashId
	}
	return ""
}

func (m *TryCall) GetExtensions() map[string]string {
	if m != nil {
		return m.Extensions
	}
	return nil
}

// Data sent C2S and S2C - as soon as the runner sees the first of these it
// will start running. If empty content, there must be one of these with eof.
// The runner will send these for the body of the response, AFTER it has sent
// a CallEnding message.
type DataFrame struct {
	Data                 []byte   `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Eof                  bool     `protobuf:"varint,2,opt,name=eof,proto3" json:"eof,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_DataFrame proto.InternalMessageInfo

func (m *DataFrame) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

func (m *DataFrame) GetEof() bool {
	if m != nil {
		return m.Eof
	}
	return false
}

type HttpHeader struct {
	Key                  string   `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value                string   `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_HttpHeader proto.InternalMessageInfo

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

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

type HttpRespMeta struct {
	StatusCode           int32         `protobuf:"varint,1,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"`
	Headers              []*HttpHeader `protobuf:"bytes,2,rep,name=headers,proto3" json:"headers,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

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

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

var xxx_messageInfo_HttpRespMeta proto.InternalMessageInfo

func (m *HttpRespMeta) GetStatusCode() int32 {
	if m != nil {
		return m.StatusCode
	}
	return 0
}

func (m *HttpRespMeta) GetHeaders() []*HttpHeader {
	if m != nil {
		return m.Headers
	}
	return nil
}

// Call has started to finish - data might not be here yet and it will be sent
// as DataFrames.
type CallResultStart struct {
	// Types that are valid to be assigned to Meta:
	//	*CallResultStart_Http
	Meta                 isCallResultStart_Meta `protobuf_oneof:"meta"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

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

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

var xxx_messageInfo_CallResultStart proto.InternalMessageInfo

type isCallResultStart_Meta interface {
	isCallResultStart_Meta()
}

type CallResultStart_Http struct {
	Http *HttpRespMeta `protobuf:"bytes,100,opt,name=http,proto3,oneof"`
}

func (*CallResultStart_Http) isCallResultStart_Meta() {}

func (m *CallResultStart) GetMeta() isCallResultStart_Meta {
	if m != nil {
		return m.Meta
	}
	return nil
}

func (m *CallResultStart) GetHttp() *HttpRespMeta {
	if x, ok := m.GetMeta().(*CallResultStart_Http); ok {
		return x.Http
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*CallResultStart) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _CallResultStart_OneofMarshaler, _CallResultStart_OneofUnmarshaler, _CallResultStart_OneofSizer, []interface{}{
		(*CallResultStart_Http)(nil),
	}
}

func _CallResultStart_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*CallResultStart)
	// meta
	switch x := m.Meta.(type) {
	case *CallResultStart_Http:
		b.EncodeVarint(100<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Http); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("CallResultStart.Meta has unexpected type %T", x)
	}
	return nil
}

func _CallResultStart_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*CallResultStart)
	switch tag {
	case 100: // meta.http
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(HttpRespMeta)
		err := b.DecodeMessage(msg)
		m.Meta = &CallResultStart_Http{msg}
		return true, err
	default:
		return false, nil
	}
}

func _CallResultStart_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*CallResultStart)
	// meta
	switch x := m.Meta.(type) {
	case *CallResultStart_Http:
		s := proto.Size(x.Http)
		n += 2 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

// Call has really finished, it might have completed or crashed
type CallFinished struct {
	Success              bool     `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
	Details              string   `protobuf:"bytes,2,opt,name=details,proto3" json:"details,omitempty"`
	ErrorCode            int32    `protobuf:"varint,3,opt,name=errorCode,proto3" json:"errorCode,omitempty"`
	ErrorStr             string   `protobuf:"bytes,4,opt,name=errorStr,proto3" json:"errorStr,omitempty"`
	CreatedAt            string   `protobuf:"bytes,5,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
	StartedAt            string   `protobuf:"bytes,6,opt,name=startedAt,proto3" json:"startedAt,omitempty"`
	CompletedAt          string   `protobuf:"bytes,7,opt,name=completedAt,proto3" json:"completedAt,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CallFinished) Reset()         { *m = CallFinished{} }
func (m *CallFinished) String() string { return proto.CompactTextString(m) }
func (*CallFinished) ProtoMessage()    {}
func (*CallFinished) Descriptor() ([]byte, []int) {
	return fileDescriptor_48eceea7e2abc593, []int{5}
}

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

var xxx_messageInfo_CallFinished proto.InternalMessageInfo

func (m *CallFinished) GetSuccess() bool {
	if m != nil {
		return m.Success
	}
	return false
}

func (m *CallFinished) GetDetails() string {
	if m != nil {
		return m.Details
	}
	return ""
}

func (m *CallFinished) GetErrorCode() int32 {
	if m != nil {
		return m.ErrorCode
	}
	return 0
}

func (m *CallFinished) GetErrorStr() string {
	if m != nil {
		return m.ErrorStr
	}
	return ""
}

func (m *CallFinished) GetCreatedAt() string {
	if m != nil {
		return m.CreatedAt
	}
	return ""
}

func (m *CallFinished) GetStartedAt() string {
	if m != nil {
		return m.StartedAt
	}
	return ""
}

func (m *CallFinished) GetCompletedAt() string {
	if m != nil {
		return m.CompletedAt
	}
	return ""
}

type ClientMsg struct {
	// Types that are valid to be assigned to Body:
	//	*ClientMsg_Try
	//	*ClientMsg_Data
	Body                 isClientMsg_Body `protobuf_oneof:"body"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *ClientMsg) Reset()         { *m = ClientMsg{} }
func (m *ClientMsg) String() string { return proto.CompactTextString(m) }
func (*ClientMsg) ProtoMessage()    {}
func (*ClientMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_48eceea7e2abc593, []int{6}
}

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

var xxx_messageInfo_ClientMsg proto.InternalMessageInfo

type isClientMsg_Body interface {
	isClientMsg_Body()
}

type ClientMsg_Try struct {
	Try *TryCall `protobuf:"bytes,1,opt,name=try,proto3,oneof"`
}

type ClientMsg_Data struct {
	Data *DataFrame `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

func (*ClientMsg_Try) isClientMsg_Body() {}

func (*ClientMsg_Data) isClientMsg_Body() {}

func (m *ClientMsg) GetBody() isClientMsg_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (m *ClientMsg) GetTry() *TryCall {
	if x, ok := m.GetBody().(*ClientMsg_Try); ok {
		return x.Try
	}
	return nil
}

func (m *ClientMsg) GetData() *DataFrame {
	if x, ok := m.GetBody().(*ClientMsg_Data); ok {
		return x.Data
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*ClientMsg) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _ClientMsg_OneofMarshaler, _ClientMsg_OneofUnmarshaler, _ClientMsg_OneofSizer, []interface{}{
		(*ClientMsg_Try)(nil),
		(*ClientMsg_Data)(nil),
	}
}

func _ClientMsg_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*ClientMsg)
	// body
	switch x := m.Body.(type) {
	case *ClientMsg_Try:
		b.EncodeVarint(1<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Try); err != nil {
			return err
		}
	case *ClientMsg_Data:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Data); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("ClientMsg.Body has unexpected type %T", x)
	}
	return nil
}

func _ClientMsg_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*ClientMsg)
	switch tag {
	case 1: // body.try
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(TryCall)
		err := b.DecodeMessage(msg)
		m.Body = &ClientMsg_Try{msg}
		return true, err
	case 2: // body.data
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(DataFrame)
		err := b.DecodeMessage(msg)
		m.Body = &ClientMsg_Data{msg}
		return true, err
	default:
		return false, nil
	}
}

func _ClientMsg_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*ClientMsg)
	// body
	switch x := m.Body.(type) {
	case *ClientMsg_Try:
		s := proto.Size(x.Try)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *ClientMsg_Data:
		s := proto.Size(x.Data)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type RunnerMsg struct {
	// Types that are valid to be assigned to Body:
	//	*RunnerMsg_ResultStart
	//	*RunnerMsg_Data
	//	*RunnerMsg_Finished
	Body                 isRunnerMsg_Body `protobuf_oneof:"body"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *RunnerMsg) Reset()         { *m = RunnerMsg{} }
func (m *RunnerMsg) String() string { return proto.CompactTextString(m) }
func (*RunnerMsg) ProtoMessage()    {}
func (*RunnerMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_48eceea7e2abc593, []int{7}
}

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

var xxx_messageInfo_RunnerMsg proto.InternalMessageInfo

type isRunnerMsg_Body interface {
	isRunnerMsg_Body()
}

type RunnerMsg_ResultStart struct {
	ResultStart *CallResultStart `protobuf:"bytes,1,opt,name=result_start,json=resultStart,proto3,oneof"`
}

type RunnerMsg_Data struct {
	Data *DataFrame `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

type RunnerMsg_Finished struct {
	Finished *CallFinished `protobuf:"bytes,3,opt,name=finished,proto3,oneof"`
}

func (*RunnerMsg_ResultStart) isRunnerMsg_Body() {}

func (*RunnerMsg_Data) isRunnerMsg_Body() {}

func (*RunnerMsg_Finished) isRunnerMsg_Body() {}

func (m *RunnerMsg) GetBody() isRunnerMsg_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (m *RunnerMsg) GetResultStart() *CallResultStart {
	if x, ok := m.GetBody().(*RunnerMsg_ResultStart); ok {
		return x.ResultStart
	}
	return nil
}

func (m *RunnerMsg) GetData() *DataFrame {
	if x, ok := m.GetBody().(*RunnerMsg_Data); ok {
		return x.Data
	}
	return nil
}

func (m *RunnerMsg) GetFinished() *CallFinished {
	if x, ok := m.GetBody().(*RunnerMsg_Finished); ok {
		return x.Finished
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*RunnerMsg) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _RunnerMsg_OneofMarshaler, _RunnerMsg_OneofUnmarshaler, _RunnerMsg_OneofSizer, []interface{}{
		(*RunnerMsg_ResultStart)(nil),
		(*RunnerMsg_Data)(nil),
		(*RunnerMsg_Finished)(nil),
	}
}

func _RunnerMsg_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*RunnerMsg)
	// body
	switch x := m.Body.(type) {
	case *RunnerMsg_ResultStart:
		b.EncodeVarint(1<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.ResultStart); err != nil {
			return err
		}
	case *RunnerMsg_Data:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Data); err != nil {
			return err
		}
	case *RunnerMsg_Finished:
		b.EncodeVarint(3<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Finished); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("RunnerMsg.Body has unexpected type %T", x)
	}
	return nil
}

func _RunnerMsg_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*RunnerMsg)
	switch tag {
	case 1: // body.result_start
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(CallResultStart)
		err := b.DecodeMessage(msg)
		m.Body = &RunnerMsg_ResultStart{msg}
		return true, err
	case 2: // body.data
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(DataFrame)
		err := b.DecodeMessage(msg)
		m.Body = &RunnerMsg_Data{msg}
		return true, err
	case 3: // body.finished
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(CallFinished)
		err := b.DecodeMessage(msg)
		m.Body = &RunnerMsg_Finished{msg}
		return true, err
	default:
		return false, nil
	}
}

func _RunnerMsg_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*RunnerMsg)
	// body
	switch x := m.Body.(type) {
	case *RunnerMsg_ResultStart:
		s := proto.Size(x.ResultStart)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *RunnerMsg_Data:
		s := proto.Size(x.Data)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *RunnerMsg_Finished:
		s := proto.Size(x.Finished)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type RunnerStatus struct {
	Active               int32    `protobuf:"varint,2,opt,name=active,proto3" json:"active,omitempty"`
	Failed               bool     `protobuf:"varint,3,opt,name=failed,proto3" json:"failed,omitempty"`
	Id                   string   `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"`
	Details              string   `protobuf:"bytes,5,opt,name=details,proto3" json:"details,omitempty"`
	ErrorCode            int32    `protobuf:"varint,6,opt,name=errorCode,proto3" json:"errorCode,omitempty"`
	ErrorStr             string   `protobuf:"bytes,7,opt,name=errorStr,proto3" json:"errorStr,omitempty"`
	CreatedAt            string   `protobuf:"bytes,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
	StartedAt            string   `protobuf:"bytes,9,opt,name=startedAt,proto3" json:"startedAt,omitempty"`
	CompletedAt          string   `protobuf:"bytes,10,opt,name=completedAt,proto3" json:"completedAt,omitempty"`
	Cached               bool     `protobuf:"varint,11,opt,name=cached,proto3" json:"cached,omitempty"`
	RequestsReceived     uint64   `protobuf:"varint,12,opt,name=requestsReceived,proto3" json:"requestsReceived,omitempty"`
	RequestsHandled      uint64   `protobuf:"varint,13,opt,name=requestsHandled,proto3" json:"requestsHandled,omitempty"`
	KdumpsOnDisk         uint64   `protobuf:"varint,14,opt,name=kdumpsOnDisk,proto3" json:"kdumpsOnDisk,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RunnerStatus) Reset()         { *m = RunnerStatus{} }
func (m *RunnerStatus) String() string { return proto.CompactTextString(m) }
func (*RunnerStatus) ProtoMessage()    {}
func (*RunnerStatus) Descriptor() ([]byte, []int) {
	return fileDescriptor_48eceea7e2abc593, []int{8}
}

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

var xxx_messageInfo_RunnerStatus proto.InternalMessageInfo

func (m *RunnerStatus) GetActive() int32 {
	if m != nil {
		return m.Active
	}
	return 0
}

func (m *RunnerStatus) GetFailed() bool {
	if m != nil {
		return m.Failed
	}
	return false
}

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

func (m *RunnerStatus) GetDetails() string {
	if m != nil {
		return m.Details
	}
	return ""
}

func (m *RunnerStatus) GetErrorCode() int32 {
	if m != nil {
		return m.ErrorCode
	}
	return 0
}

func (m *RunnerStatus) GetErrorStr() string {
	if m != nil {
		return m.ErrorStr
	}
	return ""
}

func (m *RunnerStatus) GetCreatedAt() string {
	if m != nil {
		return m.CreatedAt
	}
	return ""
}

func (m *RunnerStatus) GetStartedAt() string {
	if m != nil {
		return m.StartedAt
	}
	return ""
}

func (m *RunnerStatus) GetCompletedAt() string {
	if m != nil {
		return m.CompletedAt
	}
	return ""
}

func (m *RunnerStatus) GetCached() bool {
	if m != nil {
		return m.Cached
	}
	return false
}

func (m *RunnerStatus) GetRequestsReceived() uint64 {
	if m != nil {
		return m.RequestsReceived
	}
	return 0
}

func (m *RunnerStatus) GetRequestsHandled() uint64 {
	if m != nil {
		return m.RequestsHandled
	}
	return 0
}

func (m *RunnerStatus) GetKdumpsOnDisk() uint64 {
	if m != nil {
		return m.KdumpsOnDisk
	}
	return 0
}

func init() {
	proto.RegisterType((*TryCall)(nil), "TryCall")
	proto.RegisterMapType((map[string]string)(nil), "TryCall.ExtensionsEntry")
	proto.RegisterType((*DataFrame)(nil), "DataFrame")
	proto.RegisterType((*HttpHeader)(nil), "HttpHeader")
	proto.RegisterType((*HttpRespMeta)(nil), "HttpRespMeta")
	proto.RegisterType((*CallResultStart)(nil), "CallResultStart")
	proto.RegisterType((*CallFinished)(nil), "CallFinished")
	proto.RegisterType((*ClientMsg)(nil), "ClientMsg")
	proto.RegisterType((*RunnerMsg)(nil), "RunnerMsg")
	proto.RegisterType((*RunnerStatus)(nil), "RunnerStatus")
}

func init() { proto.RegisterFile("runner.proto", fileDescriptor_48eceea7e2abc593) }

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

// RunnerProtocolClient is the client API for RunnerProtocol service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type RunnerProtocolClient interface {
	Engage(ctx context.Context, opts ...grpc.CallOption) (RunnerProtocol_EngageClient, error)
	// Rather than rely on Prometheus for this, expose status that's specific to the runner lifecycle through this.
	Status(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*RunnerStatus, error)
}

type runnerProtocolClient struct {
	cc *grpc.ClientConn
}

func NewRunnerProtocolClient(cc *grpc.ClientConn) RunnerProtocolClient {
	return &runnerProtocolClient{cc}
}

func (c *runnerProtocolClient) Engage(ctx context.Context, opts ...grpc.CallOption) (RunnerProtocol_EngageClient, error) {
	stream, err := c.cc.NewStream(ctx, &_RunnerProtocol_serviceDesc.Streams[0], "/RunnerProtocol/Engage", opts...)
	if err != nil {
		return nil, err
	}
	x := &runnerProtocolEngageClient{stream}
	return x, nil
}

type RunnerProtocol_EngageClient interface {
	Send(*ClientMsg) error
	Recv() (*RunnerMsg, error)
	grpc.ClientStream
}

type runnerProtocolEngageClient struct {
	grpc.ClientStream
}

func (x *runnerProtocolEngageClient) Send(m *ClientMsg) error {
	return x.ClientStream.SendMsg(m)
}

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

func (c *runnerProtocolClient) Status(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*RunnerStatus, error) {
	out := new(RunnerStatus)
	err := c.cc.Invoke(ctx, "/RunnerProtocol/Status", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// RunnerProtocolServer is the server API for RunnerProtocol service.
type RunnerProtocolServer interface {
	Engage(RunnerProtocol_EngageServer) error
	// Rather than rely on Prometheus for this, expose status that's specific to the runner lifecycle through this.
	Status(context.Context, *empty.Empty) (*RunnerStatus, error)
}

func RegisterRunnerProtocolServer(s *grpc.Server, srv RunnerProtocolServer) {
	s.RegisterService(&_RunnerProtocol_serviceDesc, srv)
}

func _RunnerProtocol_Engage_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(RunnerProtocolServer).Engage(&runnerProtocolEngageServer{stream})
}

type RunnerProtocol_EngageServer interface {
	Send(*RunnerMsg) error
	Recv() (*ClientMsg, error)
	grpc.ServerStream
}

type runnerProtocolEngageServer struct {
	grpc.ServerStream
}

func (x *runnerProtocolEngageServer) Send(m *RunnerMsg) error {
	return x.ServerStream.SendMsg(m)
}

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

func _RunnerProtocol_Status_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(empty.Empty)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RunnerProtocolServer).Status(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/RunnerProtocol/Status",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RunnerProtocolServer).Status(ctx, req.(*empty.Empty))
	}
	return interceptor(ctx, in, info, handler)
}

var _RunnerProtocol_serviceDesc = grpc.ServiceDesc{
	ServiceName: "RunnerProtocol",
	HandlerType: (*RunnerProtocolServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Status",
			Handler:    _RunnerProtocol_Status_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Engage",
			Handler:       _RunnerProtocol_Engage_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "runner.proto",
}
