// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        (unknown)
// source: runtime/v1/record_view.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 RecordViewSelectorKind int32

const (
	RecordViewSelectorKind_RECORD_VIEW_SELECTOR_KIND_UNSPECIFIED RecordViewSelectorKind = 0
	RecordViewSelectorKind_RECORD_VIEW_SELECTOR_KIND_RECORD_ID   RecordViewSelectorKind = 1
	RecordViewSelectorKind_RECORD_VIEW_SELECTOR_KIND_FIELD_EQUAL RecordViewSelectorKind = 2
)

// Enum value maps for RecordViewSelectorKind.
var (
	RecordViewSelectorKind_name = map[int32]string{
		0: "RECORD_VIEW_SELECTOR_KIND_UNSPECIFIED",
		1: "RECORD_VIEW_SELECTOR_KIND_RECORD_ID",
		2: "RECORD_VIEW_SELECTOR_KIND_FIELD_EQUAL",
	}
	RecordViewSelectorKind_value = map[string]int32{
		"RECORD_VIEW_SELECTOR_KIND_UNSPECIFIED": 0,
		"RECORD_VIEW_SELECTOR_KIND_RECORD_ID":   1,
		"RECORD_VIEW_SELECTOR_KIND_FIELD_EQUAL": 2,
	}
)

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

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

func (RecordViewSelectorKind) Descriptor() protoreflect.EnumDescriptor {
	return file_runtime_v1_record_view_proto_enumTypes[0].Descriptor()
}

func (RecordViewSelectorKind) Type() protoreflect.EnumType {
	return &file_runtime_v1_record_view_proto_enumTypes[0]
}

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

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

type RecordViewProjection int32

const (
	RecordViewProjection_RECORD_VIEW_PROJECTION_UNSPECIFIED   RecordViewProjection = 0
	RecordViewProjection_RECORD_VIEW_PROJECTION_ROOT          RecordViewProjection = 1
	RecordViewProjection_RECORD_VIEW_PROJECTION_ENRICHED_VIEW RecordViewProjection = 2
)

// Enum value maps for RecordViewProjection.
var (
	RecordViewProjection_name = map[int32]string{
		0: "RECORD_VIEW_PROJECTION_UNSPECIFIED",
		1: "RECORD_VIEW_PROJECTION_ROOT",
		2: "RECORD_VIEW_PROJECTION_ENRICHED_VIEW",
	}
	RecordViewProjection_value = map[string]int32{
		"RECORD_VIEW_PROJECTION_UNSPECIFIED":   0,
		"RECORD_VIEW_PROJECTION_ROOT":          1,
		"RECORD_VIEW_PROJECTION_ENRICHED_VIEW": 2,
	}
)

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

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

func (RecordViewProjection) Descriptor() protoreflect.EnumDescriptor {
	return file_runtime_v1_record_view_proto_enumTypes[1].Descriptor()
}

func (RecordViewProjection) Type() protoreflect.EnumType {
	return &file_runtime_v1_record_view_proto_enumTypes[1]
}

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

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

type RecordViewWorkspaceSection int32

const (
	RecordViewWorkspaceSection_RECORD_VIEW_WORKSPACE_SECTION_UNSPECIFIED             RecordViewWorkspaceSection = 0
	RecordViewWorkspaceSection_RECORD_VIEW_WORKSPACE_SECTION_SYSTEM_PERMISSIONS      RecordViewWorkspaceSection = 1
	RecordViewWorkspaceSection_RECORD_VIEW_WORKSPACE_SECTION_CUSTOM_PERMISSIONS      RecordViewWorkspaceSection = 2
	RecordViewWorkspaceSection_RECORD_VIEW_WORKSPACE_SECTION_OBJECT_PERMISSIONS      RecordViewWorkspaceSection = 3
	RecordViewWorkspaceSection_RECORD_VIEW_WORKSPACE_SECTION_FIELD_PERMISSIONS       RecordViewWorkspaceSection = 4
	RecordViewWorkspaceSection_RECORD_VIEW_WORKSPACE_SECTION_RECORD_TYPE_PERMISSIONS RecordViewWorkspaceSection = 5
)

// Enum value maps for RecordViewWorkspaceSection.
var (
	RecordViewWorkspaceSection_name = map[int32]string{
		0: "RECORD_VIEW_WORKSPACE_SECTION_UNSPECIFIED",
		1: "RECORD_VIEW_WORKSPACE_SECTION_SYSTEM_PERMISSIONS",
		2: "RECORD_VIEW_WORKSPACE_SECTION_CUSTOM_PERMISSIONS",
		3: "RECORD_VIEW_WORKSPACE_SECTION_OBJECT_PERMISSIONS",
		4: "RECORD_VIEW_WORKSPACE_SECTION_FIELD_PERMISSIONS",
		5: "RECORD_VIEW_WORKSPACE_SECTION_RECORD_TYPE_PERMISSIONS",
	}
	RecordViewWorkspaceSection_value = map[string]int32{
		"RECORD_VIEW_WORKSPACE_SECTION_UNSPECIFIED":             0,
		"RECORD_VIEW_WORKSPACE_SECTION_SYSTEM_PERMISSIONS":      1,
		"RECORD_VIEW_WORKSPACE_SECTION_CUSTOM_PERMISSIONS":      2,
		"RECORD_VIEW_WORKSPACE_SECTION_OBJECT_PERMISSIONS":      3,
		"RECORD_VIEW_WORKSPACE_SECTION_FIELD_PERMISSIONS":       4,
		"RECORD_VIEW_WORKSPACE_SECTION_RECORD_TYPE_PERMISSIONS": 5,
	}
)

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

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

func (RecordViewWorkspaceSection) Descriptor() protoreflect.EnumDescriptor {
	return file_runtime_v1_record_view_proto_enumTypes[2].Descriptor()
}

func (RecordViewWorkspaceSection) Type() protoreflect.EnumType {
	return &file_runtime_v1_record_view_proto_enumTypes[2]
}

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

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

type RecordAttachmentSourceOutcome int32

const (
	RecordAttachmentSourceOutcome_RECORD_ATTACHMENT_SOURCE_OUTCOME_UNSPECIFIED RecordAttachmentSourceOutcome = 0
	RecordAttachmentSourceOutcome_RECORD_ATTACHMENT_SOURCE_OUTCOME_NOT_FOUND   RecordAttachmentSourceOutcome = 1
	RecordAttachmentSourceOutcome_RECORD_ATTACHMENT_SOURCE_OUTCOME_UNAVAILABLE RecordAttachmentSourceOutcome = 2
	RecordAttachmentSourceOutcome_RECORD_ATTACHMENT_SOURCE_OUTCOME_RESOLVED    RecordAttachmentSourceOutcome = 3
)

// Enum value maps for RecordAttachmentSourceOutcome.
var (
	RecordAttachmentSourceOutcome_name = map[int32]string{
		0: "RECORD_ATTACHMENT_SOURCE_OUTCOME_UNSPECIFIED",
		1: "RECORD_ATTACHMENT_SOURCE_OUTCOME_NOT_FOUND",
		2: "RECORD_ATTACHMENT_SOURCE_OUTCOME_UNAVAILABLE",
		3: "RECORD_ATTACHMENT_SOURCE_OUTCOME_RESOLVED",
	}
	RecordAttachmentSourceOutcome_value = map[string]int32{
		"RECORD_ATTACHMENT_SOURCE_OUTCOME_UNSPECIFIED": 0,
		"RECORD_ATTACHMENT_SOURCE_OUTCOME_NOT_FOUND":   1,
		"RECORD_ATTACHMENT_SOURCE_OUTCOME_UNAVAILABLE": 2,
		"RECORD_ATTACHMENT_SOURCE_OUTCOME_RESOLVED":    3,
	}
)

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

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

func (RecordAttachmentSourceOutcome) Descriptor() protoreflect.EnumDescriptor {
	return file_runtime_v1_record_view_proto_enumTypes[3].Descriptor()
}

func (RecordAttachmentSourceOutcome) Type() protoreflect.EnumType {
	return &file_runtime_v1_record_view_proto_enumTypes[3]
}

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

// Deprecated: Use RecordAttachmentSourceOutcome.Descriptor instead.
func (RecordAttachmentSourceOutcome) EnumDescriptor() ([]byte, []int) {
	return file_runtime_v1_record_view_proto_rawDescGZIP(), []int{3}
}

type RecordViewSelector struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Kind          RecordViewSelectorKind `protobuf:"varint,1,opt,name=kind,proto3,enum=nexuscrm.runtime.v1.RecordViewSelectorKind" json:"kind,omitempty"`
	RecordId      string                 `protobuf:"bytes,2,opt,name=record_id,json=recordId,proto3" json:"record_id,omitempty"`
	FieldId       string                 `protobuf:"bytes,3,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"`
	FieldValue    string                 `protobuf:"bytes,4,opt,name=field_value,json=fieldValue,proto3" json:"field_value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RecordViewSelector) ProtoMessage() {}

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

func (x *RecordViewSelector) GetKind() RecordViewSelectorKind {
	if x != nil {
		return x.Kind
	}
	return RecordViewSelectorKind_RECORD_VIEW_SELECTOR_KIND_UNSPECIFIED
}

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

func (x *RecordViewSelector) GetFieldId() string {
	if x != nil {
		return x.FieldId
	}
	return ""
}

func (x *RecordViewSelector) GetFieldValue() string {
	if x != nil {
		return x.FieldValue
	}
	return ""
}

// Identity, tenant, AppInstallation, and authority are authenticated transport
// context. They are never caller-selected semantic request fields.
type ReadRecordViewRequest struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	ObjectId           string                 `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
	Selector           *RecordViewSelector    `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"`
	Projection         RecordViewProjection   `protobuf:"varint,3,opt,name=projection,proto3,enum=nexuscrm.runtime.v1.RecordViewProjection" json:"projection,omitempty"`
	MinCatalogRevision *uint64                `protobuf:"varint,4,opt,name=min_catalog_revision,json=minCatalogRevision,proto3,oneof" json:"min_catalog_revision,omitempty"`
	// Selects bounded workspace result sections. Transport context is implicit.
	Workspace     *RecordViewWorkspaceSelection `protobuf:"bytes,5,opt,name=workspace,proto3" json:"workspace,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReadRecordViewRequest) ProtoMessage() {}

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

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

func (x *ReadRecordViewRequest) GetSelector() *RecordViewSelector {
	if x != nil {
		return x.Selector
	}
	return nil
}

func (x *ReadRecordViewRequest) GetProjection() RecordViewProjection {
	if x != nil {
		return x.Projection
	}
	return RecordViewProjection_RECORD_VIEW_PROJECTION_UNSPECIFIED
}

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

func (x *ReadRecordViewRequest) GetWorkspace() *RecordViewWorkspaceSelection {
	if x != nil {
		return x.Workspace
	}
	return nil
}

type RecordViewWorkspaceSelection struct {
	state         protoimpl.MessageState       `protogen:"open.v1"`
	Sections      []RecordViewWorkspaceSection `protobuf:"varint,1,rep,packed,name=sections,proto3,enum=nexuscrm.runtime.v1.RecordViewWorkspaceSection" json:"sections,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RecordViewWorkspaceSelection) ProtoMessage() {}

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

func (x *RecordViewWorkspaceSelection) GetSections() []RecordViewWorkspaceSection {
	if x != nil {
		return x.Sections
	}
	return nil
}

type RecordViewSelectedAuthority struct {
	state                 protoimpl.MessageState           `protogen:"open.v1"`
	SystemPermissions     []*EffectivePermissionGrant      `protobuf:"bytes,1,rep,name=system_permissions,json=systemPermissions,proto3" json:"system_permissions,omitempty"`
	CustomPermissions     []*EffectivePermissionGrant      `protobuf:"bytes,2,rep,name=custom_permissions,json=customPermissions,proto3" json:"custom_permissions,omitempty"`
	ObjectPermissions     []*EffectiveObjectPermission     `protobuf:"bytes,3,rep,name=object_permissions,json=objectPermissions,proto3" json:"object_permissions,omitempty"`
	FieldPermissions      []*EffectiveFieldPermission      `protobuf:"bytes,4,rep,name=field_permissions,json=fieldPermissions,proto3" json:"field_permissions,omitempty"`
	RecordTypePermissions []*EffectiveRecordTypePermission `protobuf:"bytes,5,rep,name=record_type_permissions,json=recordTypePermissions,proto3" json:"record_type_permissions,omitempty"`
	unknownFields         protoimpl.UnknownFields
	sizeCache             protoimpl.SizeCache
}

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

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

func (*RecordViewSelectedAuthority) ProtoMessage() {}

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

func (x *RecordViewSelectedAuthority) GetSystemPermissions() []*EffectivePermissionGrant {
	if x != nil {
		return x.SystemPermissions
	}
	return nil
}

func (x *RecordViewSelectedAuthority) GetCustomPermissions() []*EffectivePermissionGrant {
	if x != nil {
		return x.CustomPermissions
	}
	return nil
}

func (x *RecordViewSelectedAuthority) GetObjectPermissions() []*EffectiveObjectPermission {
	if x != nil {
		return x.ObjectPermissions
	}
	return nil
}

func (x *RecordViewSelectedAuthority) GetFieldPermissions() []*EffectiveFieldPermission {
	if x != nil {
		return x.FieldPermissions
	}
	return nil
}

func (x *RecordViewSelectedAuthority) GetRecordTypePermissions() []*EffectiveRecordTypePermission {
	if x != nil {
		return x.RecordTypePermissions
	}
	return nil
}

type RecordViewReferenceDisplay struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	SourceFieldId  string                 `protobuf:"bytes,1,opt,name=source_field_id,json=sourceFieldId,proto3" json:"source_field_id,omitempty"`
	RelationshipId string                 `protobuf:"bytes,2,opt,name=relationship_id,json=relationshipId,proto3" json:"relationship_id,omitempty"`
	TargetObjectId string                 `protobuf:"bytes,3,opt,name=target_object_id,json=targetObjectId,proto3" json:"target_object_id,omitempty"`
	TargetRecordId string                 `protobuf:"bytes,4,opt,name=target_record_id,json=targetRecordId,proto3" json:"target_record_id,omitempty"`
	DisplayName    string                 `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*RecordViewReferenceDisplay) ProtoMessage() {}

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

func (x *RecordViewReferenceDisplay) GetSourceFieldId() string {
	if x != nil {
		return x.SourceFieldId
	}
	return ""
}

func (x *RecordViewReferenceDisplay) GetRelationshipId() string {
	if x != nil {
		return x.RelationshipId
	}
	return ""
}

func (x *RecordViewReferenceDisplay) GetTargetObjectId() string {
	if x != nil {
		return x.TargetObjectId
	}
	return ""
}

func (x *RecordViewReferenceDisplay) GetTargetRecordId() string {
	if x != nil {
		return x.TargetRecordId
	}
	return ""
}

func (x *RecordViewReferenceDisplay) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

// Binds one authorized root string field to a closed Catalog resolver. The L1
// caller may parse its own product source grammar, but it never receives the
// resolver plan, relation names, joins, or authorization rules.
type RecordViewAttachmentSourceField struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SourceFieldId string                 `protobuf:"bytes,1,opt,name=source_field_id,json=sourceFieldId,proto3" json:"source_field_id,omitempty"`
	ResolverId    string                 `protobuf:"bytes,2,opt,name=resolver_id,json=resolverId,proto3" json:"resolver_id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RecordViewAttachmentSourceField) ProtoMessage() {}

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

func (x *RecordViewAttachmentSourceField) GetSourceFieldId() string {
	if x != nil {
		return x.SourceFieldId
	}
	return ""
}

func (x *RecordViewAttachmentSourceField) GetResolverId() string {
	if x != nil {
		return x.ResolverId
	}
	return ""
}

// Record-scoped authority computed from the same raw row as root. This is a
// neutral result; product UI field names and envelopes remain owned by L1.
type RecordViewAccess struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Read          bool                   `protobuf:"varint,1,opt,name=read,proto3" json:"read,omitempty"`
	Update        bool                   `protobuf:"varint,2,opt,name=update,proto3" json:"update,omitempty"`
	Delete        bool                   `protobuf:"varint,3,opt,name=delete,proto3" json:"delete,omitempty"`
	Locked        bool                   `protobuf:"varint,4,opt,name=locked,proto3" json:"locked,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RecordViewAccess) ProtoMessage() {}

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

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

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

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

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

type ReadRecordViewResponse struct {
	state                  protoimpl.MessageState             `protogen:"open.v1"`
	RecordId               string                             `protobuf:"bytes,1,opt,name=record_id,json=recordId,proto3" json:"record_id,omitempty"`
	Root                   *QueryRecord                       `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"`
	ReferenceDisplays      []*RecordViewReferenceDisplay      `protobuf:"bytes,3,rep,name=reference_displays,json=referenceDisplays,proto3" json:"reference_displays,omitempty"`
	AttachmentSourceFields []*RecordViewAttachmentSourceField `protobuf:"bytes,4,rep,name=attachment_source_fields,json=attachmentSourceFields,proto3" json:"attachment_source_fields,omitempty"`
	Receipts               *v1.ConsistencyReceipts            `protobuf:"bytes,5,opt,name=receipts,proto3" json:"receipts,omitempty"`
	Access                 *RecordViewAccess                  `protobuf:"bytes,6,opt,name=access,proto3" json:"access,omitempty"`
	Authority              *RecordViewSelectedAuthority       `protobuf:"bytes,7,opt,name=authority,proto3" json:"authority,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

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

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

func (*ReadRecordViewResponse) ProtoMessage() {}

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

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

func (x *ReadRecordViewResponse) GetRoot() *QueryRecord {
	if x != nil {
		return x.Root
	}
	return nil
}

func (x *ReadRecordViewResponse) GetReferenceDisplays() []*RecordViewReferenceDisplay {
	if x != nil {
		return x.ReferenceDisplays
	}
	return nil
}

func (x *ReadRecordViewResponse) GetAttachmentSourceFields() []*RecordViewAttachmentSourceField {
	if x != nil {
		return x.AttachmentSourceFields
	}
	return nil
}

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

func (x *ReadRecordViewResponse) GetAccess() *RecordViewAccess {
	if x != nil {
		return x.Access
	}
	return nil
}

func (x *ReadRecordViewResponse) GetAuthority() *RecordViewSelectedAuthority {
	if x != nil {
		return x.Authority
	}
	return nil
}

type ResolveRecordAttachmentSourcesRequest struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	ParentObjectId string                 `protobuf:"bytes,1,opt,name=parent_object_id,json=parentObjectId,proto3" json:"parent_object_id,omitempty"`
	ParentRecordId string                 `protobuf:"bytes,2,opt,name=parent_record_id,json=parentRecordId,proto3" json:"parent_record_id,omitempty"`
	// One request selects one closed plan; resolver diversity cannot create a
	// hidden database N+1 path.
	ResolverId         string   `protobuf:"bytes,3,opt,name=resolver_id,json=resolverId,proto3" json:"resolver_id,omitempty"`
	SourceValues       []string `protobuf:"bytes,4,rep,name=source_values,json=sourceValues,proto3" json:"source_values,omitempty"`
	MinCatalogRevision *uint64  `protobuf:"varint,5,opt,name=min_catalog_revision,json=minCatalogRevision,proto3,oneof" json:"min_catalog_revision,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*ResolveRecordAttachmentSourcesRequest) ProtoMessage() {}

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

func (x *ResolveRecordAttachmentSourcesRequest) GetParentObjectId() string {
	if x != nil {
		return x.ParentObjectId
	}
	return ""
}

func (x *ResolveRecordAttachmentSourcesRequest) GetParentRecordId() string {
	if x != nil {
		return x.ParentRecordId
	}
	return ""
}

func (x *ResolveRecordAttachmentSourcesRequest) GetResolverId() string {
	if x != nil {
		return x.ResolverId
	}
	return ""
}

func (x *ResolveRecordAttachmentSourcesRequest) GetSourceValues() []string {
	if x != nil {
		return x.SourceValues
	}
	return nil
}

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

type RecordAttachmentSourceResult struct {
	state         protoimpl.MessageState        `protogen:"open.v1"`
	Index         uint32                        `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
	Outcome       RecordAttachmentSourceOutcome `protobuf:"varint,2,opt,name=outcome,proto3,enum=nexuscrm.runtime.v1.RecordAttachmentSourceOutcome" json:"outcome,omitempty"`
	FileId        string                        `protobuf:"bytes,3,opt,name=file_id,json=fileId,proto3" json:"file_id,omitempty"`
	FileName      string                        `protobuf:"bytes,4,opt,name=file_name,json=fileName,proto3" json:"file_name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RecordAttachmentSourceResult) ProtoMessage() {}

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

func (x *RecordAttachmentSourceResult) GetIndex() uint32 {
	if x != nil {
		return x.Index
	}
	return 0
}

func (x *RecordAttachmentSourceResult) GetOutcome() RecordAttachmentSourceOutcome {
	if x != nil {
		return x.Outcome
	}
	return RecordAttachmentSourceOutcome_RECORD_ATTACHMENT_SOURCE_OUTCOME_UNSPECIFIED
}

func (x *RecordAttachmentSourceResult) GetFileId() string {
	if x != nil {
		return x.FileId
	}
	return ""
}

func (x *RecordAttachmentSourceResult) GetFileName() string {
	if x != nil {
		return x.FileName
	}
	return ""
}

type ResolveRecordAttachmentSourcesResponse struct {
	state         protoimpl.MessageState          `protogen:"open.v1"`
	Results       []*RecordAttachmentSourceResult `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 *ResolveRecordAttachmentSourcesResponse) Reset() {
	*x = ResolveRecordAttachmentSourcesResponse{}
	mi := &file_runtime_v1_record_view_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ResolveRecordAttachmentSourcesResponse) ProtoMessage() {}

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

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

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

var File_runtime_v1_record_view_proto protoreflect.FileDescriptor

const file_runtime_v1_record_view_proto_rawDesc = "" +
	"\n" +
	"\x1cruntime/v1/record_view.proto\x12\x13nexuscrm.runtime.v1\x1a\x16common/v1/common.proto\x1a&runtime/v1/effective_permissions.proto\x1a\x16runtime/v1/query.proto\"\xae\x01\n" +
	"\x12RecordViewSelector\x12?\n" +
	"\x04kind\x18\x01 \x01(\x0e2+.nexuscrm.runtime.v1.RecordViewSelectorKindR\x04kind\x12\x1b\n" +
	"\trecord_id\x18\x02 \x01(\tR\brecordId\x12\x19\n" +
	"\bfield_id\x18\x03 \x01(\tR\afieldId\x12\x1f\n" +
	"\vfield_value\x18\x04 \x01(\tR\n" +
	"fieldValue\"\xe5\x02\n" +
	"\x15ReadRecordViewRequest\x12\x1b\n" +
	"\tobject_id\x18\x01 \x01(\tR\bobjectId\x12C\n" +
	"\bselector\x18\x02 \x01(\v2'.nexuscrm.runtime.v1.RecordViewSelectorR\bselector\x12I\n" +
	"\n" +
	"projection\x18\x03 \x01(\x0e2).nexuscrm.runtime.v1.RecordViewProjectionR\n" +
	"projection\x125\n" +
	"\x14min_catalog_revision\x18\x04 \x01(\x04H\x00R\x12minCatalogRevision\x88\x01\x01\x12O\n" +
	"\tworkspace\x18\x05 \x01(\v21.nexuscrm.runtime.v1.RecordViewWorkspaceSelectionR\tworkspaceB\x17\n" +
	"\x15_min_catalog_revision\"k\n" +
	"\x1cRecordViewWorkspaceSelection\x12K\n" +
	"\bsections\x18\x01 \x03(\x0e2/.nexuscrm.runtime.v1.RecordViewWorkspaceSectionR\bsections\"\x80\x04\n" +
	"\x1bRecordViewSelectedAuthority\x12\\\n" +
	"\x12system_permissions\x18\x01 \x03(\v2-.nexuscrm.runtime.v1.EffectivePermissionGrantR\x11systemPermissions\x12\\\n" +
	"\x12custom_permissions\x18\x02 \x03(\v2-.nexuscrm.runtime.v1.EffectivePermissionGrantR\x11customPermissions\x12]\n" +
	"\x12object_permissions\x18\x03 \x03(\v2..nexuscrm.runtime.v1.EffectiveObjectPermissionR\x11objectPermissions\x12Z\n" +
	"\x11field_permissions\x18\x04 \x03(\v2-.nexuscrm.runtime.v1.EffectiveFieldPermissionR\x10fieldPermissions\x12j\n" +
	"\x17record_type_permissions\x18\x05 \x03(\v22.nexuscrm.runtime.v1.EffectiveRecordTypePermissionR\x15recordTypePermissions\"\xe4\x01\n" +
	"\x1aRecordViewReferenceDisplay\x12&\n" +
	"\x0fsource_field_id\x18\x01 \x01(\tR\rsourceFieldId\x12'\n" +
	"\x0frelationship_id\x18\x02 \x01(\tR\x0erelationshipId\x12(\n" +
	"\x10target_object_id\x18\x03 \x01(\tR\x0etargetObjectId\x12(\n" +
	"\x10target_record_id\x18\x04 \x01(\tR\x0etargetRecordId\x12!\n" +
	"\fdisplay_name\x18\x05 \x01(\tR\vdisplayName\"j\n" +
	"\x1fRecordViewAttachmentSourceField\x12&\n" +
	"\x0fsource_field_id\x18\x01 \x01(\tR\rsourceFieldId\x12\x1f\n" +
	"\vresolver_id\x18\x02 \x01(\tR\n" +
	"resolverId\"n\n" +
	"\x10RecordViewAccess\x12\x12\n" +
	"\x04read\x18\x01 \x01(\bR\x04read\x12\x16\n" +
	"\x06update\x18\x02 \x01(\bR\x06update\x12\x16\n" +
	"\x06delete\x18\x03 \x01(\bR\x06delete\x12\x16\n" +
	"\x06locked\x18\x04 \x01(\bR\x06locked\"\x8f\x04\n" +
	"\x16ReadRecordViewResponse\x12\x1b\n" +
	"\trecord_id\x18\x01 \x01(\tR\brecordId\x124\n" +
	"\x04root\x18\x02 \x01(\v2 .nexuscrm.runtime.v1.QueryRecordR\x04root\x12^\n" +
	"\x12reference_displays\x18\x03 \x03(\v2/.nexuscrm.runtime.v1.RecordViewReferenceDisplayR\x11referenceDisplays\x12n\n" +
	"\x18attachment_source_fields\x18\x04 \x03(\v24.nexuscrm.runtime.v1.RecordViewAttachmentSourceFieldR\x16attachmentSourceFields\x12C\n" +
	"\breceipts\x18\x05 \x01(\v2'.nexuscrm.common.v1.ConsistencyReceiptsR\breceipts\x12=\n" +
	"\x06access\x18\x06 \x01(\v2%.nexuscrm.runtime.v1.RecordViewAccessR\x06access\x12N\n" +
	"\tauthority\x18\a \x01(\v20.nexuscrm.runtime.v1.RecordViewSelectedAuthorityR\tauthority\"\x91\x02\n" +
	"%ResolveRecordAttachmentSourcesRequest\x12(\n" +
	"\x10parent_object_id\x18\x01 \x01(\tR\x0eparentObjectId\x12(\n" +
	"\x10parent_record_id\x18\x02 \x01(\tR\x0eparentRecordId\x12\x1f\n" +
	"\vresolver_id\x18\x03 \x01(\tR\n" +
	"resolverId\x12#\n" +
	"\rsource_values\x18\x04 \x03(\tR\fsourceValues\x125\n" +
	"\x14min_catalog_revision\x18\x05 \x01(\x04H\x00R\x12minCatalogRevision\x88\x01\x01B\x17\n" +
	"\x15_min_catalog_revision\"\xb8\x01\n" +
	"\x1cRecordAttachmentSourceResult\x12\x14\n" +
	"\x05index\x18\x01 \x01(\rR\x05index\x12L\n" +
	"\aoutcome\x18\x02 \x01(\x0e22.nexuscrm.runtime.v1.RecordAttachmentSourceOutcomeR\aoutcome\x12\x17\n" +
	"\afile_id\x18\x03 \x01(\tR\x06fileId\x12\x1b\n" +
	"\tfile_name\x18\x04 \x01(\tR\bfileName\"\xba\x01\n" +
	"&ResolveRecordAttachmentSourcesResponse\x12K\n" +
	"\aresults\x18\x01 \x03(\v21.nexuscrm.runtime.v1.RecordAttachmentSourceResultR\aresults\x12C\n" +
	"\breceipts\x18\x02 \x01(\v2'.nexuscrm.common.v1.ConsistencyReceiptsR\breceipts*\x97\x01\n" +
	"\x16RecordViewSelectorKind\x12)\n" +
	"%RECORD_VIEW_SELECTOR_KIND_UNSPECIFIED\x10\x00\x12'\n" +
	"#RECORD_VIEW_SELECTOR_KIND_RECORD_ID\x10\x01\x12)\n" +
	"%RECORD_VIEW_SELECTOR_KIND_FIELD_EQUAL\x10\x02*\x89\x01\n" +
	"\x14RecordViewProjection\x12&\n" +
	"\"RECORD_VIEW_PROJECTION_UNSPECIFIED\x10\x00\x12\x1f\n" +
	"\x1bRECORD_VIEW_PROJECTION_ROOT\x10\x01\x12(\n" +
	"$RECORD_VIEW_PROJECTION_ENRICHED_VIEW\x10\x02*\xdd\x02\n" +
	"\x1aRecordViewWorkspaceSection\x12-\n" +
	")RECORD_VIEW_WORKSPACE_SECTION_UNSPECIFIED\x10\x00\x124\n" +
	"0RECORD_VIEW_WORKSPACE_SECTION_SYSTEM_PERMISSIONS\x10\x01\x124\n" +
	"0RECORD_VIEW_WORKSPACE_SECTION_CUSTOM_PERMISSIONS\x10\x02\x124\n" +
	"0RECORD_VIEW_WORKSPACE_SECTION_OBJECT_PERMISSIONS\x10\x03\x123\n" +
	"/RECORD_VIEW_WORKSPACE_SECTION_FIELD_PERMISSIONS\x10\x04\x129\n" +
	"5RECORD_VIEW_WORKSPACE_SECTION_RECORD_TYPE_PERMISSIONS\x10\x05*\xe2\x01\n" +
	"\x1dRecordAttachmentSourceOutcome\x120\n" +
	",RECORD_ATTACHMENT_SOURCE_OUTCOME_UNSPECIFIED\x10\x00\x12.\n" +
	"*RECORD_ATTACHMENT_SOURCE_OUTCOME_NOT_FOUND\x10\x01\x120\n" +
	",RECORD_ATTACHMENT_SOURCE_OUTCOME_UNAVAILABLE\x10\x02\x12-\n" +
	")RECORD_ATTACHMENT_SOURCE_OUTCOME_RESOLVED\x10\x032\x9e\x02\n" +
	"\x15RecordViewReadService\x12i\n" +
	"\x0eReadRecordView\x12*.nexuscrm.runtime.v1.ReadRecordViewRequest\x1a+.nexuscrm.runtime.v1.ReadRecordViewResponse\x12\x99\x01\n" +
	"\x1eResolveRecordAttachmentSources\x12:.nexuscrm.runtime.v1.ResolveRecordAttachmentSourcesRequest\x1a;.nexuscrm.runtime.v1.ResolveRecordAttachmentSourcesResponseBKZIgithub.com/pingcap-inc/nexuscrm-contract/wire-go/gen/runtime/v1;runtimev1b\x06proto3"

var (
	file_runtime_v1_record_view_proto_rawDescOnce sync.Once
	file_runtime_v1_record_view_proto_rawDescData []byte
)

func file_runtime_v1_record_view_proto_rawDescGZIP() []byte {
	file_runtime_v1_record_view_proto_rawDescOnce.Do(func() {
		file_runtime_v1_record_view_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_runtime_v1_record_view_proto_rawDesc), len(file_runtime_v1_record_view_proto_rawDesc)))
	})
	return file_runtime_v1_record_view_proto_rawDescData
}

var file_runtime_v1_record_view_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_runtime_v1_record_view_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_runtime_v1_record_view_proto_goTypes = []any{
	(RecordViewSelectorKind)(0),                    // 0: nexuscrm.runtime.v1.RecordViewSelectorKind
	(RecordViewProjection)(0),                      // 1: nexuscrm.runtime.v1.RecordViewProjection
	(RecordViewWorkspaceSection)(0),                // 2: nexuscrm.runtime.v1.RecordViewWorkspaceSection
	(RecordAttachmentSourceOutcome)(0),             // 3: nexuscrm.runtime.v1.RecordAttachmentSourceOutcome
	(*RecordViewSelector)(nil),                     // 4: nexuscrm.runtime.v1.RecordViewSelector
	(*ReadRecordViewRequest)(nil),                  // 5: nexuscrm.runtime.v1.ReadRecordViewRequest
	(*RecordViewWorkspaceSelection)(nil),           // 6: nexuscrm.runtime.v1.RecordViewWorkspaceSelection
	(*RecordViewSelectedAuthority)(nil),            // 7: nexuscrm.runtime.v1.RecordViewSelectedAuthority
	(*RecordViewReferenceDisplay)(nil),             // 8: nexuscrm.runtime.v1.RecordViewReferenceDisplay
	(*RecordViewAttachmentSourceField)(nil),        // 9: nexuscrm.runtime.v1.RecordViewAttachmentSourceField
	(*RecordViewAccess)(nil),                       // 10: nexuscrm.runtime.v1.RecordViewAccess
	(*ReadRecordViewResponse)(nil),                 // 11: nexuscrm.runtime.v1.ReadRecordViewResponse
	(*ResolveRecordAttachmentSourcesRequest)(nil),  // 12: nexuscrm.runtime.v1.ResolveRecordAttachmentSourcesRequest
	(*RecordAttachmentSourceResult)(nil),           // 13: nexuscrm.runtime.v1.RecordAttachmentSourceResult
	(*ResolveRecordAttachmentSourcesResponse)(nil), // 14: nexuscrm.runtime.v1.ResolveRecordAttachmentSourcesResponse
	(*EffectivePermissionGrant)(nil),               // 15: nexuscrm.runtime.v1.EffectivePermissionGrant
	(*EffectiveObjectPermission)(nil),              // 16: nexuscrm.runtime.v1.EffectiveObjectPermission
	(*EffectiveFieldPermission)(nil),               // 17: nexuscrm.runtime.v1.EffectiveFieldPermission
	(*EffectiveRecordTypePermission)(nil),          // 18: nexuscrm.runtime.v1.EffectiveRecordTypePermission
	(*QueryRecord)(nil),                            // 19: nexuscrm.runtime.v1.QueryRecord
	(*v1.ConsistencyReceipts)(nil),                 // 20: nexuscrm.common.v1.ConsistencyReceipts
}
var file_runtime_v1_record_view_proto_depIdxs = []int32{
	0,  // 0: nexuscrm.runtime.v1.RecordViewSelector.kind:type_name -> nexuscrm.runtime.v1.RecordViewSelectorKind
	4,  // 1: nexuscrm.runtime.v1.ReadRecordViewRequest.selector:type_name -> nexuscrm.runtime.v1.RecordViewSelector
	1,  // 2: nexuscrm.runtime.v1.ReadRecordViewRequest.projection:type_name -> nexuscrm.runtime.v1.RecordViewProjection
	6,  // 3: nexuscrm.runtime.v1.ReadRecordViewRequest.workspace:type_name -> nexuscrm.runtime.v1.RecordViewWorkspaceSelection
	2,  // 4: nexuscrm.runtime.v1.RecordViewWorkspaceSelection.sections:type_name -> nexuscrm.runtime.v1.RecordViewWorkspaceSection
	15, // 5: nexuscrm.runtime.v1.RecordViewSelectedAuthority.system_permissions:type_name -> nexuscrm.runtime.v1.EffectivePermissionGrant
	15, // 6: nexuscrm.runtime.v1.RecordViewSelectedAuthority.custom_permissions:type_name -> nexuscrm.runtime.v1.EffectivePermissionGrant
	16, // 7: nexuscrm.runtime.v1.RecordViewSelectedAuthority.object_permissions:type_name -> nexuscrm.runtime.v1.EffectiveObjectPermission
	17, // 8: nexuscrm.runtime.v1.RecordViewSelectedAuthority.field_permissions:type_name -> nexuscrm.runtime.v1.EffectiveFieldPermission
	18, // 9: nexuscrm.runtime.v1.RecordViewSelectedAuthority.record_type_permissions:type_name -> nexuscrm.runtime.v1.EffectiveRecordTypePermission
	19, // 10: nexuscrm.runtime.v1.ReadRecordViewResponse.root:type_name -> nexuscrm.runtime.v1.QueryRecord
	8,  // 11: nexuscrm.runtime.v1.ReadRecordViewResponse.reference_displays:type_name -> nexuscrm.runtime.v1.RecordViewReferenceDisplay
	9,  // 12: nexuscrm.runtime.v1.ReadRecordViewResponse.attachment_source_fields:type_name -> nexuscrm.runtime.v1.RecordViewAttachmentSourceField
	20, // 13: nexuscrm.runtime.v1.ReadRecordViewResponse.receipts:type_name -> nexuscrm.common.v1.ConsistencyReceipts
	10, // 14: nexuscrm.runtime.v1.ReadRecordViewResponse.access:type_name -> nexuscrm.runtime.v1.RecordViewAccess
	7,  // 15: nexuscrm.runtime.v1.ReadRecordViewResponse.authority:type_name -> nexuscrm.runtime.v1.RecordViewSelectedAuthority
	3,  // 16: nexuscrm.runtime.v1.RecordAttachmentSourceResult.outcome:type_name -> nexuscrm.runtime.v1.RecordAttachmentSourceOutcome
	13, // 17: nexuscrm.runtime.v1.ResolveRecordAttachmentSourcesResponse.results:type_name -> nexuscrm.runtime.v1.RecordAttachmentSourceResult
	20, // 18: nexuscrm.runtime.v1.ResolveRecordAttachmentSourcesResponse.receipts:type_name -> nexuscrm.common.v1.ConsistencyReceipts
	5,  // 19: nexuscrm.runtime.v1.RecordViewReadService.ReadRecordView:input_type -> nexuscrm.runtime.v1.ReadRecordViewRequest
	12, // 20: nexuscrm.runtime.v1.RecordViewReadService.ResolveRecordAttachmentSources:input_type -> nexuscrm.runtime.v1.ResolveRecordAttachmentSourcesRequest
	11, // 21: nexuscrm.runtime.v1.RecordViewReadService.ReadRecordView:output_type -> nexuscrm.runtime.v1.ReadRecordViewResponse
	14, // 22: nexuscrm.runtime.v1.RecordViewReadService.ResolveRecordAttachmentSources:output_type -> nexuscrm.runtime.v1.ResolveRecordAttachmentSourcesResponse
	21, // [21:23] is the sub-list for method output_type
	19, // [19:21] is the sub-list for method input_type
	19, // [19:19] is the sub-list for extension type_name
	19, // [19:19] is the sub-list for extension extendee
	0,  // [0:19] is the sub-list for field type_name
}

func init() { file_runtime_v1_record_view_proto_init() }
func file_runtime_v1_record_view_proto_init() {
	if File_runtime_v1_record_view_proto != nil {
		return
	}
	file_runtime_v1_effective_permissions_proto_init()
	file_runtime_v1_query_proto_init()
	file_runtime_v1_record_view_proto_msgTypes[1].OneofWrappers = []any{}
	file_runtime_v1_record_view_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_record_view_proto_rawDesc), len(file_runtime_v1_record_view_proto_rawDesc)),
			NumEnums:      4,
			NumMessages:   11,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_runtime_v1_record_view_proto_goTypes,
		DependencyIndexes: file_runtime_v1_record_view_proto_depIdxs,
		EnumInfos:         file_runtime_v1_record_view_proto_enumTypes,
		MessageInfos:      file_runtime_v1_record_view_proto_msgTypes,
	}.Build()
	File_runtime_v1_record_view_proto = out.File
	file_runtime_v1_record_view_proto_goTypes = nil
	file_runtime_v1_record_view_proto_depIdxs = nil
}
