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

package runtimev1

import (
	v1 "github.com/pingcap-inc/nexuscrm-contract/wire-go/gen/common/v1"
	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 ValueKind int32

const (
	ValueKind_VALUE_KIND_UNSPECIFIED ValueKind = 0
	ValueKind_VALUE_KIND_STRING      ValueKind = 1
	ValueKind_VALUE_KIND_BOOLEAN     ValueKind = 2
	ValueKind_VALUE_KIND_INTEGER     ValueKind = 3
	ValueKind_VALUE_KIND_DECIMAL     ValueKind = 4
	ValueKind_VALUE_KIND_DATE        ValueKind = 5
	ValueKind_VALUE_KIND_DATETIME    ValueKind = 6
	ValueKind_VALUE_KIND_REFERENCE   ValueKind = 7
)

// Enum value maps for ValueKind.
var (
	ValueKind_name = map[int32]string{
		0: "VALUE_KIND_UNSPECIFIED",
		1: "VALUE_KIND_STRING",
		2: "VALUE_KIND_BOOLEAN",
		3: "VALUE_KIND_INTEGER",
		4: "VALUE_KIND_DECIMAL",
		5: "VALUE_KIND_DATE",
		6: "VALUE_KIND_DATETIME",
		7: "VALUE_KIND_REFERENCE",
	}
	ValueKind_value = map[string]int32{
		"VALUE_KIND_UNSPECIFIED": 0,
		"VALUE_KIND_STRING":      1,
		"VALUE_KIND_BOOLEAN":     2,
		"VALUE_KIND_INTEGER":     3,
		"VALUE_KIND_DECIMAL":     4,
		"VALUE_KIND_DATE":        5,
		"VALUE_KIND_DATETIME":    6,
		"VALUE_KIND_REFERENCE":   7,
	}
)

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

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

func (ValueKind) Descriptor() protoreflect.EnumDescriptor {
	return file_runtime_v1_records_proto_enumTypes[0].Descriptor()
}

func (ValueKind) Type() protoreflect.EnumType {
	return &file_runtime_v1_records_proto_enumTypes[0]
}

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

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

// Identity and authority are authenticated transport context. They are never
// caller-selected semantic request fields.
type ReadSelectedRootRequest struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	ObjectId           string                 `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
	RecordId           string                 `protobuf:"bytes,2,opt,name=record_id,json=recordId,proto3" json:"record_id,omitempty"`
	SelectedRootFields []string               `protobuf:"bytes,3,rep,name=selected_root_fields,json=selectedRootFields,proto3" json:"selected_root_fields,omitempty"`
	MinCatalogRevision *uint64                `protobuf:"varint,4,opt,name=min_catalog_revision,json=minCatalogRevision,proto3,oneof" json:"min_catalog_revision,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*ReadSelectedRootRequest) ProtoMessage() {}

func (x *ReadSelectedRootRequest) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 ReadSelectedRootRequest.ProtoReflect.Descriptor instead.
func (*ReadSelectedRootRequest) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{0}
}

func (x *ReadSelectedRootRequest) GetObjectId() string {
	if x != nil {
		return x.ObjectId
	}
	return ""
}

func (x *ReadSelectedRootRequest) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

func (x *ReadSelectedRootRequest) GetSelectedRootFields() []string {
	if x != nil {
		return x.SelectedRootFields
	}
	return nil
}

func (x *ReadSelectedRootRequest) GetMinCatalogRevision() uint64 {
	if x != nil && x.MinCatalogRevision != nil {
		return *x.MinCatalogRevision
	}
	return 0
}

type DecimalValue struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Coefficient   string                 `protobuf:"bytes,1,opt,name=coefficient,proto3" json:"coefficient,omitempty"`
	Scale         uint32                 `protobuf:"varint,2,opt,name=scale,proto3" json:"scale,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DecimalValue) ProtoMessage() {}

func (x *DecimalValue) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 DecimalValue.ProtoReflect.Descriptor instead.
func (*DecimalValue) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{1}
}

func (x *DecimalValue) GetCoefficient() string {
	if x != nil {
		return x.Coefficient
	}
	return ""
}

func (x *DecimalValue) GetScale() uint32 {
	if x != nil {
		return x.Scale
	}
	return 0
}

type DateValue struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	CalendarDate  string                 `protobuf:"bytes,1,opt,name=calendar_date,json=calendarDate,proto3" json:"calendar_date,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DateValue) ProtoMessage() {}

func (x *DateValue) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 DateValue.ProtoReflect.Descriptor instead.
func (*DateValue) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{2}
}

func (x *DateValue) GetCalendarDate() string {
	if x != nil {
		return x.CalendarDate
	}
	return ""
}

type DateTimeValue struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UtcRfc3339    string                 `protobuf:"bytes,1,opt,name=utc_rfc3339,json=utcRfc3339,proto3" json:"utc_rfc3339,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DateTimeValue) ProtoMessage() {}

func (x *DateTimeValue) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 DateTimeValue.ProtoReflect.Descriptor instead.
func (*DateTimeValue) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{3}
}

func (x *DateTimeValue) GetUtcRfc3339() string {
	if x != nil {
		return x.UtcRfc3339
	}
	return ""
}

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

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

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

func (*ReferenceValue) ProtoMessage() {}

func (x *ReferenceValue) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 ReferenceValue.ProtoReflect.Descriptor instead.
func (*ReferenceValue) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{4}
}

func (x *ReferenceValue) GetIdentifier() string {
	if x != nil {
		return x.Identifier
	}
	return ""
}

type NullValue struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*NullValue) ProtoMessage() {}

func (x *NullValue) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 NullValue.ProtoReflect.Descriptor instead.
func (*NullValue) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{5}
}

// Exactly one value arm is present. Null is explicit; an absent or FLS-hidden
// field has no SelectedRootField entry.
type SelectedRootField struct {
	state        protoimpl.MessageState `protogen:"open.v1"`
	Name         string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	DeclaredKind ValueKind              `protobuf:"varint,2,opt,name=declared_kind,json=declaredKind,proto3,enum=nexuscrm.runtime.v1.ValueKind" json:"declared_kind,omitempty"`
	// Types that are valid to be assigned to Value:
	//
	//	*SelectedRootField_StringValue
	//	*SelectedRootField_BooleanValue
	//	*SelectedRootField_IntegerValue
	//	*SelectedRootField_DecimalValue
	//	*SelectedRootField_DateValue
	//	*SelectedRootField_DatetimeValue
	//	*SelectedRootField_ReferenceValue
	//	*SelectedRootField_NullValue
	Value         isSelectedRootField_Value `protobuf_oneof:"value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SelectedRootField) ProtoMessage() {}

func (x *SelectedRootField) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 SelectedRootField.ProtoReflect.Descriptor instead.
func (*SelectedRootField) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{6}
}

func (x *SelectedRootField) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *SelectedRootField) GetDeclaredKind() ValueKind {
	if x != nil {
		return x.DeclaredKind
	}
	return ValueKind_VALUE_KIND_UNSPECIFIED
}

func (x *SelectedRootField) GetValue() isSelectedRootField_Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *SelectedRootField) GetStringValue() string {
	if x != nil {
		if x, ok := x.Value.(*SelectedRootField_StringValue); ok {
			return x.StringValue
		}
	}
	return ""
}

func (x *SelectedRootField) GetBooleanValue() bool {
	if x != nil {
		if x, ok := x.Value.(*SelectedRootField_BooleanValue); ok {
			return x.BooleanValue
		}
	}
	return false
}

func (x *SelectedRootField) GetIntegerValue() int64 {
	if x != nil {
		if x, ok := x.Value.(*SelectedRootField_IntegerValue); ok {
			return x.IntegerValue
		}
	}
	return 0
}

func (x *SelectedRootField) GetDecimalValue() *DecimalValue {
	if x != nil {
		if x, ok := x.Value.(*SelectedRootField_DecimalValue); ok {
			return x.DecimalValue
		}
	}
	return nil
}

func (x *SelectedRootField) GetDateValue() *DateValue {
	if x != nil {
		if x, ok := x.Value.(*SelectedRootField_DateValue); ok {
			return x.DateValue
		}
	}
	return nil
}

func (x *SelectedRootField) GetDatetimeValue() *DateTimeValue {
	if x != nil {
		if x, ok := x.Value.(*SelectedRootField_DatetimeValue); ok {
			return x.DatetimeValue
		}
	}
	return nil
}

func (x *SelectedRootField) GetReferenceValue() *ReferenceValue {
	if x != nil {
		if x, ok := x.Value.(*SelectedRootField_ReferenceValue); ok {
			return x.ReferenceValue
		}
	}
	return nil
}

func (x *SelectedRootField) GetNullValue() *NullValue {
	if x != nil {
		if x, ok := x.Value.(*SelectedRootField_NullValue); ok {
			return x.NullValue
		}
	}
	return nil
}

type isSelectedRootField_Value interface {
	isSelectedRootField_Value()
}

type SelectedRootField_StringValue struct {
	StringValue string `protobuf:"bytes,3,opt,name=string_value,json=stringValue,proto3,oneof"`
}

type SelectedRootField_BooleanValue struct {
	BooleanValue bool `protobuf:"varint,4,opt,name=boolean_value,json=booleanValue,proto3,oneof"`
}

type SelectedRootField_IntegerValue struct {
	IntegerValue int64 `protobuf:"zigzag64,5,opt,name=integer_value,json=integerValue,proto3,oneof"`
}

type SelectedRootField_DecimalValue struct {
	DecimalValue *DecimalValue `protobuf:"bytes,6,opt,name=decimal_value,json=decimalValue,proto3,oneof"`
}

type SelectedRootField_DateValue struct {
	DateValue *DateValue `protobuf:"bytes,7,opt,name=date_value,json=dateValue,proto3,oneof"`
}

type SelectedRootField_DatetimeValue struct {
	DatetimeValue *DateTimeValue `protobuf:"bytes,8,opt,name=datetime_value,json=datetimeValue,proto3,oneof"`
}

type SelectedRootField_ReferenceValue struct {
	ReferenceValue *ReferenceValue `protobuf:"bytes,9,opt,name=reference_value,json=referenceValue,proto3,oneof"`
}

type SelectedRootField_NullValue struct {
	NullValue *NullValue `protobuf:"bytes,10,opt,name=null_value,json=nullValue,proto3,oneof"`
}

func (*SelectedRootField_StringValue) isSelectedRootField_Value() {}

func (*SelectedRootField_BooleanValue) isSelectedRootField_Value() {}

func (*SelectedRootField_IntegerValue) isSelectedRootField_Value() {}

func (*SelectedRootField_DecimalValue) isSelectedRootField_Value() {}

func (*SelectedRootField_DateValue) isSelectedRootField_Value() {}

func (*SelectedRootField_DatetimeValue) isSelectedRootField_Value() {}

func (*SelectedRootField_ReferenceValue) isSelectedRootField_Value() {}

func (*SelectedRootField_NullValue) isSelectedRootField_Value() {}

type ReadSelectedRootResponse struct {
	state    protoimpl.MessageState `protogen:"open.v1"`
	RecordId string                 `protobuf:"bytes,1,opt,name=record_id,json=recordId,proto3" json:"record_id,omitempty"`
	// Canonical field API-name order, ascending by bytewise UTF-8 comparison.
	Fields        []*SelectedRootField    `protobuf:"bytes,2,rep,name=fields,proto3" json:"fields,omitempty"`
	Receipts      *v1.ConsistencyReceipts `protobuf:"bytes,3,opt,name=receipts,proto3" json:"receipts,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReadSelectedRootResponse) ProtoMessage() {}

func (x *ReadSelectedRootResponse) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 ReadSelectedRootResponse.ProtoReflect.Descriptor instead.
func (*ReadSelectedRootResponse) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{7}
}

func (x *ReadSelectedRootResponse) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

func (x *ReadSelectedRootResponse) GetFields() []*SelectedRootField {
	if x != nil {
		return x.Fields
	}
	return nil
}

func (x *ReadSelectedRootResponse) GetReceipts() *v1.ConsistencyReceipts {
	if x != nil {
		return x.Receipts
	}
	return nil
}

// Identity and authority are authenticated transport context. They are never
// caller-selected semantic request fields. An absent object_id asks Runtime to
// resolve every record identifier internally as part of this one coarse RPC.
type EvaluateRecordAccessRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ObjectId      *string                `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3,oneof" json:"object_id,omitempty"`
	RecordIds     []string               `protobuf:"bytes,2,rep,name=record_ids,json=recordIds,proto3" json:"record_ids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluateRecordAccessRequest) ProtoMessage() {}

func (x *EvaluateRecordAccessRequest) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 EvaluateRecordAccessRequest.ProtoReflect.Descriptor instead.
func (*EvaluateRecordAccessRequest) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{8}
}

func (x *EvaluateRecordAccessRequest) GetObjectId() string {
	if x != nil && x.ObjectId != nil {
		return *x.ObjectId
	}
	return ""
}

func (x *EvaluateRecordAccessRequest) GetRecordIds() []string {
	if x != nil {
		return x.RecordIds
	}
	return nil
}

// A result exists only for a record the caller may read. Missing records,
// read-denied records, unknown object resolution, and forbidden resolved object
// groups are all represented by absence, never by read=false.
type RecordAccessResult struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RecordId      string                 `protobuf:"bytes,1,opt,name=record_id,json=recordId,proto3" json:"record_id,omitempty"`
	Read          bool                   `protobuf:"varint,2,opt,name=read,proto3" json:"read,omitempty"`
	Update        bool                   `protobuf:"varint,3,opt,name=update,proto3" json:"update,omitempty"`
	Delete        bool                   `protobuf:"varint,4,opt,name=delete,proto3" json:"delete,omitempty"`
	Locked        bool                   `protobuf:"varint,5,opt,name=locked,proto3" json:"locked,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RecordAccessResult) ProtoMessage() {}

func (x *RecordAccessResult) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 RecordAccessResult.ProtoReflect.Descriptor instead.
func (*RecordAccessResult) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{9}
}

func (x *RecordAccessResult) GetRecordId() string {
	if x != nil {
		return x.RecordId
	}
	return ""
}

func (x *RecordAccessResult) GetRead() bool {
	if x != nil {
		return x.Read
	}
	return false
}

func (x *RecordAccessResult) GetUpdate() bool {
	if x != nil {
		return x.Update
	}
	return false
}

func (x *RecordAccessResult) GetDelete() bool {
	if x != nil {
		return x.Delete
	}
	return false
}

func (x *RecordAccessResult) GetLocked() bool {
	if x != nil {
		return x.Locked
	}
	return false
}

type EvaluateRecordAccessResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique canonical results, ascending by bytewise UTF-8 record identifier.
	Results       []*RecordAccessResult   `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
	Receipts      *v1.ConsistencyReceipts `protobuf:"bytes,2,opt,name=receipts,proto3" json:"receipts,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*EvaluateRecordAccessResponse) ProtoMessage() {}

func (x *EvaluateRecordAccessResponse) ProtoReflect() protoreflect.Message {
	mi := &file_runtime_v1_records_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 EvaluateRecordAccessResponse.ProtoReflect.Descriptor instead.
func (*EvaluateRecordAccessResponse) Descriptor() ([]byte, []int) {
	return file_runtime_v1_records_proto_rawDescGZIP(), []int{10}
}

func (x *EvaluateRecordAccessResponse) GetResults() []*RecordAccessResult {
	if x != nil {
		return x.Results
	}
	return nil
}

func (x *EvaluateRecordAccessResponse) GetReceipts() *v1.ConsistencyReceipts {
	if x != nil {
		return x.Receipts
	}
	return nil
}

var File_runtime_v1_records_proto protoreflect.FileDescriptor

const file_runtime_v1_records_proto_rawDesc = "" +
	"\n" +
	"\x18runtime/v1/records.proto\x12\x13nexuscrm.runtime.v1\x1a\x16common/v1/common.proto\"\xd5\x01\n" +
	"\x17ReadSelectedRootRequest\x12\x1b\n" +
	"\tobject_id\x18\x01 \x01(\tR\bobjectId\x12\x1b\n" +
	"\trecord_id\x18\x02 \x01(\tR\brecordId\x120\n" +
	"\x14selected_root_fields\x18\x03 \x03(\tR\x12selectedRootFields\x125\n" +
	"\x14min_catalog_revision\x18\x04 \x01(\x04H\x00R\x12minCatalogRevision\x88\x01\x01B\x17\n" +
	"\x15_min_catalog_revision\"F\n" +
	"\fDecimalValue\x12 \n" +
	"\vcoefficient\x18\x01 \x01(\tR\vcoefficient\x12\x14\n" +
	"\x05scale\x18\x02 \x01(\rR\x05scale\"0\n" +
	"\tDateValue\x12#\n" +
	"\rcalendar_date\x18\x01 \x01(\tR\fcalendarDate\"0\n" +
	"\rDateTimeValue\x12\x1f\n" +
	"\vutc_rfc3339\x18\x01 \x01(\tR\n" +
	"utcRfc3339\"0\n" +
	"\x0eReferenceValue\x12\x1e\n" +
	"\n" +
	"identifier\x18\x01 \x01(\tR\n" +
	"identifier\"\v\n" +
	"\tNullValue\"\xd1\x04\n" +
	"\x11SelectedRootField\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12C\n" +
	"\rdeclared_kind\x18\x02 \x01(\x0e2\x1e.nexuscrm.runtime.v1.ValueKindR\fdeclaredKind\x12#\n" +
	"\fstring_value\x18\x03 \x01(\tH\x00R\vstringValue\x12%\n" +
	"\rboolean_value\x18\x04 \x01(\bH\x00R\fbooleanValue\x12%\n" +
	"\rinteger_value\x18\x05 \x01(\x12H\x00R\fintegerValue\x12H\n" +
	"\rdecimal_value\x18\x06 \x01(\v2!.nexuscrm.runtime.v1.DecimalValueH\x00R\fdecimalValue\x12?\n" +
	"\n" +
	"date_value\x18\a \x01(\v2\x1e.nexuscrm.runtime.v1.DateValueH\x00R\tdateValue\x12K\n" +
	"\x0edatetime_value\x18\b \x01(\v2\".nexuscrm.runtime.v1.DateTimeValueH\x00R\rdatetimeValue\x12N\n" +
	"\x0freference_value\x18\t \x01(\v2#.nexuscrm.runtime.v1.ReferenceValueH\x00R\x0ereferenceValue\x12?\n" +
	"\n" +
	"null_value\x18\n" +
	" \x01(\v2\x1e.nexuscrm.runtime.v1.NullValueH\x00R\tnullValueB\a\n" +
	"\x05value\"\xbc\x01\n" +
	"\x18ReadSelectedRootResponse\x12\x1b\n" +
	"\trecord_id\x18\x01 \x01(\tR\brecordId\x12>\n" +
	"\x06fields\x18\x02 \x03(\v2&.nexuscrm.runtime.v1.SelectedRootFieldR\x06fields\x12C\n" +
	"\breceipts\x18\x03 \x01(\v2'.nexuscrm.common.v1.ConsistencyReceiptsR\breceipts\"l\n" +
	"\x1bEvaluateRecordAccessRequest\x12 \n" +
	"\tobject_id\x18\x01 \x01(\tH\x00R\bobjectId\x88\x01\x01\x12\x1d\n" +
	"\n" +
	"record_ids\x18\x02 \x03(\tR\trecordIdsB\f\n" +
	"\n" +
	"_object_id\"\x8d\x01\n" +
	"\x12RecordAccessResult\x12\x1b\n" +
	"\trecord_id\x18\x01 \x01(\tR\brecordId\x12\x12\n" +
	"\x04read\x18\x02 \x01(\bR\x04read\x12\x16\n" +
	"\x06update\x18\x03 \x01(\bR\x06update\x12\x16\n" +
	"\x06delete\x18\x04 \x01(\bR\x06delete\x12\x16\n" +
	"\x06locked\x18\x05 \x01(\bR\x06locked\"\xa6\x01\n" +
	"\x1cEvaluateRecordAccessResponse\x12A\n" +
	"\aresults\x18\x01 \x03(\v2'.nexuscrm.runtime.v1.RecordAccessResultR\aresults\x12C\n" +
	"\breceipts\x18\x02 \x01(\v2'.nexuscrm.common.v1.ConsistencyReceiptsR\breceipts*\xce\x01\n" +
	"\tValueKind\x12\x1a\n" +
	"\x16VALUE_KIND_UNSPECIFIED\x10\x00\x12\x15\n" +
	"\x11VALUE_KIND_STRING\x10\x01\x12\x16\n" +
	"\x12VALUE_KIND_BOOLEAN\x10\x02\x12\x16\n" +
	"\x12VALUE_KIND_INTEGER\x10\x03\x12\x16\n" +
	"\x12VALUE_KIND_DECIMAL\x10\x04\x12\x13\n" +
	"\x0fVALUE_KIND_DATE\x10\x05\x12\x17\n" +
	"\x13VALUE_KIND_DATETIME\x10\x06\x12\x18\n" +
	"\x14VALUE_KIND_REFERENCE\x10\a2\xfe\x01\n" +
	"\x0eRecordsService\x12o\n" +
	"\x10ReadSelectedRoot\x12,.nexuscrm.runtime.v1.ReadSelectedRootRequest\x1a-.nexuscrm.runtime.v1.ReadSelectedRootResponse\x12{\n" +
	"\x14EvaluateRecordAccess\x120.nexuscrm.runtime.v1.EvaluateRecordAccessRequest\x1a1.nexuscrm.runtime.v1.EvaluateRecordAccessResponseBKZIgithub.com/pingcap-inc/nexuscrm-contract/wire-go/gen/runtime/v1;runtimev1b\x06proto3"

var (
	file_runtime_v1_records_proto_rawDescOnce sync.Once
	file_runtime_v1_records_proto_rawDescData []byte
)

func file_runtime_v1_records_proto_rawDescGZIP() []byte {
	file_runtime_v1_records_proto_rawDescOnce.Do(func() {
		file_runtime_v1_records_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_runtime_v1_records_proto_rawDesc), len(file_runtime_v1_records_proto_rawDesc)))
	})
	return file_runtime_v1_records_proto_rawDescData
}

var file_runtime_v1_records_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_runtime_v1_records_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_runtime_v1_records_proto_goTypes = []any{
	(ValueKind)(0),                       // 0: nexuscrm.runtime.v1.ValueKind
	(*ReadSelectedRootRequest)(nil),      // 1: nexuscrm.runtime.v1.ReadSelectedRootRequest
	(*DecimalValue)(nil),                 // 2: nexuscrm.runtime.v1.DecimalValue
	(*DateValue)(nil),                    // 3: nexuscrm.runtime.v1.DateValue
	(*DateTimeValue)(nil),                // 4: nexuscrm.runtime.v1.DateTimeValue
	(*ReferenceValue)(nil),               // 5: nexuscrm.runtime.v1.ReferenceValue
	(*NullValue)(nil),                    // 6: nexuscrm.runtime.v1.NullValue
	(*SelectedRootField)(nil),            // 7: nexuscrm.runtime.v1.SelectedRootField
	(*ReadSelectedRootResponse)(nil),     // 8: nexuscrm.runtime.v1.ReadSelectedRootResponse
	(*EvaluateRecordAccessRequest)(nil),  // 9: nexuscrm.runtime.v1.EvaluateRecordAccessRequest
	(*RecordAccessResult)(nil),           // 10: nexuscrm.runtime.v1.RecordAccessResult
	(*EvaluateRecordAccessResponse)(nil), // 11: nexuscrm.runtime.v1.EvaluateRecordAccessResponse
	(*v1.ConsistencyReceipts)(nil),       // 12: nexuscrm.common.v1.ConsistencyReceipts
}
var file_runtime_v1_records_proto_depIdxs = []int32{
	0,  // 0: nexuscrm.runtime.v1.SelectedRootField.declared_kind:type_name -> nexuscrm.runtime.v1.ValueKind
	2,  // 1: nexuscrm.runtime.v1.SelectedRootField.decimal_value:type_name -> nexuscrm.runtime.v1.DecimalValue
	3,  // 2: nexuscrm.runtime.v1.SelectedRootField.date_value:type_name -> nexuscrm.runtime.v1.DateValue
	4,  // 3: nexuscrm.runtime.v1.SelectedRootField.datetime_value:type_name -> nexuscrm.runtime.v1.DateTimeValue
	5,  // 4: nexuscrm.runtime.v1.SelectedRootField.reference_value:type_name -> nexuscrm.runtime.v1.ReferenceValue
	6,  // 5: nexuscrm.runtime.v1.SelectedRootField.null_value:type_name -> nexuscrm.runtime.v1.NullValue
	7,  // 6: nexuscrm.runtime.v1.ReadSelectedRootResponse.fields:type_name -> nexuscrm.runtime.v1.SelectedRootField
	12, // 7: nexuscrm.runtime.v1.ReadSelectedRootResponse.receipts:type_name -> nexuscrm.common.v1.ConsistencyReceipts
	10, // 8: nexuscrm.runtime.v1.EvaluateRecordAccessResponse.results:type_name -> nexuscrm.runtime.v1.RecordAccessResult
	12, // 9: nexuscrm.runtime.v1.EvaluateRecordAccessResponse.receipts:type_name -> nexuscrm.common.v1.ConsistencyReceipts
	1,  // 10: nexuscrm.runtime.v1.RecordsService.ReadSelectedRoot:input_type -> nexuscrm.runtime.v1.ReadSelectedRootRequest
	9,  // 11: nexuscrm.runtime.v1.RecordsService.EvaluateRecordAccess:input_type -> nexuscrm.runtime.v1.EvaluateRecordAccessRequest
	8,  // 12: nexuscrm.runtime.v1.RecordsService.ReadSelectedRoot:output_type -> nexuscrm.runtime.v1.ReadSelectedRootResponse
	11, // 13: nexuscrm.runtime.v1.RecordsService.EvaluateRecordAccess:output_type -> nexuscrm.runtime.v1.EvaluateRecordAccessResponse
	12, // [12:14] is the sub-list for method output_type
	10, // [10:12] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_runtime_v1_records_proto_init() }
func file_runtime_v1_records_proto_init() {
	if File_runtime_v1_records_proto != nil {
		return
	}
	file_runtime_v1_records_proto_msgTypes[0].OneofWrappers = []any{}
	file_runtime_v1_records_proto_msgTypes[6].OneofWrappers = []any{
		(*SelectedRootField_StringValue)(nil),
		(*SelectedRootField_BooleanValue)(nil),
		(*SelectedRootField_IntegerValue)(nil),
		(*SelectedRootField_DecimalValue)(nil),
		(*SelectedRootField_DateValue)(nil),
		(*SelectedRootField_DatetimeValue)(nil),
		(*SelectedRootField_ReferenceValue)(nil),
		(*SelectedRootField_NullValue)(nil),
	}
	file_runtime_v1_records_proto_msgTypes[8].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_runtime_v1_records_proto_rawDesc), len(file_runtime_v1_records_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   11,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_runtime_v1_records_proto_goTypes,
		DependencyIndexes: file_runtime_v1_records_proto_depIdxs,
		EnumInfos:         file_runtime_v1_records_proto_enumTypes,
		MessageInfos:      file_runtime_v1_records_proto_msgTypes,
	}.Build()
	File_runtime_v1_records_proto = out.File
	file_runtime_v1_records_proto_goTypes = nil
	file_runtime_v1_records_proto_depIdxs = nil
}
