// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        (unknown)
// source: spindle/mill/v1/mill.proto

package millv1

import (
	_ "buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type RejectClass int32

const (
	RejectClass_REJECT_CLASS_UNSPECIFIED  RejectClass = 0
	RejectClass_REJECT_CLASS_TRANSIENT    RejectClass = 1
	RejectClass_REJECT_CLASS_INCOMPATIBLE RejectClass = 2
)

// Enum value maps for RejectClass.
var (
	RejectClass_name = map[int32]string{
		0: "REJECT_CLASS_UNSPECIFIED",
		1: "REJECT_CLASS_TRANSIENT",
		2: "REJECT_CLASS_INCOMPATIBLE",
	}
	RejectClass_value = map[string]int32{
		"REJECT_CLASS_UNSPECIFIED":  0,
		"REJECT_CLASS_TRANSIENT":    1,
		"REJECT_CLASS_INCOMPATIBLE": 2,
	}
)

func (x RejectClass) Enum() *RejectClass {
	p := new(RejectClass)
	*p = x
	return p
}

func (x RejectClass) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RejectClass) Descriptor() protoreflect.EnumDescriptor {
	return file_spindle_mill_v1_mill_proto_enumTypes[0].Descriptor()
}

func (RejectClass) Type() protoreflect.EnumType {
	return &file_spindle_mill_v1_mill_proto_enumTypes[0]
}

func (x RejectClass) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RejectClass.Descriptor instead.
func (RejectClass) EnumDescriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{0}
}

type NonterminalStatus int32

const (
	NonterminalStatus_NONTERMINAL_STATUS_UNSPECIFIED NonterminalStatus = 0
	NonterminalStatus_RUNNING                        NonterminalStatus = 1
)

// Enum value maps for NonterminalStatus.
var (
	NonterminalStatus_name = map[int32]string{
		0: "NONTERMINAL_STATUS_UNSPECIFIED",
		1: "RUNNING",
	}
	NonterminalStatus_value = map[string]int32{
		"NONTERMINAL_STATUS_UNSPECIFIED": 0,
		"RUNNING":                        1,
	}
)

func (x NonterminalStatus) Enum() *NonterminalStatus {
	p := new(NonterminalStatus)
	*p = x
	return p
}

func (x NonterminalStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (NonterminalStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_spindle_mill_v1_mill_proto_enumTypes[1].Descriptor()
}

func (NonterminalStatus) Type() protoreflect.EnumType {
	return &file_spindle_mill_v1_mill_proto_enumTypes[1]
}

func (x NonterminalStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use NonterminalStatus.Descriptor instead.
func (NonterminalStatus) EnumDescriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{1}
}

type TerminalStatus int32

const (
	TerminalStatus_TERMINAL_STATUS_UNSPECIFIED TerminalStatus = 0
	TerminalStatus_SUCCESS                     TerminalStatus = 1
	TerminalStatus_FAILED                      TerminalStatus = 2
	TerminalStatus_TIMEOUT                     TerminalStatus = 3
	TerminalStatus_CANCELLED                   TerminalStatus = 4
)

// Enum value maps for TerminalStatus.
var (
	TerminalStatus_name = map[int32]string{
		0: "TERMINAL_STATUS_UNSPECIFIED",
		1: "SUCCESS",
		2: "FAILED",
		3: "TIMEOUT",
		4: "CANCELLED",
	}
	TerminalStatus_value = map[string]int32{
		"TERMINAL_STATUS_UNSPECIFIED": 0,
		"SUCCESS":                     1,
		"FAILED":                      2,
		"TIMEOUT":                     3,
		"CANCELLED":                   4,
	}
)

func (x TerminalStatus) Enum() *TerminalStatus {
	p := new(TerminalStatus)
	*p = x
	return p
}

func (x TerminalStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TerminalStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_spindle_mill_v1_mill_proto_enumTypes[2].Descriptor()
}

func (TerminalStatus) Type() protoreflect.EnumType {
	return &file_spindle_mill_v1_mill_proto_enumTypes[2]
}

func (x TerminalStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use TerminalStatus.Descriptor instead.
func (TerminalStatus) EnumDescriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{2}
}

// executor identity, sent on connect
type Hello struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	ProtocolVersion uint32                 `protobuf:"varint,1,opt,name=protocol_version,json=protocolVersion,proto3" json:"protocol_version,omitempty"`
	// GOARCH of the node, informational only
	Arch string `protobuf:"bytes,2,opt,name=arch,proto3" json:"arch,omitempty"`
	// operator-defined labels, matched against runs_on
	Labels        []string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty"`
	Epoch         string   `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Hello) Reset() {
	*x = Hello{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Hello) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Hello) ProtoMessage() {}

func (x *Hello) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Hello.ProtoReflect.Descriptor instead.
func (*Hello) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{0}
}

func (x *Hello) GetProtocolVersion() uint32 {
	if x != nil {
		return x.ProtocolVersion
	}
	return 0
}

func (x *Hello) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

func (x *Hello) GetLabels() []string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *Hello) GetEpoch() string {
	if x != nil {
		return x.Epoch
	}
	return ""
}

// reconnect state for an existing epoch
type Resume struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Epoch         string                 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
	AckSeqno      uint64                 `protobuf:"varint,2,opt,name=ack_seqno,json=ackSeqno,proto3" json:"ack_seqno,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Resume) Reset() {
	*x = Resume{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Resume) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Resume) ProtoMessage() {}

func (x *Resume) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Resume.ProtoReflect.Descriptor instead.
func (*Resume) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{1}
}

func (x *Resume) GetEpoch() string {
	if x != nil {
		return x.Epoch
	}
	return ""
}

func (x *Resume) GetAckSeqno() uint64 {
	if x != nil {
		return x.AckSeqno
	}
	return 0
}

// per-engine state of a node
type EngineAvailability struct {
	state     protoimpl.MessageState `protogen:"open.v1"`
	Available bool                   `protobuf:"varint,1,opt,name=available,proto3" json:"available,omitempty"`
	// opaque engine-defined load metrics, higher means more loaded
	Load          map[string]float64 `protobuf:"bytes,2,rep,name=load,proto3" json:"load,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EngineAvailability) Reset() {
	*x = EngineAvailability{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EngineAvailability) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EngineAvailability) ProtoMessage() {}

func (x *EngineAvailability) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EngineAvailability.ProtoReflect.Descriptor instead.
func (*EngineAvailability) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{2}
}

func (x *EngineAvailability) GetAvailable() bool {
	if x != nil {
		return x.Available
	}
	return false
}

func (x *EngineAvailability) GetLoad() map[string]float64 {
	if x != nil {
		return x.Load
	}
	return nil
}

// full node state
type NodeSnapshot struct {
	state   protoimpl.MessageState         `protogen:"open.v1"`
	Seqno   uint64                         `protobuf:"varint,1,opt,name=seqno,proto3" json:"seqno,omitempty"`
	Engines map[string]*EngineAvailability `protobuf:"bytes,2,rep,name=engines,proto3" json:"engines,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// every lease the executor currently holds, reserved or running
	ActiveLeaseIds []string `protobuf:"bytes,3,rep,name=active_lease_ids,json=activeLeaseIds,proto3" json:"active_lease_ids,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *NodeSnapshot) Reset() {
	*x = NodeSnapshot{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NodeSnapshot) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeSnapshot) ProtoMessage() {}

func (x *NodeSnapshot) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NodeSnapshot.ProtoReflect.Descriptor instead.
func (*NodeSnapshot) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{3}
}

func (x *NodeSnapshot) GetSeqno() uint64 {
	if x != nil {
		return x.Seqno
	}
	return 0
}

func (x *NodeSnapshot) GetEngines() map[string]*EngineAvailability {
	if x != nil {
		return x.Engines
	}
	return nil
}

func (x *NodeSnapshot) GetActiveLeaseIds() []string {
	if x != nil {
		return x.ActiveLeaseIds
	}
	return nil
}

// a seat reservation, carries no secrets
type ReserveSeat struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	LeaseId         string                 `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
	TargetEngine    string                 `protobuf:"bytes,2,opt,name=target_engine,json=targetEngine,proto3" json:"target_engine,omitempty"`
	RawPipelineJson string                 `protobuf:"bytes,3,opt,name=raw_pipeline_json,json=rawPipelineJson,proto3" json:"raw_pipeline_json,omitempty"`
	RawWorkflowJson string                 `protobuf:"bytes,4,opt,name=raw_workflow_json,json=rawWorkflowJson,proto3" json:"raw_workflow_json,omitempty"`
	// pipeline id, the executor reconstructs the exact WorkflowId from it
	Knot          string `protobuf:"bytes,5,opt,name=knot,proto3" json:"knot,omitempty"`
	Rkey          string `protobuf:"bytes,6,opt,name=rkey,proto3" json:"rkey,omitempty"`
	TtlSeconds    uint32 `protobuf:"varint,7,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ReserveSeat) Reset() {
	*x = ReserveSeat{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReserveSeat) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReserveSeat) ProtoMessage() {}

func (x *ReserveSeat) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReserveSeat.ProtoReflect.Descriptor instead.
func (*ReserveSeat) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{4}
}

func (x *ReserveSeat) GetLeaseId() string {
	if x != nil {
		return x.LeaseId
	}
	return ""
}

func (x *ReserveSeat) GetTargetEngine() string {
	if x != nil {
		return x.TargetEngine
	}
	return ""
}

func (x *ReserveSeat) GetRawPipelineJson() string {
	if x != nil {
		return x.RawPipelineJson
	}
	return ""
}

func (x *ReserveSeat) GetRawWorkflowJson() string {
	if x != nil {
		return x.RawWorkflowJson
	}
	return ""
}

func (x *ReserveSeat) GetKnot() string {
	if x != nil {
		return x.Knot
	}
	return ""
}

func (x *ReserveSeat) GetRkey() string {
	if x != nil {
		return x.Rkey
	}
	return ""
}

func (x *ReserveSeat) GetTtlSeconds() uint32 {
	if x != nil {
		return x.TtlSeconds
	}
	return 0
}

type ReserveResult struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LeaseId       string                 `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
	Accepted      bool                   `protobuf:"varint,2,opt,name=accepted,proto3" json:"accepted,omitempty"`
	RejectReason  string                 `protobuf:"bytes,3,opt,name=reject_reason,json=rejectReason,proto3" json:"reject_reason,omitempty"`
	RejectClass   RejectClass            `protobuf:"varint,4,opt,name=reject_class,json=rejectClass,proto3,enum=spindle.mill.v1.RejectClass" json:"reject_class,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ReserveResult) Reset() {
	*x = ReserveResult{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReserveResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReserveResult) ProtoMessage() {}

func (x *ReserveResult) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReserveResult.ProtoReflect.Descriptor instead.
func (*ReserveResult) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{5}
}

func (x *ReserveResult) GetLeaseId() string {
	if x != nil {
		return x.LeaseId
	}
	return ""
}

func (x *ReserveResult) GetAccepted() bool {
	if x != nil {
		return x.Accepted
	}
	return false
}

func (x *ReserveResult) GetRejectReason() string {
	if x != nil {
		return x.RejectReason
	}
	return ""
}

func (x *ReserveResult) GetRejectClass() RejectClass {
	if x != nil {
		return x.RejectClass
	}
	return RejectClass_REJECT_CLASS_UNSPECIFIED
}

// a single unlocked secret
type Secret struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Key           string                 `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value         string                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Secret) Reset() {
	*x = Secret{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Secret) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Secret) ProtoMessage() {}

func (x *Secret) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Secret.ProtoReflect.Descriptor instead.
func (*Secret) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{6}
}

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

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

// promotes a reservation to a running job and hands over the secrets
type CommitLease struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LeaseId       string                 `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
	Secrets       []*Secret              `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CommitLease) Reset() {
	*x = CommitLease{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CommitLease) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CommitLease) ProtoMessage() {}

func (x *CommitLease) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CommitLease.ProtoReflect.Descriptor instead.
func (*CommitLease) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{7}
}

func (x *CommitLease) GetLeaseId() string {
	if x != nil {
		return x.LeaseId
	}
	return ""
}

func (x *CommitLease) GetSecrets() []*Secret {
	if x != nil {
		return x.Secrets
	}
	return nil
}

type Committed struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LeaseId       string                 `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Committed) Reset() {
	*x = Committed{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Committed) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Committed) ProtoMessage() {}

func (x *Committed) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Committed.ProtoReflect.Descriptor instead.
func (*Committed) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{8}
}

func (x *Committed) GetLeaseId() string {
	if x != nil {
		return x.LeaseId
	}
	return ""
}

// drops a reservation that was never committed
type ReleaseLease struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LeaseId       string                 `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ReleaseLease) Reset() {
	*x = ReleaseLease{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ReleaseLease) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReleaseLease) ProtoMessage() {}

func (x *ReleaseLease) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ReleaseLease.ProtoReflect.Descriptor instead.
func (*ReleaseLease) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{9}
}

func (x *ReleaseLease) GetLeaseId() string {
	if x != nil {
		return x.LeaseId
	}
	return ""
}

// cancels a running attempt
type CancelAttempt struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LeaseId       string                 `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
	Reason        string                 `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CancelAttempt) Reset() {
	*x = CancelAttempt{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CancelAttempt) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CancelAttempt) ProtoMessage() {}

func (x *CancelAttempt) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CancelAttempt.ProtoReflect.Descriptor instead.
func (*CancelAttempt) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{10}
}

func (x *CancelAttempt) GetLeaseId() string {
	if x != nil {
		return x.LeaseId
	}
	return ""
}

func (x *CancelAttempt) GetReason() string {
	if x != nil {
		return x.Reason
	}
	return ""
}

type CancelAck struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LeaseId       string                 `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CancelAck) Reset() {
	*x = CancelAck{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CancelAck) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CancelAck) ProtoMessage() {}

func (x *CancelAck) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CancelAck.ProtoReflect.Descriptor instead.
func (*CancelAck) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{11}
}

func (x *CancelAck) GetLeaseId() string {
	if x != nil {
		return x.LeaseId
	}
	return ""
}

type StatusEvent struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Status        NonterminalStatus      `protobuf:"varint,1,opt,name=status,proto3,enum=spindle.mill.v1.NonterminalStatus" json:"status,omitempty"`
	Error         string                 `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	ExitCode      int64                  `protobuf:"varint,3,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StatusEvent) Reset() {
	*x = StatusEvent{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StatusEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StatusEvent) ProtoMessage() {}

func (x *StatusEvent) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StatusEvent.ProtoReflect.Descriptor instead.
func (*StatusEvent) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{12}
}

func (x *StatusEvent) GetStatus() NonterminalStatus {
	if x != nil {
		return x.Status
	}
	return NonterminalStatus_NONTERMINAL_STATUS_UNSPECIFIED
}

func (x *StatusEvent) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *StatusEvent) GetExitCode() int64 {
	if x != nil {
		return x.ExitCode
	}
	return 0
}

type LogArtifact struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Ref           string                 `protobuf:"bytes,1,opt,name=ref,proto3" json:"ref,omitempty"`
	Hash          string                 `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LogArtifact) Reset() {
	*x = LogArtifact{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LogArtifact) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LogArtifact) ProtoMessage() {}

func (x *LogArtifact) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LogArtifact.ProtoReflect.Descriptor instead.
func (*LogArtifact) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{13}
}

func (x *LogArtifact) GetRef() string {
	if x != nil {
		return x.Ref
	}
	return ""
}

func (x *LogArtifact) GetHash() string {
	if x != nil {
		return x.Hash
	}
	return ""
}

// terminal outcome of an attempt
type AttemptResult struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Status        TerminalStatus         `protobuf:"varint,1,opt,name=status,proto3,enum=spindle.mill.v1.TerminalStatus" json:"status,omitempty"`
	Error         string                 `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
	ExitCode      int64                  `protobuf:"varint,3,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"`
	LogArtifact   *LogArtifact           `protobuf:"bytes,4,opt,name=log_artifact,json=logArtifact,proto3" json:"log_artifact,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AttemptResult) Reset() {
	*x = AttemptResult{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AttemptResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AttemptResult) ProtoMessage() {}

func (x *AttemptResult) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AttemptResult.ProtoReflect.Descriptor instead.
func (*AttemptResult) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{14}
}

func (x *AttemptResult) GetStatus() TerminalStatus {
	if x != nil {
		return x.Status
	}
	return TerminalStatus_TERMINAL_STATUS_UNSPECIFIED
}

func (x *AttemptResult) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

func (x *AttemptResult) GetExitCode() int64 {
	if x != nil {
		return x.ExitCode
	}
	return 0
}

func (x *AttemptResult) GetLogArtifact() *LogArtifact {
	if x != nil {
		return x.LogArtifact
	}
	return nil
}

// live non-replay log frame
type LiveLog struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	LeaseId       string                 `protobuf:"bytes,1,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
	RawJson       []byte                 `protobuf:"bytes,2,opt,name=raw_json,json=rawJson,proto3" json:"raw_json,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LiveLog) Reset() {
	*x = LiveLog{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LiveLog) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LiveLog) ProtoMessage() {}

func (x *LiveLog) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LiveLog.ProtoReflect.Descriptor instead.
func (*LiveLog) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{15}
}

func (x *LiveLog) GetLeaseId() string {
	if x != nil {
		return x.LeaseId
	}
	return ""
}

func (x *LiveLog) GetRawJson() []byte {
	if x != nil {
		return x.RawJson
	}
	return nil
}

// one event in the executor's stream back to the mill
type Event struct {
	state   protoimpl.MessageState `protogen:"open.v1"`
	Seqno   uint64                 `protobuf:"varint,1,opt,name=seqno,proto3" json:"seqno,omitempty"`
	LeaseId string                 `protobuf:"bytes,2,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"`
	// Types that are valid to be assigned to Payload:
	//
	//	*Event_StatusEvent
	//	*Event_AttemptResult
	Payload       isEvent_Payload `protobuf_oneof:"payload"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Event) Reset() {
	*x = Event{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Event) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Event) ProtoMessage() {}

func (x *Event) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Event.ProtoReflect.Descriptor instead.
func (*Event) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{16}
}

func (x *Event) GetSeqno() uint64 {
	if x != nil {
		return x.Seqno
	}
	return 0
}

func (x *Event) GetLeaseId() string {
	if x != nil {
		return x.LeaseId
	}
	return ""
}

func (x *Event) GetPayload() isEvent_Payload {
	if x != nil {
		return x.Payload
	}
	return nil
}

func (x *Event) GetStatusEvent() *StatusEvent {
	if x != nil {
		if x, ok := x.Payload.(*Event_StatusEvent); ok {
			return x.StatusEvent
		}
	}
	return nil
}

func (x *Event) GetAttemptResult() *AttemptResult {
	if x != nil {
		if x, ok := x.Payload.(*Event_AttemptResult); ok {
			return x.AttemptResult
		}
	}
	return nil
}

type isEvent_Payload interface {
	isEvent_Payload()
}

type Event_StatusEvent struct {
	StatusEvent *StatusEvent `protobuf:"bytes,3,opt,name=status_event,json=statusEvent,proto3,oneof"`
}

type Event_AttemptResult struct {
	AttemptResult *AttemptResult `protobuf:"bytes,4,opt,name=attempt_result,json=attemptResult,proto3,oneof"`
}

func (*Event_StatusEvent) isEvent_Payload() {}

func (*Event_AttemptResult) isEvent_Payload() {}

// a flushed bundle of events
type EventBatch struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Epoch         string                 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
	Events        []*Event               `protobuf:"bytes,2,rep,name=events,proto3" json:"events,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *EventBatch) Reset() {
	*x = EventBatch{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *EventBatch) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*EventBatch) ProtoMessage() {}

func (x *EventBatch) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use EventBatch.ProtoReflect.Descriptor instead.
func (*EventBatch) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{17}
}

func (x *EventBatch) GetEpoch() string {
	if x != nil {
		return x.Epoch
	}
	return ""
}

func (x *EventBatch) GetEvents() []*Event {
	if x != nil {
		return x.Events
	}
	return nil
}

// all events up to and including up_to_seqno are durably processed
type Ack struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Epoch         string                 `protobuf:"bytes,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
	UpToSeqno     uint64                 `protobuf:"varint,2,opt,name=up_to_seqno,json=upToSeqno,proto3" json:"up_to_seqno,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Ack) Reset() {
	*x = Ack{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Ack) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Ack) ProtoMessage() {}

func (x *Ack) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Ack.ProtoReflect.Descriptor instead.
func (*Ack) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{18}
}

func (x *Ack) GetEpoch() string {
	if x != nil {
		return x.Epoch
	}
	return ""
}

func (x *Ack) GetUpToSeqno() uint64 {
	if x != nil {
		return x.UpToSeqno
	}
	return 0
}

type Message struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Hello         *Hello                 `protobuf:"bytes,1,opt,name=hello,proto3" json:"hello,omitempty"`
	Resume        *Resume                `protobuf:"bytes,2,opt,name=resume,proto3" json:"resume,omitempty"`
	NodeSnapshot  *NodeSnapshot          `protobuf:"bytes,3,opt,name=node_snapshot,json=nodeSnapshot,proto3" json:"node_snapshot,omitempty"`
	ReserveSeat   *ReserveSeat           `protobuf:"bytes,4,opt,name=reserve_seat,json=reserveSeat,proto3" json:"reserve_seat,omitempty"`
	ReserveResult *ReserveResult         `protobuf:"bytes,5,opt,name=reserve_result,json=reserveResult,proto3" json:"reserve_result,omitempty"`
	CommitLease   *CommitLease           `protobuf:"bytes,6,opt,name=commit_lease,json=commitLease,proto3" json:"commit_lease,omitempty"`
	Committed     *Committed             `protobuf:"bytes,7,opt,name=committed,proto3" json:"committed,omitempty"`
	ReleaseLease  *ReleaseLease          `protobuf:"bytes,8,opt,name=release_lease,json=releaseLease,proto3" json:"release_lease,omitempty"`
	CancelAttempt *CancelAttempt         `protobuf:"bytes,9,opt,name=cancel_attempt,json=cancelAttempt,proto3" json:"cancel_attempt,omitempty"`
	CancelAck     *CancelAck             `protobuf:"bytes,10,opt,name=cancel_ack,json=cancelAck,proto3" json:"cancel_ack,omitempty"`
	EventBatch    *EventBatch            `protobuf:"bytes,11,opt,name=event_batch,json=eventBatch,proto3" json:"event_batch,omitempty"`
	Ack           *Ack                   `protobuf:"bytes,12,opt,name=ack,proto3" json:"ack,omitempty"`
	LiveLog       *LiveLog               `protobuf:"bytes,13,opt,name=live_log,json=liveLog,proto3" json:"live_log,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Message) Reset() {
	*x = Message{}
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Message) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Message) ProtoMessage() {}

func (x *Message) ProtoReflect() protoreflect.Message {
	mi := &file_spindle_mill_v1_mill_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Message.ProtoReflect.Descriptor instead.
func (*Message) Descriptor() ([]byte, []int) {
	return file_spindle_mill_v1_mill_proto_rawDescGZIP(), []int{19}
}

func (x *Message) GetHello() *Hello {
	if x != nil {
		return x.Hello
	}
	return nil
}

func (x *Message) GetResume() *Resume {
	if x != nil {
		return x.Resume
	}
	return nil
}

func (x *Message) GetNodeSnapshot() *NodeSnapshot {
	if x != nil {
		return x.NodeSnapshot
	}
	return nil
}

func (x *Message) GetReserveSeat() *ReserveSeat {
	if x != nil {
		return x.ReserveSeat
	}
	return nil
}

func (x *Message) GetReserveResult() *ReserveResult {
	if x != nil {
		return x.ReserveResult
	}
	return nil
}

func (x *Message) GetCommitLease() *CommitLease {
	if x != nil {
		return x.CommitLease
	}
	return nil
}

func (x *Message) GetCommitted() *Committed {
	if x != nil {
		return x.Committed
	}
	return nil
}

func (x *Message) GetReleaseLease() *ReleaseLease {
	if x != nil {
		return x.ReleaseLease
	}
	return nil
}

func (x *Message) GetCancelAttempt() *CancelAttempt {
	if x != nil {
		return x.CancelAttempt
	}
	return nil
}

func (x *Message) GetCancelAck() *CancelAck {
	if x != nil {
		return x.CancelAck
	}
	return nil
}

func (x *Message) GetEventBatch() *EventBatch {
	if x != nil {
		return x.EventBatch
	}
	return nil
}

func (x *Message) GetAck() *Ack {
	if x != nil {
		return x.Ack
	}
	return nil
}

func (x *Message) GetLiveLog() *LiveLog {
	if x != nil {
		return x.LiveLog
	}
	return nil
}

var File_spindle_mill_v1_mill_proto protoreflect.FileDescriptor

const file_spindle_mill_v1_mill_proto_rawDesc = "" +
	"\n" +
	"\x1aspindle/mill/v1/mill.proto\x12\x0fspindle.mill.v1\x1a\x1bbuf/validate/validate.proto\"}\n" +
	"\x05Hello\x12)\n" +
	"\x10protocol_version\x18\x01 \x01(\rR\x0fprotocolVersion\x12\x12\n" +
	"\x04arch\x18\x02 \x01(\tR\x04arch\x12\x16\n" +
	"\x06labels\x18\x03 \x03(\tR\x06labels\x12\x1d\n" +
	"\x05epoch\x18\x04 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x05epoch\"D\n" +
	"\x06Resume\x12\x1d\n" +
	"\x05epoch\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x05epoch\x12\x1b\n" +
	"\tack_seqno\x18\x02 \x01(\x04R\backSeqno\"\xae\x01\n" +
	"\x12EngineAvailability\x12\x1c\n" +
	"\tavailable\x18\x01 \x01(\bR\tavailable\x12A\n" +
	"\x04load\x18\x02 \x03(\v2-.spindle.mill.v1.EngineAvailability.LoadEntryR\x04load\x1a7\n" +
	"\tLoadEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\x01R\x05value:\x028\x01\"\xfe\x01\n" +
	"\fNodeSnapshot\x12\x1d\n" +
	"\x05seqno\x18\x01 \x01(\x04B\a\xbaH\x042\x02 \x00R\x05seqno\x12D\n" +
	"\aengines\x18\x02 \x03(\v2*.spindle.mill.v1.NodeSnapshot.EnginesEntryR\aengines\x12(\n" +
	"\x10active_lease_ids\x18\x03 \x03(\tR\x0eactiveLeaseIds\x1a_\n" +
	"\fEnginesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x129\n" +
	"\x05value\x18\x02 \x01(\v2#.spindle.mill.v1.EngineAvailabilityR\x05value:\x028\x01\"\x80\x02\n" +
	"\vReserveSeat\x12\"\n" +
	"\blease_id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aleaseId\x12,\n" +
	"\rtarget_engine\x18\x02 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\ftargetEngine\x12*\n" +
	"\x11raw_pipeline_json\x18\x03 \x01(\tR\x0frawPipelineJson\x12*\n" +
	"\x11raw_workflow_json\x18\x04 \x01(\tR\x0frawWorkflowJson\x12\x12\n" +
	"\x04knot\x18\x05 \x01(\tR\x04knot\x12\x12\n" +
	"\x04rkey\x18\x06 \x01(\tR\x04rkey\x12\x1f\n" +
	"\vttl_seconds\x18\a \x01(\rR\n" +
	"ttlSeconds\"\xbf\x01\n" +
	"\rReserveResult\x12\"\n" +
	"\blease_id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aleaseId\x12\x1a\n" +
	"\baccepted\x18\x02 \x01(\bR\baccepted\x12#\n" +
	"\rreject_reason\x18\x03 \x01(\tR\frejectReason\x12I\n" +
	"\freject_class\x18\x04 \x01(\x0e2\x1c.spindle.mill.v1.RejectClassB\b\xbaH\x05\x82\x01\x02\x10\x01R\vrejectClass\"0\n" +
	"\x06Secret\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value\"d\n" +
	"\vCommitLease\x12\"\n" +
	"\blease_id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aleaseId\x121\n" +
	"\asecrets\x18\x02 \x03(\v2\x17.spindle.mill.v1.SecretR\asecrets\"/\n" +
	"\tCommitted\x12\"\n" +
	"\blease_id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aleaseId\"2\n" +
	"\fReleaseLease\x12\"\n" +
	"\blease_id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aleaseId\"K\n" +
	"\rCancelAttempt\x12\"\n" +
	"\blease_id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aleaseId\x12\x16\n" +
	"\x06reason\x18\x02 \x01(\tR\x06reason\"/\n" +
	"\tCancelAck\x12\"\n" +
	"\blease_id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aleaseId\"\x93\x01\n" +
	"\vStatusEvent\x12F\n" +
	"\x06status\x18\x01 \x01(\x0e2\".spindle.mill.v1.NonterminalStatusB\n" +
	"\xbaH\a\x82\x01\x04\x10\x01 \x00R\x06status\x12\x1f\n" +
	"\x05error\x18\x02 \x01(\tB\t\xbaH\x06r\x04(\x80\x80\x04R\x05error\x12\x1b\n" +
	"\texit_code\x18\x03 \x01(\x03R\bexitCode\"E\n" +
	"\vLogArtifact\x12\x19\n" +
	"\x03ref\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x03ref\x12\x1b\n" +
	"\x04hash\x18\x02 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x04hash\"\xd3\x01\n" +
	"\rAttemptResult\x12C\n" +
	"\x06status\x18\x01 \x01(\x0e2\x1f.spindle.mill.v1.TerminalStatusB\n" +
	"\xbaH\a\x82\x01\x04\x10\x01 \x00R\x06status\x12\x1f\n" +
	"\x05error\x18\x02 \x01(\tB\t\xbaH\x06r\x04(\x80\x80\x04R\x05error\x12\x1b\n" +
	"\texit_code\x18\x03 \x01(\x03R\bexitCode\x12?\n" +
	"\flog_artifact\x18\x04 \x01(\v2\x1c.spindle.mill.v1.LogArtifactR\vlogArtifact\"Q\n" +
	"\aLiveLog\x12\"\n" +
	"\blease_id\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aleaseId\x12\"\n" +
	"\braw_json\x18\x02 \x01(\fB\a\xbaH\x04z\x02\x10\x01R\arawJson\"\xe8\x01\n" +
	"\x05Event\x12\x1d\n" +
	"\x05seqno\x18\x01 \x01(\x04B\a\xbaH\x042\x02 \x00R\x05seqno\x12\"\n" +
	"\blease_id\x18\x02 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\aleaseId\x12A\n" +
	"\fstatus_event\x18\x03 \x01(\v2\x1c.spindle.mill.v1.StatusEventH\x00R\vstatusEvent\x12G\n" +
	"\x0eattempt_result\x18\x04 \x01(\v2\x1e.spindle.mill.v1.AttemptResultH\x00R\rattemptResultB\x10\n" +
	"\apayload\x12\x05\xbaH\x02\b\x01\"e\n" +
	"\n" +
	"EventBatch\x12\x1d\n" +
	"\x05epoch\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x05epoch\x128\n" +
	"\x06events\x18\x02 \x03(\v2\x16.spindle.mill.v1.EventB\b\xbaH\x05\x92\x01\x02\b\x01R\x06events\"D\n" +
	"\x03Ack\x12\x1d\n" +
	"\x05epoch\x18\x01 \x01(\tB\a\xbaH\x04r\x02\x10\x01R\x05epoch\x12\x1e\n" +
	"\vup_to_seqno\x18\x02 \x01(\x04R\tupToSeqno\"\xb8\a\n" +
	"\aMessage\x12,\n" +
	"\x05hello\x18\x01 \x01(\v2\x16.spindle.mill.v1.HelloR\x05hello\x12/\n" +
	"\x06resume\x18\x02 \x01(\v2\x17.spindle.mill.v1.ResumeR\x06resume\x12B\n" +
	"\rnode_snapshot\x18\x03 \x01(\v2\x1d.spindle.mill.v1.NodeSnapshotR\fnodeSnapshot\x12?\n" +
	"\freserve_seat\x18\x04 \x01(\v2\x1c.spindle.mill.v1.ReserveSeatR\vreserveSeat\x12E\n" +
	"\x0ereserve_result\x18\x05 \x01(\v2\x1e.spindle.mill.v1.ReserveResultR\rreserveResult\x12?\n" +
	"\fcommit_lease\x18\x06 \x01(\v2\x1c.spindle.mill.v1.CommitLeaseR\vcommitLease\x128\n" +
	"\tcommitted\x18\a \x01(\v2\x1a.spindle.mill.v1.CommittedR\tcommitted\x12B\n" +
	"\rrelease_lease\x18\b \x01(\v2\x1d.spindle.mill.v1.ReleaseLeaseR\freleaseLease\x12E\n" +
	"\x0ecancel_attempt\x18\t \x01(\v2\x1e.spindle.mill.v1.CancelAttemptR\rcancelAttempt\x129\n" +
	"\n" +
	"cancel_ack\x18\n" +
	" \x01(\v2\x1a.spindle.mill.v1.CancelAckR\tcancelAck\x12<\n" +
	"\vevent_batch\x18\v \x01(\v2\x1b.spindle.mill.v1.EventBatchR\n" +
	"eventBatch\x12&\n" +
	"\x03ack\x18\f \x01(\v2\x14.spindle.mill.v1.AckR\x03ack\x123\n" +
	"\blive_log\x18\r \x01(\v2\x18.spindle.mill.v1.LiveLogR\aliveLog:\xa5\x01\xbaH\xa1\x01\"\x9e\x01\n" +
	"\x05hello\n" +
	"\x06resume\n" +
	"\rnode_snapshot\n" +
	"\freserve_seat\n" +
	"\x0ereserve_result\n" +
	"\fcommit_lease\n" +
	"\tcommitted\n" +
	"\rrelease_lease\n" +
	"\x0ecancel_attempt\n" +
	"\n" +
	"cancel_ack\n" +
	"\vevent_batch\n" +
	"\x03ack\n" +
	"\blive_log\x10\x01*f\n" +
	"\vRejectClass\x12\x1c\n" +
	"\x18REJECT_CLASS_UNSPECIFIED\x10\x00\x12\x1a\n" +
	"\x16REJECT_CLASS_TRANSIENT\x10\x01\x12\x1d\n" +
	"\x19REJECT_CLASS_INCOMPATIBLE\x10\x02*D\n" +
	"\x11NonterminalStatus\x12\"\n" +
	"\x1eNONTERMINAL_STATUS_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aRUNNING\x10\x01*f\n" +
	"\x0eTerminalStatus\x12\x1f\n" +
	"\x1bTERMINAL_STATUS_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aSUCCESS\x10\x01\x12\n" +
	"\n" +
	"\x06FAILED\x10\x02\x12\v\n" +
	"\aTIMEOUT\x10\x03\x12\r\n" +
	"\tCANCELLED\x10\x04B0Z.tangled.org/core/spindle/mill/proto/gen;millv1b\x06proto3"

var (
	file_spindle_mill_v1_mill_proto_rawDescOnce sync.Once
	file_spindle_mill_v1_mill_proto_rawDescData []byte
)

func file_spindle_mill_v1_mill_proto_rawDescGZIP() []byte {
	file_spindle_mill_v1_mill_proto_rawDescOnce.Do(func() {
		file_spindle_mill_v1_mill_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_spindle_mill_v1_mill_proto_rawDesc), len(file_spindle_mill_v1_mill_proto_rawDesc)))
	})
	return file_spindle_mill_v1_mill_proto_rawDescData
}

var file_spindle_mill_v1_mill_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_spindle_mill_v1_mill_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
var file_spindle_mill_v1_mill_proto_goTypes = []any{
	(RejectClass)(0),           // 0: spindle.mill.v1.RejectClass
	(NonterminalStatus)(0),     // 1: spindle.mill.v1.NonterminalStatus
	(TerminalStatus)(0),        // 2: spindle.mill.v1.TerminalStatus
	(*Hello)(nil),              // 3: spindle.mill.v1.Hello
	(*Resume)(nil),             // 4: spindle.mill.v1.Resume
	(*EngineAvailability)(nil), // 5: spindle.mill.v1.EngineAvailability
	(*NodeSnapshot)(nil),       // 6: spindle.mill.v1.NodeSnapshot
	(*ReserveSeat)(nil),        // 7: spindle.mill.v1.ReserveSeat
	(*ReserveResult)(nil),      // 8: spindle.mill.v1.ReserveResult
	(*Secret)(nil),             // 9: spindle.mill.v1.Secret
	(*CommitLease)(nil),        // 10: spindle.mill.v1.CommitLease
	(*Committed)(nil),          // 11: spindle.mill.v1.Committed
	(*ReleaseLease)(nil),       // 12: spindle.mill.v1.ReleaseLease
	(*CancelAttempt)(nil),      // 13: spindle.mill.v1.CancelAttempt
	(*CancelAck)(nil),          // 14: spindle.mill.v1.CancelAck
	(*StatusEvent)(nil),        // 15: spindle.mill.v1.StatusEvent
	(*LogArtifact)(nil),        // 16: spindle.mill.v1.LogArtifact
	(*AttemptResult)(nil),      // 17: spindle.mill.v1.AttemptResult
	(*LiveLog)(nil),            // 18: spindle.mill.v1.LiveLog
	(*Event)(nil),              // 19: spindle.mill.v1.Event
	(*EventBatch)(nil),         // 20: spindle.mill.v1.EventBatch
	(*Ack)(nil),                // 21: spindle.mill.v1.Ack
	(*Message)(nil),            // 22: spindle.mill.v1.Message
	nil,                        // 23: spindle.mill.v1.EngineAvailability.LoadEntry
	nil,                        // 24: spindle.mill.v1.NodeSnapshot.EnginesEntry
}
var file_spindle_mill_v1_mill_proto_depIdxs = []int32{
	23, // 0: spindle.mill.v1.EngineAvailability.load:type_name -> spindle.mill.v1.EngineAvailability.LoadEntry
	24, // 1: spindle.mill.v1.NodeSnapshot.engines:type_name -> spindle.mill.v1.NodeSnapshot.EnginesEntry
	0,  // 2: spindle.mill.v1.ReserveResult.reject_class:type_name -> spindle.mill.v1.RejectClass
	9,  // 3: spindle.mill.v1.CommitLease.secrets:type_name -> spindle.mill.v1.Secret
	1,  // 4: spindle.mill.v1.StatusEvent.status:type_name -> spindle.mill.v1.NonterminalStatus
	2,  // 5: spindle.mill.v1.AttemptResult.status:type_name -> spindle.mill.v1.TerminalStatus
	16, // 6: spindle.mill.v1.AttemptResult.log_artifact:type_name -> spindle.mill.v1.LogArtifact
	15, // 7: spindle.mill.v1.Event.status_event:type_name -> spindle.mill.v1.StatusEvent
	17, // 8: spindle.mill.v1.Event.attempt_result:type_name -> spindle.mill.v1.AttemptResult
	19, // 9: spindle.mill.v1.EventBatch.events:type_name -> spindle.mill.v1.Event
	3,  // 10: spindle.mill.v1.Message.hello:type_name -> spindle.mill.v1.Hello
	4,  // 11: spindle.mill.v1.Message.resume:type_name -> spindle.mill.v1.Resume
	6,  // 12: spindle.mill.v1.Message.node_snapshot:type_name -> spindle.mill.v1.NodeSnapshot
	7,  // 13: spindle.mill.v1.Message.reserve_seat:type_name -> spindle.mill.v1.ReserveSeat
	8,  // 14: spindle.mill.v1.Message.reserve_result:type_name -> spindle.mill.v1.ReserveResult
	10, // 15: spindle.mill.v1.Message.commit_lease:type_name -> spindle.mill.v1.CommitLease
	11, // 16: spindle.mill.v1.Message.committed:type_name -> spindle.mill.v1.Committed
	12, // 17: spindle.mill.v1.Message.release_lease:type_name -> spindle.mill.v1.ReleaseLease
	13, // 18: spindle.mill.v1.Message.cancel_attempt:type_name -> spindle.mill.v1.CancelAttempt
	14, // 19: spindle.mill.v1.Message.cancel_ack:type_name -> spindle.mill.v1.CancelAck
	20, // 20: spindle.mill.v1.Message.event_batch:type_name -> spindle.mill.v1.EventBatch
	21, // 21: spindle.mill.v1.Message.ack:type_name -> spindle.mill.v1.Ack
	18, // 22: spindle.mill.v1.Message.live_log:type_name -> spindle.mill.v1.LiveLog
	5,  // 23: spindle.mill.v1.NodeSnapshot.EnginesEntry.value:type_name -> spindle.mill.v1.EngineAvailability
	24, // [24:24] is the sub-list for method output_type
	24, // [24:24] is the sub-list for method input_type
	24, // [24:24] is the sub-list for extension type_name
	24, // [24:24] is the sub-list for extension extendee
	0,  // [0:24] is the sub-list for field type_name
}

func init() { file_spindle_mill_v1_mill_proto_init() }
func file_spindle_mill_v1_mill_proto_init() {
	if File_spindle_mill_v1_mill_proto != nil {
		return
	}
	file_spindle_mill_v1_mill_proto_msgTypes[16].OneofWrappers = []any{
		(*Event_StatusEvent)(nil),
		(*Event_AttemptResult)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_spindle_mill_v1_mill_proto_rawDesc), len(file_spindle_mill_v1_mill_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   22,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_spindle_mill_v1_mill_proto_goTypes,
		DependencyIndexes: file_spindle_mill_v1_mill_proto_depIdxs,
		EnumInfos:         file_spindle_mill_v1_mill_proto_enumTypes,
		MessageInfos:      file_spindle_mill_v1_mill_proto_msgTypes,
	}.Build()
	File_spindle_mill_v1_mill_proto = out.File
	file_spindle_mill_v1_mill_proto_goTypes = nil
	file_spindle_mill_v1_mill_proto_depIdxs = nil
}
