// 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"
	_struct "github.com/golang/protobuf/ptypes/struct"
	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 LogResponseMsg_Container_Request_Line_Source int32

const (
	LogResponseMsg_Container_Request_Line_STDOUT LogResponseMsg_Container_Request_Line_Source = 0
	LogResponseMsg_Container_Request_Line_STDERR LogResponseMsg_Container_Request_Line_Source = 1
)

var LogResponseMsg_Container_Request_Line_Source_name = map[int32]string{
	0: "STDOUT",
	1: "STDERR",
}

var LogResponseMsg_Container_Request_Line_Source_value = map[string]int32{
	"STDOUT": 0,
	"STDERR": 1,
}

func (x LogResponseMsg_Container_Request_Line_Source) String() string {
	return proto.EnumName(LogResponseMsg_Container_Request_Line_Source_name, int32(x))
}

func (LogResponseMsg_Container_Request_Line_Source) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_48eceea7e2abc593, []int{12, 0, 0, 0, 0}
}

// 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_OneofWrappers is for the internal use of the proto package.
func (*CallResultStart) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*CallResultStart_Http)(nil),
	}
}

// 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"`
	SchedulerDuration     int64    `protobuf:"varint,8,opt,name=schedulerDuration,proto3" json:"schedulerDuration,omitempty"`
	ExecutionDuration     int64    `protobuf:"varint,9,opt,name=executionDuration,proto3" json:"executionDuration,omitempty"`
	ErrorUser             bool     `protobuf:"varint,10,opt,name=errorUser,proto3" json:"errorUser,omitempty"`
	Image                 string   `protobuf:"bytes,11,opt,name=image,proto3" json:"image,omitempty"`
	ImagePullWaitDuration int64    `protobuf:"varint,12,opt,name=imagePullWaitDuration,proto3" json:"imagePullWaitDuration,omitempty"`
	CtrPrepDuration       int64    `protobuf:"varint,13,opt,name=ctrPrepDuration,proto3" json:"ctrPrepDuration,omitempty"`
	CtrCreateDuration     int64    `protobuf:"varint,14,opt,name=ctrCreateDuration,proto3" json:"ctrCreateDuration,omitempty"`
	InitStartTime         int64    `protobuf:"varint,15,opt,name=initStartTime,proto3" json:"initStartTime,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 ""
}

func (m *CallFinished) GetSchedulerDuration() int64 {
	if m != nil {
		return m.SchedulerDuration
	}
	return 0
}

func (m *CallFinished) GetExecutionDuration() int64 {
	if m != nil {
		return m.ExecutionDuration
	}
	return 0
}

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

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

func (m *CallFinished) GetImagePullWaitDuration() int64 {
	if m != nil {
		return m.ImagePullWaitDuration
	}
	return 0
}

func (m *CallFinished) GetCtrPrepDuration() int64 {
	if m != nil {
		return m.CtrPrepDuration
	}
	return 0
}

func (m *CallFinished) GetCtrCreateDuration() int64 {
	if m != nil {
		return m.CtrCreateDuration
	}
	return 0
}

func (m *CallFinished) GetInitStartTime() int64 {
	if m != nil {
		return m.InitStartTime
	}
	return 0
}

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_OneofWrappers is for the internal use of the proto package.
func (*ClientMsg) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ClientMsg_Try)(nil),
		(*ClientMsg_Data)(nil),
	}
}

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_OneofWrappers is for the internal use of the proto package.
func (*RunnerMsg) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*RunnerMsg_ResultStart)(nil),
		(*RunnerMsg_Data)(nil),
		(*RunnerMsg_Finished)(nil),
	}
}

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"`
	SchedulerDuration     int64             `protobuf:"varint,15,opt,name=schedulerDuration,proto3" json:"schedulerDuration,omitempty"`
	ExecutionDuration     int64             `protobuf:"varint,16,opt,name=executionDuration,proto3" json:"executionDuration,omitempty"`
	IsNetworkDisabled     bool              `protobuf:"varint,17,opt,name=isNetworkDisabled,proto3" json:"isNetworkDisabled,omitempty"`
	CustomStatus          map[string]string `protobuf:"bytes,18,rep,name=customStatus,proto3" json:"customStatus,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	ImagePullWaitDuration int64             `protobuf:"varint,19,opt,name=imagePullWaitDuration,proto3" json:"imagePullWaitDuration,omitempty"`
	CtrPrepDuration       int64             `protobuf:"varint,20,opt,name=ctrPrepDuration,proto3" json:"ctrPrepDuration,omitempty"`
	CtrCreateDuration     int64             `protobuf:"varint,21,opt,name=ctrCreateDuration,proto3" json:"ctrCreateDuration,omitempty"`
	InitStartTime         int64             `protobuf:"varint,22,opt,name=initStartTime,proto3" json:"initStartTime,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 (m *RunnerStatus) GetSchedulerDuration() int64 {
	if m != nil {
		return m.SchedulerDuration
	}
	return 0
}

func (m *RunnerStatus) GetExecutionDuration() int64 {
	if m != nil {
		return m.ExecutionDuration
	}
	return 0
}

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

func (m *RunnerStatus) GetCustomStatus() map[string]string {
	if m != nil {
		return m.CustomStatus
	}
	return nil
}

func (m *RunnerStatus) GetImagePullWaitDuration() int64 {
	if m != nil {
		return m.ImagePullWaitDuration
	}
	return 0
}

func (m *RunnerStatus) GetCtrPrepDuration() int64 {
	if m != nil {
		return m.CtrPrepDuration
	}
	return 0
}

func (m *RunnerStatus) GetCtrCreateDuration() int64 {
	if m != nil {
		return m.CtrCreateDuration
	}
	return 0
}

func (m *RunnerStatus) GetInitStartTime() int64 {
	if m != nil {
		return m.InitStartTime
	}
	return 0
}

type ConfigMsg struct {
	Config               map[string]string `protobuf:"bytes,1,rep,name=config,proto3" json:"config,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 *ConfigMsg) Reset()         { *m = ConfigMsg{} }
func (m *ConfigMsg) String() string { return proto.CompactTextString(m) }
func (*ConfigMsg) ProtoMessage()    {}
func (*ConfigMsg) Descriptor() ([]byte, []int) {
	return fileDescriptor_48eceea7e2abc593, []int{9}
}

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

var xxx_messageInfo_ConfigMsg proto.InternalMessageInfo

func (m *ConfigMsg) GetConfig() map[string]string {
	if m != nil {
		return m.Config
	}
	return nil
}

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

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

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

var xxx_messageInfo_ConfigStatus proto.InternalMessageInfo

// Collector to Runner messages
type LogRequestMsg struct {
	// Types that are valid to be assigned to Body:
	//	*LogRequestMsg_Start_
	//	*LogRequestMsg_Ack_
	//	*LogRequestMsg_Ready_
	Body                 isLogRequestMsg_Body `protobuf_oneof:"body"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_LogRequestMsg proto.InternalMessageInfo

type isLogRequestMsg_Body interface {
	isLogRequestMsg_Body()
}

type LogRequestMsg_Start_ struct {
	Start *LogRequestMsg_Start `protobuf:"bytes,1,opt,name=start,proto3,oneof"`
}

type LogRequestMsg_Ack_ struct {
	Ack *LogRequestMsg_Ack `protobuf:"bytes,2,opt,name=ack,proto3,oneof"`
}

type LogRequestMsg_Ready_ struct {
	Ready *LogRequestMsg_Ready `protobuf:"bytes,3,opt,name=ready,proto3,oneof"`
}

func (*LogRequestMsg_Start_) isLogRequestMsg_Body() {}

func (*LogRequestMsg_Ack_) isLogRequestMsg_Body() {}

func (*LogRequestMsg_Ready_) isLogRequestMsg_Body() {}

func (m *LogRequestMsg) GetBody() isLogRequestMsg_Body {
	if m != nil {
		return m.Body
	}
	return nil
}

func (m *LogRequestMsg) GetStart() *LogRequestMsg_Start {
	if x, ok := m.GetBody().(*LogRequestMsg_Start_); ok {
		return x.Start
	}
	return nil
}

func (m *LogRequestMsg) GetAck() *LogRequestMsg_Ack {
	if x, ok := m.GetBody().(*LogRequestMsg_Ack_); ok {
		return x.Ack
	}
	return nil
}

func (m *LogRequestMsg) GetReady() *LogRequestMsg_Ready {
	if x, ok := m.GetBody().(*LogRequestMsg_Ready_); ok {
		return x.Ready
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*LogRequestMsg) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*LogRequestMsg_Start_)(nil),
		(*LogRequestMsg_Ack_)(nil),
		(*LogRequestMsg_Ready_)(nil),
	}
}

// Initial Logging session message sent by Collectors to Runners
type LogRequestMsg_Start struct {
	Config               map[string]string `protobuf:"bytes,1,rep,name=config,proto3" json:"config,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 *LogRequestMsg_Start) Reset()         { *m = LogRequestMsg_Start{} }
func (m *LogRequestMsg_Start) String() string { return proto.CompactTextString(m) }
func (*LogRequestMsg_Start) ProtoMessage()    {}
func (*LogRequestMsg_Start) Descriptor() ([]byte, []int) {
	return fileDescriptor_48eceea7e2abc593, []int{11, 0}
}

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

var xxx_messageInfo_LogRequestMsg_Start proto.InternalMessageInfo

func (m *LogRequestMsg_Start) GetConfig() map[string]string {
	if m != nil {
		return m.Config
	}
	return nil
}

// Acknowledgement of last data in stream: a message sent by Collectors to Runners
type LogRequestMsg_Ack struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_LogRequestMsg_Ack proto.InternalMessageInfo

// Enable stream readiness for push: a message sent by Collectors to Runners
type LogRequestMsg_Ready struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_LogRequestMsg_Ready proto.InternalMessageInfo

// Runners to Collectors
type LogResponseMsg struct {
	Data                 []*LogResponseMsg_Container `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
	XXX_unrecognized     []byte                      `json:"-"`
	XXX_sizecache        int32                       `json:"-"`
}

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

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

var xxx_messageInfo_LogResponseMsg proto.InternalMessageInfo

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

// Per container log data
type LogResponseMsg_Container struct {
	ApplicationId        string                              `protobuf:"bytes,1,opt,name=applicationId,proto3" json:"applicationId,omitempty"`
	FunctionId           string                              `protobuf:"bytes,2,opt,name=functionId,proto3" json:"functionId,omitempty"`
	ContainerId          string                              `protobuf:"bytes,3,opt,name=containerId,proto3" json:"containerId,omitempty"`
	Data                 []*LogResponseMsg_Container_Request `protobuf:"bytes,4,rep,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                            `json:"-"`
	XXX_unrecognized     []byte                              `json:"-"`
	XXX_sizecache        int32                               `json:"-"`
}

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

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

var xxx_messageInfo_LogResponseMsg_Container proto.InternalMessageInfo

func (m *LogResponseMsg_Container) GetApplicationId() string {
	if m != nil {
		return m.ApplicationId
	}
	return ""
}

func (m *LogResponseMsg_Container) GetFunctionId() string {
	if m != nil {
		return m.FunctionId
	}
	return ""
}

func (m *LogResponseMsg_Container) GetContainerId() string {
	if m != nil {
		return m.ContainerId
	}
	return ""
}

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

// Per request log data
type LogResponseMsg_Container_Request struct {
	RequestId            string                                   `protobuf:"bytes,1,opt,name=requestId,proto3" json:"requestId,omitempty"`
	Data                 []*LogResponseMsg_Container_Request_Line `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                 `json:"-"`
	XXX_unrecognized     []byte                                   `json:"-"`
	XXX_sizecache        int32                                    `json:"-"`
}

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

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

var xxx_messageInfo_LogResponseMsg_Container_Request proto.InternalMessageInfo

func (m *LogResponseMsg_Container_Request) GetRequestId() string {
	if m != nil {
		return m.RequestId
	}
	return ""
}

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

// Log lines
type LogResponseMsg_Container_Request_Line struct {
	Timestamp            int64                                        `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Source               LogResponseMsg_Container_Request_Line_Source `protobuf:"varint,2,opt,name=source,proto3,enum=LogResponseMsg_Container_Request_Line_Source" json:"source,omitempty"`
	Data                 []byte                                       `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                     `json:"-"`
	XXX_unrecognized     []byte                                       `json:"-"`
	XXX_sizecache        int32                                        `json:"-"`
}

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

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

var xxx_messageInfo_LogResponseMsg_Container_Request_Line proto.InternalMessageInfo

func (m *LogResponseMsg_Container_Request_Line) GetTimestamp() int64 {
	if m != nil {
		return m.Timestamp
	}
	return 0
}

func (m *LogResponseMsg_Container_Request_Line) GetSource() LogResponseMsg_Container_Request_Line_Source {
	if m != nil {
		return m.Source
	}
	return LogResponseMsg_Container_Request_Line_STDOUT
}

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

func init() {
	proto.RegisterEnum("LogResponseMsg_Container_Request_Line_Source", LogResponseMsg_Container_Request_Line_Source_name, LogResponseMsg_Container_Request_Line_Source_value)
	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")
	proto.RegisterMapType((map[string]string)(nil), "RunnerStatus.CustomStatusEntry")
	proto.RegisterType((*ConfigMsg)(nil), "ConfigMsg")
	proto.RegisterMapType((map[string]string)(nil), "ConfigMsg.ConfigEntry")
	proto.RegisterType((*ConfigStatus)(nil), "ConfigStatus")
	proto.RegisterType((*LogRequestMsg)(nil), "LogRequestMsg")
	proto.RegisterType((*LogRequestMsg_Start)(nil), "LogRequestMsg.Start")
	proto.RegisterMapType((map[string]string)(nil), "LogRequestMsg.Start.ConfigEntry")
	proto.RegisterType((*LogRequestMsg_Ack)(nil), "LogRequestMsg.Ack")
	proto.RegisterType((*LogRequestMsg_Ready)(nil), "LogRequestMsg.Ready")
	proto.RegisterType((*LogResponseMsg)(nil), "LogResponseMsg")
	proto.RegisterType((*LogResponseMsg_Container)(nil), "LogResponseMsg.Container")
	proto.RegisterType((*LogResponseMsg_Container_Request)(nil), "LogResponseMsg.Container.Request")
	proto.RegisterType((*LogResponseMsg_Container_Request_Line)(nil), "LogResponseMsg.Container.Request.Line")
}

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

var fileDescriptor_48eceea7e2abc593 = []byte{
	// 1326 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4f, 0x8f, 0xdb, 0x44,
	0x14, 0x5f, 0xc7, 0x89, 0x93, 0xbc, 0xfc, 0xdd, 0xa1, 0x5d, 0x8c, 0xa9, 0x68, 0x08, 0xa5, 0x8a,
	0x60, 0xeb, 0xd2, 0xa5, 0x95, 0x4a, 0x25, 0x40, 0x25, 0xbb, 0x55, 0x8a, 0x5a, 0x5a, 0x4d, 0xb6,
	0x70, 0x5c, 0xcd, 0xda, 0xb3, 0x89, 0x89, 0x63, 0x87, 0x99, 0xf1, 0xd2, 0x95, 0x38, 0x70, 0x83,
	0xaf, 0xc0, 0x05, 0x89, 0x23, 0x77, 0x3e, 0x07, 0x47, 0x3e, 0x0a, 0x67, 0x34, 0x7f, 0xe2, 0xfc,
	0xdb, 0x6e, 0xbb, 0x12, 0x37, 0xbf, 0xdf, 0xef, 0xcd, 0xbc, 0x37, 0xcf, 0xbf, 0xf7, 0x3c, 0x86,
	0x3a, 0xcb, 0x92, 0x84, 0x32, 0x7f, 0xc6, 0x52, 0x91, 0x7a, 0xef, 0x8e, 0xd2, 0x74, 0x14, 0xd3,
	0xdb, 0xca, 0x3a, 0xce, 0x4e, 0x6e, 0xd3, 0xe9, 0x4c, 0x9c, 0x19, 0xf2, 0xda, 0x3a, 0xc9, 0x05,
	0xcb, 0x02, 0xa1, 0xd9, 0xee, 0xdf, 0x16, 0x94, 0x0f, 0xd9, 0x59, 0x9f, 0xc4, 0x31, 0xea, 0x41,
	0x7b, 0x9a, 0x86, 0x34, 0xe6, 0x47, 0x01, 0x89, 0xe3, 0xa3, 0xef, 0x79, 0x9a, 0xb8, 0x56, 0xc7,
	0xea, 0x55, 0x71, 0x53, 0xe3, 0xd2, 0xeb, 0x6b, 0x9e, 0x26, 0xa8, 0x03, 0x75, 0x1e, 0xa7, 0xe2,
	0x68, 0x4c, 0xf8, 0xf8, 0x28, 0x0a, 0xdd, 0x82, 0xf2, 0x02, 0x89, 0x0d, 0x08, 0x1f, 0x3f, 0x0e,
	0xd1, 0x7d, 0x00, 0xfa, 0x52, 0xd0, 0x84, 0x47, 0x69, 0xc2, 0x5d, 0xbb, 0x63, 0xf7, 0x6a, 0x7b,
	0xae, 0x6f, 0x22, 0xf9, 0x07, 0x39, 0x75, 0x90, 0x08, 0x76, 0x86, 0x97, 0x7c, 0xbd, 0xcf, 0xa1,
	0xb5, 0x46, 0xa3, 0x36, 0xd8, 0x13, 0x7a, 0x66, 0x72, 0x91, 0x8f, 0xe8, 0x0a, 0x94, 0x4e, 0x49,
	0x9c, 0x51, 0x13, 0x59, 0x1b, 0x0f, 0x0a, 0xf7, 0xad, 0xee, 0x1d, 0xa8, 0xee, 0x13, 0x41, 0x1e,
	0x31, 0x32, 0xa5, 0x08, 0x41, 0x31, 0x24, 0x82, 0xa8, 0x95, 0x75, 0xac, 0x9e, 0xe5, 0x66, 0x34,
	0x3d, 0x51, 0x0b, 0x2b, 0x58, 0x3e, 0x76, 0xef, 0x02, 0x0c, 0x84, 0x98, 0x0d, 0x28, 0x09, 0x29,
	0x7b, 0xd3, 0x60, 0xdd, 0x6f, 0xa1, 0x2e, 0x57, 0x61, 0xca, 0x67, 0x4f, 0xa9, 0x20, 0xe8, 0x3a,
	0xd4, 0xb8, 0x20, 0x22, 0xe3, 0x47, 0x41, 0x1a, 0x52, 0xb5, 0xbe, 0x84, 0x41, 0x43, 0xfd, 0x34,
	0xa4, 0xe8, 0x43, 0x28, 0x8f, 0x55, 0x08, 0xee, 0x16, 0x54, 0x3d, 0x6a, 0xfe, 0x22, 0x2c, 0x9e,
	0x73, 0xdd, 0x2f, 0xa0, 0x25, 0x6b, 0x84, 0x29, 0xcf, 0x62, 0x31, 0x14, 0x84, 0x09, 0xf4, 0x01,
	0x14, 0xc7, 0x42, 0xcc, 0xdc, 0xb0, 0x63, 0xf5, 0x6a, 0x7b, 0x0d, 0x7f, 0x39, 0xee, 0x60, 0x0b,
	0x2b, 0xf2, 0x2b, 0x07, 0x8a, 0x53, 0x2a, 0x48, 0xf7, 0xf7, 0x22, 0xd4, 0xe5, 0x06, 0x8f, 0xa2,
	0x24, 0xe2, 0x63, 0x1a, 0x22, 0x17, 0xca, 0x3c, 0x0b, 0x02, 0xca, 0xb9, 0x4a, 0xaa, 0x82, 0xe7,
	0xa6, 0x64, 0x42, 0x2a, 0x48, 0x14, 0x73, 0x73, 0xb4, 0xb9, 0x89, 0xae, 0x41, 0x95, 0x32, 0x96,
	0x32, 0x99, 0xb8, 0x6b, 0xab, 0xa3, 0x2c, 0x00, 0xe4, 0x41, 0x45, 0x19, 0x43, 0xc1, 0xdc, 0xa2,
	0x5a, 0x98, 0xdb, 0x72, 0x65, 0xc0, 0x28, 0x11, 0x34, 0x7c, 0x28, 0xdc, 0x92, 0x22, 0x17, 0x80,
	0x64, 0xb9, 0x3c, 0x92, 0x62, 0x1d, 0xcd, 0xe6, 0x00, 0xea, 0x40, 0x2d, 0x48, 0xa7, 0xb3, 0x98,
	0x6a, 0xbe, 0xac, 0xf8, 0x65, 0x08, 0xed, 0xc2, 0x36, 0x0f, 0xc6, 0x34, 0xcc, 0x62, 0xca, 0xf6,
	0x33, 0x46, 0x44, 0x94, 0x26, 0x6e, 0xa5, 0x63, 0xf5, 0x6c, 0xbc, 0x49, 0x48, 0x6f, 0xfa, 0x92,
	0x06, 0x99, 0x34, 0x72, 0xef, 0xaa, 0xf6, 0xde, 0x20, 0xf2, 0x33, 0xbf, 0xe0, 0x94, 0xb9, 0xa0,
	0x2a, 0xb5, 0x00, 0xa4, 0x08, 0xa2, 0x29, 0x19, 0x51, 0xb7, 0xa6, 0x45, 0xa0, 0x0c, 0x74, 0x17,
	0xae, 0xaa, 0x87, 0xe7, 0x59, 0x1c, 0x7f, 0x47, 0x22, 0x91, 0x47, 0xa9, 0xab, 0x28, 0xe7, 0x93,
	0xa8, 0x07, 0xad, 0x40, 0xb0, 0xe7, 0x8c, 0xce, 0x72, 0xff, 0x86, 0xf2, 0x5f, 0x87, 0xe5, 0x09,
	0x02, 0xc1, 0xfa, 0xaa, 0x7e, 0xb9, 0x6f, 0x53, 0x9f, 0x60, 0x83, 0x40, 0x37, 0xa0, 0x11, 0x25,
	0x91, 0x16, 0xcd, 0x61, 0x34, 0xa5, 0x6e, 0x4b, 0x79, 0xae, 0x82, 0xdd, 0x21, 0x54, 0xfb, 0x71,
	0x44, 0x13, 0xf1, 0x94, 0x8f, 0xd0, 0x35, 0xb0, 0x05, 0xd3, 0x6a, 0xaf, 0xed, 0x55, 0xe6, 0x0d,
	0x3a, 0xd8, 0xc2, 0x12, 0x46, 0x1d, 0xd3, 0x3f, 0x05, 0x45, 0x83, 0x9f, 0x77, 0x96, 0x54, 0x9d,
	0x64, 0xa4, 0xea, 0x8e, 0xd3, 0xf0, 0xac, 0xfb, 0x9b, 0x05, 0x55, 0xac, 0x66, 0x92, 0xdc, 0xf5,
	0x1e, 0xd4, 0x99, 0xd2, 0xef, 0x91, 0x7a, 0xb9, 0x66, 0xfb, 0xb6, 0xbf, 0x26, 0xec, 0xc1, 0x16,
	0xae, 0xb1, 0x25, 0x9d, 0xbf, 0x36, 0x1c, 0xfa, 0x18, 0x2a, 0x27, 0x46, 0xd7, 0x4a, 0x96, 0xb2,
	0x1b, 0x96, 0xc5, 0x3e, 0xd8, 0xc2, 0xb9, 0x43, 0x9e, 0xdb, 0x3f, 0x0e, 0xd4, 0x75, 0x6e, 0x43,
	0xd5, 0x8d, 0x68, 0x07, 0x1c, 0x12, 0x88, 0xe8, 0x54, 0x77, 0x74, 0x09, 0x1b, 0x4b, 0xe2, 0x27,
	0x24, 0x8a, 0xcd, 0xde, 0x15, 0x6c, 0x2c, 0xd4, 0x84, 0x42, 0x14, 0x1a, 0xa5, 0x17, 0xa2, 0x70,
	0xb9, 0x6f, 0x4a, 0x17, 0xf4, 0x8d, 0x73, 0x51, 0xdf, 0x94, 0x2f, 0xea, 0x9b, 0xca, 0x85, 0x7d,
	0x53, 0x7d, 0x4d, 0xdf, 0xc0, 0x66, 0xdf, 0xec, 0x80, 0x13, 0x10, 0xd9, 0x1f, 0x4a, 0xbe, 0x15,
	0x6c, 0x2c, 0xf4, 0x11, 0xb4, 0x19, 0xfd, 0x21, 0xa3, 0x5c, 0x70, 0x4c, 0x03, 0x1a, 0x9d, 0xd2,
	0x50, 0x49, 0xb7, 0x88, 0x37, 0x70, 0xa9, 0xda, 0x39, 0x36, 0x20, 0x49, 0x28, 0xcb, 0xd4, 0x50,
	0xae, 0xeb, 0x30, 0xea, 0x42, 0x7d, 0x12, 0x66, 0xd3, 0x19, 0x7f, 0x96, 0xec, 0x47, 0x7c, 0xa2,
	0x04, 0x5b, 0xc4, 0x2b, 0xd8, 0xf9, 0x9d, 0xdc, 0xba, 0x54, 0x27, 0xb7, 0x5f, 0xd5, 0xc9, 0xbb,
	0xb0, 0x1d, 0xf1, 0x6f, 0xa8, 0xf8, 0x31, 0x65, 0x93, 0xfd, 0x88, 0x93, 0x63, 0x99, 0xeb, 0xb6,
	0x3a, 0xf8, 0x26, 0x81, 0xfa, 0x50, 0x0f, 0x32, 0x2e, 0xd2, 0xa9, 0x56, 0x87, 0x8b, 0xd4, 0x70,
	0xbe, 0xee, 0x2f, 0x4b, 0xc6, 0xef, 0x2f, 0x79, 0xe8, 0x6f, 0xd6, 0xca, 0xa2, 0x57, 0x0f, 0x82,
	0xb7, 0x2e, 0x39, 0x08, 0xae, 0x5c, 0x62, 0x10, 0x5c, 0x7d, 0xe3, 0x41, 0xb0, 0x73, 0xce, 0x20,
	0xf0, 0xbe, 0x84, 0xed, 0x8d, 0x63, 0x5d, 0xea, 0x5b, 0x7b, 0x0a, 0xd5, 0x7e, 0x9a, 0x9c, 0x44,
	0x23, 0xd9, 0xf3, 0x3e, 0x38, 0x81, 0x32, 0x5c, 0x4b, 0x15, 0x70, 0xc7, 0xcf, 0x39, 0xf3, 0xa4,
	0xeb, 0x66, 0xbc, 0xbc, 0xcf, 0xa0, 0xb6, 0x04, 0x5f, 0x2a, 0x6e, 0x13, 0xea, 0x7a, 0xa9, 0x4e,
	0xbc, 0xfb, 0x67, 0x01, 0x1a, 0x4f, 0xd2, 0x11, 0xd6, 0x32, 0x94, 0xc9, 0xec, 0x42, 0x69, 0x79,
	0xf2, 0x5c, 0xf1, 0x57, 0x68, 0x7f, 0x3e, 0x7d, 0xb4, 0x13, 0xba, 0x09, 0x36, 0x09, 0x26, 0x66,
	0xec, 0xa0, 0x35, 0xdf, 0x87, 0xc1, 0x44, 0x8e, 0x43, 0x12, 0x48, 0xcd, 0x96, 0x18, 0x25, 0xe1,
	0x99, 0x19, 0x3d, 0xeb, 0xbb, 0x62, 0xc9, 0xc9, 0x5d, 0x95, 0x93, 0xf7, 0x13, 0x94, 0xf4, 0x58,
	0xbb, 0xbf, 0x56, 0x99, 0xce, 0x79, 0xd9, 0xfc, 0xcf, 0x35, 0xf2, 0x4a, 0x60, 0x3f, 0x0c, 0x26,
	0x5e, 0x19, 0x4a, 0x2a, 0xad, 0x7c, 0x18, 0xfe, 0x6b, 0x43, 0x53, 0x85, 0xe7, 0xb3, 0x34, 0xe1,
	0x54, 0x16, 0xeb, 0x56, 0x7e, 0x4b, 0x92, 0xd9, 0xbd, 0xe3, 0xaf, 0xd2, 0x32, 0x31, 0x41, 0xa2,
	0x84, 0x32, 0x3d, 0x83, 0xbd, 0xbf, 0x6c, 0xf5, 0xda, 0x35, 0x26, 0xa5, 0x46, 0x66, 0xb3, 0x38,
	0x0a, 0x94, 0xf2, 0x1e, 0x87, 0x26, 0xbb, 0x55, 0x10, 0xbd, 0x07, 0x70, 0x92, 0x25, 0x81, 0x71,
	0x31, 0xd7, 0xc5, 0x05, 0xa2, 0x27, 0x98, 0xd9, 0xf2, 0xb1, 0x1e, 0xbf, 0x6a, 0x82, 0xe5, 0x10,
	0xba, 0x67, 0x92, 0x2c, 0xaa, 0x24, 0xdf, 0x7f, 0x65, 0x92, 0xbe, 0x29, 0xac, 0x49, 0xf6, 0x97,
	0x02, 0x94, 0x0d, 0x22, 0x87, 0xa8, 0x99, 0x54, 0x79, 0x9a, 0x0b, 0x00, 0x3d, 0xc8, 0x3f, 0x3e,
	0x32, 0xc0, 0xcd, 0xd7, 0x06, 0xf0, 0x9f, 0x44, 0x09, 0x35, 0x51, 0xfe, 0xb0, 0xa0, 0x28, 0x4d,
	0x19, 0x42, 0x44, 0x53, 0xca, 0x05, 0x99, 0xce, 0x54, 0x08, 0x1b, 0x2f, 0x00, 0x74, 0x00, 0x0e,
	0x4f, 0x33, 0x16, 0xe8, 0xd7, 0xd5, 0xdc, 0xbb, 0xf5, 0x66, 0x41, 0xfc, 0xa1, 0x5a, 0x84, 0xcd,
	0xe2, 0xfc, 0x56, 0x6b, 0x2f, 0x6e, 0xb5, 0xdd, 0x0e, 0x38, 0xda, 0x0b, 0x01, 0x38, 0xc3, 0xc3,
	0xfd, 0x67, 0x2f, 0x0e, 0xdb, 0x5b, 0xe6, 0xf9, 0x00, 0xe3, 0xb6, 0xb5, 0xf7, 0x73, 0x01, 0x9a,
	0x7a, 0xa4, 0x3d, 0x97, 0x37, 0xff, 0x20, 0x8d, 0xd1, 0x0d, 0x70, 0x0e, 0x92, 0x91, 0xbc, 0xc7,
	0x80, 0x9f, 0x5f, 0x09, 0x3c, 0xf0, 0xf3, 0x0f, 0x79, 0xcf, 0xfa, 0xc4, 0x42, 0x77, 0xc1, 0x99,
	0x7f, 0x37, 0x7d, 0xfd, 0x2f, 0xe1, 0xcf, 0xff, 0x25, 0xfc, 0x03, 0xf9, 0xa3, 0xe1, 0x35, 0x56,
	0x66, 0x65, 0xd7, 0xfe, 0xb5, 0x60, 0xa1, 0x5d, 0x68, 0x69, 0xe9, 0x66, 0x8c, 0x6a, 0x56, 0x06,
	0x99, 0x4f, 0x04, 0xaf, 0xe1, 0x2f, 0x77, 0x30, 0xba, 0x03, 0x30, 0x14, 0x8c, 0x92, 0xe9, 0x93,
	0x74, 0xc4, 0x51, 0x73, 0xb5, 0x41, 0xbc, 0xd6, 0x5a, 0x9d, 0x54, 0x5a, 0x77, 0xa0, 0xac, 0x17,
	0xef, 0xa1, 0xb7, 0x37, 0xf2, 0x1a, 0xaa, 0x7f, 0x9c, 0xb5, 0xc4, 0x8e, 0x1d, 0xc5, 0x7f, 0xfa,
	0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x64, 0x4e, 0xf9, 0x4b, 0x3e, 0x0d, 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.
	//
	// Deprecated: Do not use.
	Status(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*RunnerStatus, error)
	// Configure the remote runner by passing config data.
	ConfigureRunner(ctx context.Context, in *ConfigMsg, opts ...grpc.CallOption) (*ConfigStatus, error)
	// Logging Interface
	StreamLogs(ctx context.Context, opts ...grpc.CallOption) (RunnerProtocol_StreamLogsClient, error)
	// If a status image container is configured (for handling custom statuses)
	/// the supplied opaque JSON is passed as an input to that image.
	// Output from the container is sent back via RunnerStatus.Details
	// as before.
	Status2(ctx context.Context, in *_struct.Struct, 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
}

// Deprecated: Do not use.
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
}

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

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

type RunnerProtocol_StreamLogsClient interface {
	Send(*LogRequestMsg) error
	Recv() (*LogResponseMsg, error)
	grpc.ClientStream
}

type runnerProtocolStreamLogsClient struct {
	grpc.ClientStream
}

func (x *runnerProtocolStreamLogsClient) Send(m *LogRequestMsg) error {
	return x.ClientStream.SendMsg(m)
}

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

func (c *runnerProtocolClient) Status2(ctx context.Context, in *_struct.Struct, opts ...grpc.CallOption) (*RunnerStatus, error) {
	out := new(RunnerStatus)
	err := c.cc.Invoke(ctx, "/RunnerProtocol/Status2", 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.
	//
	// Deprecated: Do not use.
	Status(context.Context, *empty.Empty) (*RunnerStatus, error)
	// Configure the remote runner by passing config data.
	ConfigureRunner(context.Context, *ConfigMsg) (*ConfigStatus, error)
	// Logging Interface
	StreamLogs(RunnerProtocol_StreamLogsServer) error
	// If a status image container is configured (for handling custom statuses)
	/// the supplied opaque JSON is passed as an input to that image.
	// Output from the container is sent back via RunnerStatus.Details
	// as before.
	Status2(context.Context, *_struct.Struct) (*RunnerStatus, error)
}

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

func (*UnimplementedRunnerProtocolServer) Engage(srv RunnerProtocol_EngageServer) error {
	return status.Errorf(codes.Unimplemented, "method Engage not implemented")
}
func (*UnimplementedRunnerProtocolServer) Status(ctx context.Context, req *empty.Empty) (*RunnerStatus, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Status not implemented")
}
func (*UnimplementedRunnerProtocolServer) ConfigureRunner(ctx context.Context, req *ConfigMsg) (*ConfigStatus, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ConfigureRunner not implemented")
}
func (*UnimplementedRunnerProtocolServer) StreamLogs(srv RunnerProtocol_StreamLogsServer) error {
	return status.Errorf(codes.Unimplemented, "method StreamLogs not implemented")
}
func (*UnimplementedRunnerProtocolServer) Status2(ctx context.Context, req *_struct.Struct) (*RunnerStatus, error) {
	return nil, status.Errorf(codes.Unimplemented, "method Status2 not implemented")
}

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)
}

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

func _RunnerProtocol_StreamLogs_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(RunnerProtocolServer).StreamLogs(&runnerProtocolStreamLogsServer{stream})
}

type RunnerProtocol_StreamLogsServer interface {
	Send(*LogResponseMsg) error
	Recv() (*LogRequestMsg, error)
	grpc.ServerStream
}

type runnerProtocolStreamLogsServer struct {
	grpc.ServerStream
}

func (x *runnerProtocolStreamLogsServer) Send(m *LogResponseMsg) error {
	return x.ServerStream.SendMsg(m)
}

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

func _RunnerProtocol_Status2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(_struct.Struct)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RunnerProtocolServer).Status2(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/RunnerProtocol/Status2",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RunnerProtocolServer).Status2(ctx, req.(*_struct.Struct))
	}
	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,
		},
		{
			MethodName: "ConfigureRunner",
			Handler:    _RunnerProtocol_ConfigureRunner_Handler,
		},
		{
			MethodName: "Status2",
			Handler:    _RunnerProtocol_Status2_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Engage",
			Handler:       _RunnerProtocol_Engage_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "StreamLogs",
			Handler:       _RunnerProtocol_StreamLogs_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "runner.proto",
}
