basev1.file_base_v1_base_proto_init   F
last analyzed

Complexity

Conditions 243

Size

Total Lines 627
Code Lines 522

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 243
eloc 522
nop 0
dl 0
loc 627
rs 0
c 0
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

Complexity

Complex classes like basev1.file_base_v1_base_proto_init often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
// Code generated by protoc-gen-go. DO NOT EDIT.
2
// versions:
3
// 	protoc-gen-go v1.34.2
4
// 	protoc        (unknown)
5
// source: base/v1/base.proto
6
7
package basev1
8
9
import (
10
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
11
	v1alpha1 "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
12
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
13
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
14
	anypb "google.golang.org/protobuf/types/known/anypb"
15
	structpb "google.golang.org/protobuf/types/known/structpb"
16
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
17
	reflect "reflect"
18
	sync "sync"
19
)
20
21
const (
22
	// Verify that this generated code is sufficiently up-to-date.
23
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
24
	// Verify that runtime/protoimpl is sufficiently up-to-date.
25
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
26
)
27
28
// Enumerates results of a check operation.
29
type CheckResult int32
30
31
const (
32
	// Not specified check result. This is the default value.
33
	CheckResult_CHECK_RESULT_UNSPECIFIED CheckResult = 0
34
	// Represents a successful check (the check allowed the operation).
35
	CheckResult_CHECK_RESULT_ALLOWED CheckResult = 1
36
	// Represents a failed check (the check denied the operation).
37
	CheckResult_CHECK_RESULT_DENIED CheckResult = 2
38
)
39
40
// Enum value maps for CheckResult.
41
var (
42
	CheckResult_name = map[int32]string{
43
		0: "CHECK_RESULT_UNSPECIFIED",
44
		1: "CHECK_RESULT_ALLOWED",
45
		2: "CHECK_RESULT_DENIED",
46
	}
47
	CheckResult_value = map[string]int32{
48
		"CHECK_RESULT_UNSPECIFIED": 0,
49
		"CHECK_RESULT_ALLOWED":     1,
50
		"CHECK_RESULT_DENIED":      2,
51
	}
52
)
53
54
func (x CheckResult) Enum() *CheckResult {
55
	p := new(CheckResult)
56
	*p = x
57
	return p
58
}
59
60
func (x CheckResult) String() string {
61
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
62
}
63
64
func (CheckResult) Descriptor() protoreflect.EnumDescriptor {
65
	return file_base_v1_base_proto_enumTypes[0].Descriptor()
66
}
67
68
func (CheckResult) Type() protoreflect.EnumType {
69
	return &file_base_v1_base_proto_enumTypes[0]
70
}
71
72
func (x CheckResult) Number() protoreflect.EnumNumber {
73
	return protoreflect.EnumNumber(x)
74
}
75
76
// Deprecated: Use CheckResult.Descriptor instead.
77
func (CheckResult) EnumDescriptor() ([]byte, []int) {
78
	return file_base_v1_base_proto_rawDescGZIP(), []int{0}
79
}
80
81
// Enumerates the types of attribute.
82
type AttributeType int32
83
84
const (
85
	// Not specified attribute type. This is the default value.
86
	AttributeType_ATTRIBUTE_TYPE_UNSPECIFIED AttributeType = 0
87
	// A boolean attribute type.
88
	AttributeType_ATTRIBUTE_TYPE_BOOLEAN AttributeType = 1
89
	// A boolean array attribute type.
90
	AttributeType_ATTRIBUTE_TYPE_BOOLEAN_ARRAY AttributeType = 2
91
	// A string attribute type.
92
	AttributeType_ATTRIBUTE_TYPE_STRING AttributeType = 3
93
	// A string array attribute type.
94
	AttributeType_ATTRIBUTE_TYPE_STRING_ARRAY AttributeType = 4
95
	// An integer attribute type.
96
	AttributeType_ATTRIBUTE_TYPE_INTEGER AttributeType = 5
97
	// An integer array attribute type.
98
	AttributeType_ATTRIBUTE_TYPE_INTEGER_ARRAY AttributeType = 6
99
	// A double attribute type.
100
	AttributeType_ATTRIBUTE_TYPE_DOUBLE AttributeType = 7
101
	// A double array attribute type.
102
	AttributeType_ATTRIBUTE_TYPE_DOUBLE_ARRAY AttributeType = 8
103
)
104
105
// Enum value maps for AttributeType.
106
var (
107
	AttributeType_name = map[int32]string{
108
		0: "ATTRIBUTE_TYPE_UNSPECIFIED",
109
		1: "ATTRIBUTE_TYPE_BOOLEAN",
110
		2: "ATTRIBUTE_TYPE_BOOLEAN_ARRAY",
111
		3: "ATTRIBUTE_TYPE_STRING",
112
		4: "ATTRIBUTE_TYPE_STRING_ARRAY",
113
		5: "ATTRIBUTE_TYPE_INTEGER",
114
		6: "ATTRIBUTE_TYPE_INTEGER_ARRAY",
115
		7: "ATTRIBUTE_TYPE_DOUBLE",
116
		8: "ATTRIBUTE_TYPE_DOUBLE_ARRAY",
117
	}
118
	AttributeType_value = map[string]int32{
119
		"ATTRIBUTE_TYPE_UNSPECIFIED":   0,
120
		"ATTRIBUTE_TYPE_BOOLEAN":       1,
121
		"ATTRIBUTE_TYPE_BOOLEAN_ARRAY": 2,
122
		"ATTRIBUTE_TYPE_STRING":        3,
123
		"ATTRIBUTE_TYPE_STRING_ARRAY":  4,
124
		"ATTRIBUTE_TYPE_INTEGER":       5,
125
		"ATTRIBUTE_TYPE_INTEGER_ARRAY": 6,
126
		"ATTRIBUTE_TYPE_DOUBLE":        7,
127
		"ATTRIBUTE_TYPE_DOUBLE_ARRAY":  8,
128
	}
129
)
130
131
func (x AttributeType) Enum() *AttributeType {
132
	p := new(AttributeType)
133
	*p = x
134
	return p
135
}
136
137
func (x AttributeType) String() string {
138
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
139
}
140
141
func (AttributeType) Descriptor() protoreflect.EnumDescriptor {
142
	return file_base_v1_base_proto_enumTypes[1].Descriptor()
143
}
144
145
func (AttributeType) Type() protoreflect.EnumType {
146
	return &file_base_v1_base_proto_enumTypes[1]
147
}
148
149
func (x AttributeType) Number() protoreflect.EnumNumber {
150
	return protoreflect.EnumNumber(x)
151
}
152
153
// Deprecated: Use AttributeType.Descriptor instead.
154
func (AttributeType) EnumDescriptor() ([]byte, []int) {
155
	return file_base_v1_base_proto_rawDescGZIP(), []int{1}
156
}
157
158
// Operation enum includes potential rewrite operations.
159
// OPERATION_UNION: Represents a union operation.
160
// OPERATION_INTERSECTION: Represents an intersection operation.
161
// OPERATION_EXCLUSION: Represents an exclusion operation.
162
type Rewrite_Operation int32
163
164
const (
165
	Rewrite_OPERATION_UNSPECIFIED  Rewrite_Operation = 0 // Default, unspecified operation.
166
	Rewrite_OPERATION_UNION        Rewrite_Operation = 1 // Represents a union operation.
167
	Rewrite_OPERATION_INTERSECTION Rewrite_Operation = 2 // Represents an intersection operation.
168
	Rewrite_OPERATION_EXCLUSION    Rewrite_Operation = 3 // Represents an exclusion operation.
169
)
170
171
// Enum value maps for Rewrite_Operation.
172
var (
173
	Rewrite_Operation_name = map[int32]string{
174
		0: "OPERATION_UNSPECIFIED",
175
		1: "OPERATION_UNION",
176
		2: "OPERATION_INTERSECTION",
177
		3: "OPERATION_EXCLUSION",
178
	}
179
	Rewrite_Operation_value = map[string]int32{
180
		"OPERATION_UNSPECIFIED":  0,
181
		"OPERATION_UNION":        1,
182
		"OPERATION_INTERSECTION": 2,
183
		"OPERATION_EXCLUSION":    3,
184
	}
185
)
186
187
func (x Rewrite_Operation) Enum() *Rewrite_Operation {
188
	p := new(Rewrite_Operation)
189
	*p = x
190
	return p
191
}
192
193
func (x Rewrite_Operation) String() string {
194
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
195
}
196
197
func (Rewrite_Operation) Descriptor() protoreflect.EnumDescriptor {
198
	return file_base_v1_base_proto_enumTypes[2].Descriptor()
199
}
200
201
func (Rewrite_Operation) Type() protoreflect.EnumType {
202
	return &file_base_v1_base_proto_enumTypes[2]
203
}
204
205
func (x Rewrite_Operation) Number() protoreflect.EnumNumber {
206
	return protoreflect.EnumNumber(x)
207
}
208
209
// Deprecated: Use Rewrite_Operation.Descriptor instead.
210
func (Rewrite_Operation) EnumDescriptor() ([]byte, []int) {
211
	return file_base_v1_base_proto_rawDescGZIP(), []int{3, 0}
212
}
213
214
// The Reference enum helps distinguish whether a name corresponds to an entity or a rule.
215
type SchemaDefinition_Reference int32
216
217
const (
218
	SchemaDefinition_REFERENCE_UNSPECIFIED SchemaDefinition_Reference = 0 // Default, unspecified reference.
219
	SchemaDefinition_REFERENCE_ENTITY      SchemaDefinition_Reference = 1 // Indicates that the name refers to an entity.
220
	SchemaDefinition_REFERENCE_RULE        SchemaDefinition_Reference = 2 // Indicates that the name refers to a rule.
221
)
222
223
// Enum value maps for SchemaDefinition_Reference.
224
var (
225
	SchemaDefinition_Reference_name = map[int32]string{
226
		0: "REFERENCE_UNSPECIFIED",
227
		1: "REFERENCE_ENTITY",
228
		2: "REFERENCE_RULE",
229
	}
230
	SchemaDefinition_Reference_value = map[string]int32{
231
		"REFERENCE_UNSPECIFIED": 0,
232
		"REFERENCE_ENTITY":      1,
233
		"REFERENCE_RULE":        2,
234
	}
235
)
236
237
func (x SchemaDefinition_Reference) Enum() *SchemaDefinition_Reference {
238
	p := new(SchemaDefinition_Reference)
239
	*p = x
240
	return p
241
}
242
243
func (x SchemaDefinition_Reference) String() string {
244
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
245
}
246
247
func (SchemaDefinition_Reference) Descriptor() protoreflect.EnumDescriptor {
248
	return file_base_v1_base_proto_enumTypes[3].Descriptor()
249
}
250
251
func (SchemaDefinition_Reference) Type() protoreflect.EnumType {
252
	return &file_base_v1_base_proto_enumTypes[3]
253
}
254
255
func (x SchemaDefinition_Reference) Number() protoreflect.EnumNumber {
256
	return protoreflect.EnumNumber(x)
257
}
258
259
// Deprecated: Use SchemaDefinition_Reference.Descriptor instead.
260
func (SchemaDefinition_Reference) EnumDescriptor() ([]byte, []int) {
261
	return file_base_v1_base_proto_rawDescGZIP(), []int{4, 0}
262
}
263
264
// The Reference enum specifies whether a name pertains to a relation, permission, or attribute.
265
type EntityDefinition_Reference int32
266
267
const (
268
	EntityDefinition_REFERENCE_UNSPECIFIED EntityDefinition_Reference = 0 // Default, unspecified reference.
269
	EntityDefinition_REFERENCE_RELATION    EntityDefinition_Reference = 1 // Indicates that the name refers to a relation.
270
	EntityDefinition_REFERENCE_PERMISSION  EntityDefinition_Reference = 2 // Indicates that the name refers to a permission.
271
	EntityDefinition_REFERENCE_ATTRIBUTE   EntityDefinition_Reference = 3 // Indicates that the name refers to an attribute.
272
)
273
274
// Enum value maps for EntityDefinition_Reference.
275
var (
276
	EntityDefinition_Reference_name = map[int32]string{
277
		0: "REFERENCE_UNSPECIFIED",
278
		1: "REFERENCE_RELATION",
279
		2: "REFERENCE_PERMISSION",
280
		3: "REFERENCE_ATTRIBUTE",
281
	}
282
	EntityDefinition_Reference_value = map[string]int32{
283
		"REFERENCE_UNSPECIFIED": 0,
284
		"REFERENCE_RELATION":    1,
285
		"REFERENCE_PERMISSION":  2,
286
		"REFERENCE_ATTRIBUTE":   3,
287
	}
288
)
289
290
func (x EntityDefinition_Reference) Enum() *EntityDefinition_Reference {
291
	p := new(EntityDefinition_Reference)
292
	*p = x
293
	return p
294
}
295
296
func (x EntityDefinition_Reference) String() string {
297
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
298
}
299
300
func (EntityDefinition_Reference) Descriptor() protoreflect.EnumDescriptor {
301
	return file_base_v1_base_proto_enumTypes[4].Descriptor()
302
}
303
304
func (EntityDefinition_Reference) Type() protoreflect.EnumType {
305
	return &file_base_v1_base_proto_enumTypes[4]
306
}
307
308
func (x EntityDefinition_Reference) Number() protoreflect.EnumNumber {
309
	return protoreflect.EnumNumber(x)
310
}
311
312
// Deprecated: Use EntityDefinition_Reference.Descriptor instead.
313
func (EntityDefinition_Reference) EnumDescriptor() ([]byte, []int) {
314
	return file_base_v1_base_proto_rawDescGZIP(), []int{5, 0}
315
}
316
317
// Operation is an enum representing the type of operation to be applied on the tree node.
318
type ExpandTreeNode_Operation int32
319
320
const (
321
	ExpandTreeNode_OPERATION_UNSPECIFIED  ExpandTreeNode_Operation = 0
322
	ExpandTreeNode_OPERATION_UNION        ExpandTreeNode_Operation = 1
323
	ExpandTreeNode_OPERATION_INTERSECTION ExpandTreeNode_Operation = 2
324
	ExpandTreeNode_OPERATION_EXCLUSION    ExpandTreeNode_Operation = 3
325
)
326
327
// Enum value maps for ExpandTreeNode_Operation.
328
var (
329
	ExpandTreeNode_Operation_name = map[int32]string{
330
		0: "OPERATION_UNSPECIFIED",
331
		1: "OPERATION_UNION",
332
		2: "OPERATION_INTERSECTION",
333
		3: "OPERATION_EXCLUSION",
334
	}
335
	ExpandTreeNode_Operation_value = map[string]int32{
336
		"OPERATION_UNSPECIFIED":  0,
337
		"OPERATION_UNION":        1,
338
		"OPERATION_INTERSECTION": 2,
339
		"OPERATION_EXCLUSION":    3,
340
	}
341
)
342
343
func (x ExpandTreeNode_Operation) Enum() *ExpandTreeNode_Operation {
344
	p := new(ExpandTreeNode_Operation)
345
	*p = x
346
	return p
347
}
348
349
func (x ExpandTreeNode_Operation) String() string {
350
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
351
}
352
353
func (ExpandTreeNode_Operation) Descriptor() protoreflect.EnumDescriptor {
354
	return file_base_v1_base_proto_enumTypes[5].Descriptor()
355
}
356
357
func (ExpandTreeNode_Operation) Type() protoreflect.EnumType {
358
	return &file_base_v1_base_proto_enumTypes[5]
359
}
360
361
func (x ExpandTreeNode_Operation) Number() protoreflect.EnumNumber {
362
	return protoreflect.EnumNumber(x)
363
}
364
365
// Deprecated: Use ExpandTreeNode_Operation.Descriptor instead.
366
func (ExpandTreeNode_Operation) EnumDescriptor() ([]byte, []int) {
367
	return file_base_v1_base_proto_rawDescGZIP(), []int{29, 0}
368
}
369
370
type DataChange_Operation int32
371
372
const (
373
	DataChange_OPERATION_UNSPECIFIED DataChange_Operation = 0 // Default operation, not specified.
374
	DataChange_OPERATION_CREATE      DataChange_Operation = 1 // Creation operation.
375
	DataChange_OPERATION_DELETE      DataChange_Operation = 2 // Deletion operation.
376
)
377
378
// Enum value maps for DataChange_Operation.
379
var (
380
	DataChange_Operation_name = map[int32]string{
381
		0: "OPERATION_UNSPECIFIED",
382
		1: "OPERATION_CREATE",
383
		2: "OPERATION_DELETE",
384
	}
385
	DataChange_Operation_value = map[string]int32{
386
		"OPERATION_UNSPECIFIED": 0,
387
		"OPERATION_CREATE":      1,
388
		"OPERATION_DELETE":      2,
389
	}
390
)
391
392
func (x DataChange_Operation) Enum() *DataChange_Operation {
393
	p := new(DataChange_Operation)
394
	*p = x
395
	return p
396
}
397
398
func (x DataChange_Operation) String() string {
399
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
400
}
401
402
func (DataChange_Operation) Descriptor() protoreflect.EnumDescriptor {
403
	return file_base_v1_base_proto_enumTypes[6].Descriptor()
404
}
405
406
func (DataChange_Operation) Type() protoreflect.EnumType {
407
	return &file_base_v1_base_proto_enumTypes[6]
408
}
409
410
func (x DataChange_Operation) Number() protoreflect.EnumNumber {
411
	return protoreflect.EnumNumber(x)
412
}
413
414
// Deprecated: Use DataChange_Operation.Descriptor instead.
415
func (DataChange_Operation) EnumDescriptor() ([]byte, []int) {
416
	return file_base_v1_base_proto_rawDescGZIP(), []int{36, 0}
417
}
418
419
// Context encapsulates the information related to a single operation,
420
// including the tuples involved and the associated attributes.
421
type Context struct {
422
	state         protoimpl.MessageState
423
	sizeCache     protoimpl.SizeCache
424
	unknownFields protoimpl.UnknownFields
425
426
	// A repeated field of tuples involved in the operation.
427
	Tuples []*Tuple `protobuf:"bytes,1,rep,name=tuples,proto3" json:"tuples,omitempty"`
428
	// A repeated field of attributes associated with the operation.
429
	Attributes []*Attribute `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"`
430
	// Additional data associated with the context.
431
	Data *structpb.Struct `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
432
}
433
434
func (x *Context) Reset() {
435
	*x = Context{}
436
	if protoimpl.UnsafeEnabled {
437
		mi := &file_base_v1_base_proto_msgTypes[0]
438
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
439
		ms.StoreMessageInfo(mi)
440
	}
441
}
442
443
func (x *Context) String() string {
444
	return protoimpl.X.MessageStringOf(x)
445
}
446
447
func (*Context) ProtoMessage() {}
448
449
func (x *Context) ProtoReflect() protoreflect.Message {
450
	mi := &file_base_v1_base_proto_msgTypes[0]
451
	if protoimpl.UnsafeEnabled && x != nil {
452
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
453
		if ms.LoadMessageInfo() == nil {
454
			ms.StoreMessageInfo(mi)
455
		}
456
		return ms
457
	}
458
	return mi.MessageOf(x)
459
}
460
461
// Deprecated: Use Context.ProtoReflect.Descriptor instead.
462
func (*Context) Descriptor() ([]byte, []int) {
463
	return file_base_v1_base_proto_rawDescGZIP(), []int{0}
464
}
465
466
func (x *Context) GetTuples() []*Tuple {
467
	if x != nil {
468
		return x.Tuples
469
	}
470
	return nil
471
}
472
473
func (x *Context) GetAttributes() []*Attribute {
474
	if x != nil {
475
		return x.Attributes
476
	}
477
	return nil
478
}
479
480
func (x *Context) GetData() *structpb.Struct {
481
	if x != nil {
482
		return x.Data
483
	}
484
	return nil
485
}
486
487
// Child represents a node in the permission tree.
488
type Child struct {
489
	state         protoimpl.MessageState
490
	sizeCache     protoimpl.SizeCache
491
	unknownFields protoimpl.UnknownFields
492
493
	// Child node can be either a leaf or a rewrite operation.
494
	//
495
	// Types that are assignable to Type:
496
	//
497
	//	*Child_Leaf
498
	//	*Child_Rewrite
499
	Type isChild_Type `protobuf_oneof:"type"`
500
}
501
502
func (x *Child) Reset() {
503
	*x = Child{}
504
	if protoimpl.UnsafeEnabled {
505
		mi := &file_base_v1_base_proto_msgTypes[1]
506
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
507
		ms.StoreMessageInfo(mi)
508
	}
509
}
510
511
func (x *Child) String() string {
512
	return protoimpl.X.MessageStringOf(x)
513
}
514
515
func (*Child) ProtoMessage() {}
516
517
func (x *Child) ProtoReflect() protoreflect.Message {
518
	mi := &file_base_v1_base_proto_msgTypes[1]
519
	if protoimpl.UnsafeEnabled && x != nil {
520
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
521
		if ms.LoadMessageInfo() == nil {
522
			ms.StoreMessageInfo(mi)
523
		}
524
		return ms
525
	}
526
	return mi.MessageOf(x)
527
}
528
529
// Deprecated: Use Child.ProtoReflect.Descriptor instead.
530
func (*Child) Descriptor() ([]byte, []int) {
531
	return file_base_v1_base_proto_rawDescGZIP(), []int{1}
532
}
533
534
func (m *Child) GetType() isChild_Type {
535
	if m != nil {
536
		return m.Type
537
	}
538
	return nil
539
}
540
541
func (x *Child) GetLeaf() *Leaf {
542
	if x, ok := x.GetType().(*Child_Leaf); ok {
543
		return x.Leaf
544
	}
545
	return nil
546
}
547
548
func (x *Child) GetRewrite() *Rewrite {
549
	if x, ok := x.GetType().(*Child_Rewrite); ok {
550
		return x.Rewrite
551
	}
552
	return nil
553
}
554
555
type isChild_Type interface {
556
	isChild_Type()
557
}
558
559
type Child_Leaf struct {
560
	// Leaf node in the permission tree.
561
	Leaf *Leaf `protobuf:"bytes,1,opt,name=leaf,proto3,oneof"`
562
}
563
564
type Child_Rewrite struct {
565
	// Rewrite operation in the permission tree.
566
	Rewrite *Rewrite `protobuf:"bytes,2,opt,name=rewrite,proto3,oneof"`
567
}
568
569
func (*Child_Leaf) isChild_Type() {}
570
571
func (*Child_Rewrite) isChild_Type() {}
572
573
// Leaf represents a leaf node in the permission tree.
574
type Leaf struct {
575
	state         protoimpl.MessageState
576
	sizeCache     protoimpl.SizeCache
577
	unknownFields protoimpl.UnknownFields
578
579
	// Leaf node can be one of several types.
580
	//
581
	// Types that are assignable to Type:
582
	//
583
	//	*Leaf_ComputedUserSet
584
	//	*Leaf_TupleToUserSet
585
	//	*Leaf_ComputedAttribute
586
	//	*Leaf_Call
587
	Type isLeaf_Type `protobuf_oneof:"type"`
588
}
589
590
func (x *Leaf) Reset() {
591
	*x = Leaf{}
592
	if protoimpl.UnsafeEnabled {
593
		mi := &file_base_v1_base_proto_msgTypes[2]
594
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
595
		ms.StoreMessageInfo(mi)
596
	}
597
}
598
599
func (x *Leaf) String() string {
600
	return protoimpl.X.MessageStringOf(x)
601
}
602
603
func (*Leaf) ProtoMessage() {}
604
605
func (x *Leaf) ProtoReflect() protoreflect.Message {
606
	mi := &file_base_v1_base_proto_msgTypes[2]
607
	if protoimpl.UnsafeEnabled && x != nil {
608
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
609
		if ms.LoadMessageInfo() == nil {
610
			ms.StoreMessageInfo(mi)
611
		}
612
		return ms
613
	}
614
	return mi.MessageOf(x)
615
}
616
617
// Deprecated: Use Leaf.ProtoReflect.Descriptor instead.
618
func (*Leaf) Descriptor() ([]byte, []int) {
619
	return file_base_v1_base_proto_rawDescGZIP(), []int{2}
620
}
621
622
func (m *Leaf) GetType() isLeaf_Type {
623
	if m != nil {
624
		return m.Type
625
	}
626
	return nil
627
}
628
629
func (x *Leaf) GetComputedUserSet() *ComputedUserSet {
630
	if x, ok := x.GetType().(*Leaf_ComputedUserSet); ok {
631
		return x.ComputedUserSet
632
	}
633
	return nil
634
}
635
636
func (x *Leaf) GetTupleToUserSet() *TupleToUserSet {
637
	if x, ok := x.GetType().(*Leaf_TupleToUserSet); ok {
638
		return x.TupleToUserSet
639
	}
640
	return nil
641
}
642
643
func (x *Leaf) GetComputedAttribute() *ComputedAttribute {
644
	if x, ok := x.GetType().(*Leaf_ComputedAttribute); ok {
645
		return x.ComputedAttribute
646
	}
647
	return nil
648
}
649
650
func (x *Leaf) GetCall() *Call {
651
	if x, ok := x.GetType().(*Leaf_Call); ok {
652
		return x.Call
653
	}
654
	return nil
655
}
656
657
type isLeaf_Type interface {
658
	isLeaf_Type()
659
}
660
661
type Leaf_ComputedUserSet struct {
662
	// A computed set of users.
663
	ComputedUserSet *ComputedUserSet `protobuf:"bytes,1,opt,name=computed_user_set,json=computedUserSet,proto3,oneof"`
664
}
665
666
type Leaf_TupleToUserSet struct {
667
	// A tuple to user set conversion.
668
	TupleToUserSet *TupleToUserSet `protobuf:"bytes,2,opt,name=tuple_to_user_set,json=tupleToUserSet,proto3,oneof"`
669
}
670
671
type Leaf_ComputedAttribute struct {
672
	// A computed attribute.
673
	ComputedAttribute *ComputedAttribute `protobuf:"bytes,3,opt,name=computed_attribute,json=computedAttribute,proto3,oneof"`
674
}
675
676
type Leaf_Call struct {
677
	// A call to a function or method.
678
	Call *Call `protobuf:"bytes,4,opt,name=call,proto3,oneof"`
679
}
680
681
func (*Leaf_ComputedUserSet) isLeaf_Type() {}
682
683
func (*Leaf_TupleToUserSet) isLeaf_Type() {}
684
685
func (*Leaf_ComputedAttribute) isLeaf_Type() {}
686
687
func (*Leaf_Call) isLeaf_Type() {}
688
689
// The Rewrite message represents a specific rewrite operation.
690
// This operation could be one of the following: union, intersection, or exclusion.
691
type Rewrite struct {
692
	state         protoimpl.MessageState
693
	sizeCache     protoimpl.SizeCache
694
	unknownFields protoimpl.UnknownFields
695
696
	// The type of rewrite operation to be performed.
697
	RewriteOperation Rewrite_Operation `protobuf:"varint,1,opt,name=rewrite_operation,json=rewriteOperation,proto3,enum=base.v1.Rewrite_Operation" json:"rewrite_operation,omitempty"`
698
	// A list of children that are operated upon by the rewrite operation.
699
	Children []*Child `protobuf:"bytes,2,rep,name=children,proto3" json:"children,omitempty"`
700
}
701
702
func (x *Rewrite) Reset() {
703
	*x = Rewrite{}
704
	if protoimpl.UnsafeEnabled {
705
		mi := &file_base_v1_base_proto_msgTypes[3]
706
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
707
		ms.StoreMessageInfo(mi)
708
	}
709
}
710
711
func (x *Rewrite) String() string {
712
	return protoimpl.X.MessageStringOf(x)
713
}
714
715
func (*Rewrite) ProtoMessage() {}
716
717
func (x *Rewrite) ProtoReflect() protoreflect.Message {
718
	mi := &file_base_v1_base_proto_msgTypes[3]
719
	if protoimpl.UnsafeEnabled && x != nil {
720
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
721
		if ms.LoadMessageInfo() == nil {
722
			ms.StoreMessageInfo(mi)
723
		}
724
		return ms
725
	}
726
	return mi.MessageOf(x)
727
}
728
729
// Deprecated: Use Rewrite.ProtoReflect.Descriptor instead.
730
func (*Rewrite) Descriptor() ([]byte, []int) {
731
	return file_base_v1_base_proto_rawDescGZIP(), []int{3}
732
}
733
734
func (x *Rewrite) GetRewriteOperation() Rewrite_Operation {
735
	if x != nil {
736
		return x.RewriteOperation
737
	}
738
	return Rewrite_OPERATION_UNSPECIFIED
739
}
740
741
func (x *Rewrite) GetChildren() []*Child {
742
	if x != nil {
743
		return x.Children
744
	}
745
	return nil
746
}
747
748
// The SchemaDefinition message provides definitions for entities and rules,
749
// and includes references to clarify whether a name refers to an entity or a rule.
750
type SchemaDefinition struct {
751
	state         protoimpl.MessageState
752
	sizeCache     protoimpl.SizeCache
753
	unknownFields protoimpl.UnknownFields
754
755
	// Map of entity definitions. The key is the entity name, and the value is the corresponding EntityDefinition.
756
	EntityDefinitions map[string]*EntityDefinition `protobuf:"bytes,1,rep,name=entity_definitions,json=entityDefinitions,proto3" json:"entity_definitions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
757
	// Map of rule definitions. The key is the rule name, and the value is the corresponding RuleDefinition.
758
	RuleDefinitions map[string]*RuleDefinition `protobuf:"bytes,2,rep,name=rule_definitions,json=ruleDefinitions,proto3" json:"rule_definitions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
759
	// Map of references to signify whether a string refers to an entity or a rule.
760
	References map[string]SchemaDefinition_Reference `protobuf:"bytes,3,rep,name=references,proto3" json:"references,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=base.v1.SchemaDefinition_Reference"`
761
}
762
763
func (x *SchemaDefinition) Reset() {
764
	*x = SchemaDefinition{}
765
	if protoimpl.UnsafeEnabled {
766
		mi := &file_base_v1_base_proto_msgTypes[4]
767
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
768
		ms.StoreMessageInfo(mi)
769
	}
770
}
771
772
func (x *SchemaDefinition) String() string {
773
	return protoimpl.X.MessageStringOf(x)
774
}
775
776
func (*SchemaDefinition) ProtoMessage() {}
777
778
func (x *SchemaDefinition) ProtoReflect() protoreflect.Message {
779
	mi := &file_base_v1_base_proto_msgTypes[4]
780
	if protoimpl.UnsafeEnabled && x != nil {
781
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
782
		if ms.LoadMessageInfo() == nil {
783
			ms.StoreMessageInfo(mi)
784
		}
785
		return ms
786
	}
787
	return mi.MessageOf(x)
788
}
789
790
// Deprecated: Use SchemaDefinition.ProtoReflect.Descriptor instead.
791
func (*SchemaDefinition) Descriptor() ([]byte, []int) {
792
	return file_base_v1_base_proto_rawDescGZIP(), []int{4}
793
}
794
795
func (x *SchemaDefinition) GetEntityDefinitions() map[string]*EntityDefinition {
796
	if x != nil {
797
		return x.EntityDefinitions
798
	}
799
	return nil
800
}
801
802
func (x *SchemaDefinition) GetRuleDefinitions() map[string]*RuleDefinition {
803
	if x != nil {
804
		return x.RuleDefinitions
805
	}
806
	return nil
807
}
808
809
func (x *SchemaDefinition) GetReferences() map[string]SchemaDefinition_Reference {
810
	if x != nil {
811
		return x.References
812
	}
813
	return nil
814
}
815
816
// The EntityDefinition message provides detailed information about a specific entity.
817
type EntityDefinition struct {
818
	state         protoimpl.MessageState
819
	sizeCache     protoimpl.SizeCache
820
	unknownFields protoimpl.UnknownFields
821
822
	// The name of the entity, which follows a specific string pattern and has a maximum byte size.
823
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
824
	// Map of relation definitions within this entity. The key is the relation name, and the value is the RelationDefinition.
825
	Relations map[string]*RelationDefinition `protobuf:"bytes,2,rep,name=relations,proto3" json:"relations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
826
	// Map of permission definitions within this entity. The key is the permission name, and the value is the PermissionDefinition.
827
	Permissions map[string]*PermissionDefinition `protobuf:"bytes,3,rep,name=permissions,proto3" json:"permissions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
828
	// Map of attribute definitions within this entity. The key is the attribute name, and the value is the AttributeDefinition.
829
	Attributes map[string]*AttributeDefinition `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
830
	// Map of references indicating whether a string pertains to a relation, permission, or attribute.
831
	References map[string]EntityDefinition_Reference `protobuf:"bytes,5,rep,name=references,proto3" json:"references,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=base.v1.EntityDefinition_Reference"`
832
}
833
834
func (x *EntityDefinition) Reset() {
835
	*x = EntityDefinition{}
836
	if protoimpl.UnsafeEnabled {
837
		mi := &file_base_v1_base_proto_msgTypes[5]
838
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
839
		ms.StoreMessageInfo(mi)
840
	}
841
}
842
843
func (x *EntityDefinition) String() string {
844
	return protoimpl.X.MessageStringOf(x)
845
}
846
847
func (*EntityDefinition) ProtoMessage() {}
848
849
func (x *EntityDefinition) ProtoReflect() protoreflect.Message {
850
	mi := &file_base_v1_base_proto_msgTypes[5]
851
	if protoimpl.UnsafeEnabled && x != nil {
852
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
853
		if ms.LoadMessageInfo() == nil {
854
			ms.StoreMessageInfo(mi)
855
		}
856
		return ms
857
	}
858
	return mi.MessageOf(x)
859
}
860
861
// Deprecated: Use EntityDefinition.ProtoReflect.Descriptor instead.
862
func (*EntityDefinition) Descriptor() ([]byte, []int) {
863
	return file_base_v1_base_proto_rawDescGZIP(), []int{5}
864
}
865
866
func (x *EntityDefinition) GetName() string {
867
	if x != nil {
868
		return x.Name
869
	}
870
	return ""
871
}
872
873
func (x *EntityDefinition) GetRelations() map[string]*RelationDefinition {
874
	if x != nil {
875
		return x.Relations
876
	}
877
	return nil
878
}
879
880
func (x *EntityDefinition) GetPermissions() map[string]*PermissionDefinition {
881
	if x != nil {
882
		return x.Permissions
883
	}
884
	return nil
885
}
886
887
func (x *EntityDefinition) GetAttributes() map[string]*AttributeDefinition {
888
	if x != nil {
889
		return x.Attributes
890
	}
891
	return nil
892
}
893
894
func (x *EntityDefinition) GetReferences() map[string]EntityDefinition_Reference {
895
	if x != nil {
896
		return x.References
897
	}
898
	return nil
899
}
900
901
// The RuleDefinition message provides detailed information about a specific rule.
902
type RuleDefinition struct {
903
	state         protoimpl.MessageState
904
	sizeCache     protoimpl.SizeCache
905
	unknownFields protoimpl.UnknownFields
906
907
	// The name of the rule, which follows a specific string pattern and has a maximum byte size.
908
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
909
	// Map of arguments for this rule. The key is the attribute name, and the value is the AttributeType.
910
	Arguments map[string]AttributeType `protobuf:"bytes,2,rep,name=arguments,proto3" json:"arguments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3,enum=base.v1.AttributeType"`
911
	// The expression for this rule in the form of a google.api.expr.v1alpha1.CheckedExpr.
912
	Expression *v1alpha1.CheckedExpr `protobuf:"bytes,3,opt,name=expression,proto3" json:"expression,omitempty"`
913
}
914
915
func (x *RuleDefinition) Reset() {
916
	*x = RuleDefinition{}
917
	if protoimpl.UnsafeEnabled {
918
		mi := &file_base_v1_base_proto_msgTypes[6]
919
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
920
		ms.StoreMessageInfo(mi)
921
	}
922
}
923
924
func (x *RuleDefinition) String() string {
925
	return protoimpl.X.MessageStringOf(x)
926
}
927
928
func (*RuleDefinition) ProtoMessage() {}
929
930
func (x *RuleDefinition) ProtoReflect() protoreflect.Message {
931
	mi := &file_base_v1_base_proto_msgTypes[6]
932
	if protoimpl.UnsafeEnabled && x != nil {
933
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
934
		if ms.LoadMessageInfo() == nil {
935
			ms.StoreMessageInfo(mi)
936
		}
937
		return ms
938
	}
939
	return mi.MessageOf(x)
940
}
941
942
// Deprecated: Use RuleDefinition.ProtoReflect.Descriptor instead.
943
func (*RuleDefinition) Descriptor() ([]byte, []int) {
944
	return file_base_v1_base_proto_rawDescGZIP(), []int{6}
945
}
946
947
func (x *RuleDefinition) GetName() string {
948
	if x != nil {
949
		return x.Name
950
	}
951
	return ""
952
}
953
954
func (x *RuleDefinition) GetArguments() map[string]AttributeType {
955
	if x != nil {
956
		return x.Arguments
957
	}
958
	return nil
959
}
960
961
func (x *RuleDefinition) GetExpression() *v1alpha1.CheckedExpr {
962
	if x != nil {
963
		return x.Expression
964
	}
965
	return nil
966
}
967
968
// The AttributeDefinition message provides detailed information about a specific attribute.
969
type AttributeDefinition struct {
970
	state         protoimpl.MessageState
971
	sizeCache     protoimpl.SizeCache
972
	unknownFields protoimpl.UnknownFields
973
974
	// The name of the attribute, which follows a specific string pattern and has a maximum byte size.
975
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
976
	// The type of the attribute.
977
	Type AttributeType `protobuf:"varint,2,opt,name=type,proto3,enum=base.v1.AttributeType" json:"type,omitempty"`
978
}
979
980
func (x *AttributeDefinition) Reset() {
981
	*x = AttributeDefinition{}
982
	if protoimpl.UnsafeEnabled {
983
		mi := &file_base_v1_base_proto_msgTypes[7]
984
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
985
		ms.StoreMessageInfo(mi)
986
	}
987
}
988
989
func (x *AttributeDefinition) String() string {
990
	return protoimpl.X.MessageStringOf(x)
991
}
992
993
func (*AttributeDefinition) ProtoMessage() {}
994
995
func (x *AttributeDefinition) ProtoReflect() protoreflect.Message {
996
	mi := &file_base_v1_base_proto_msgTypes[7]
997
	if protoimpl.UnsafeEnabled && x != nil {
998
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
999
		if ms.LoadMessageInfo() == nil {
1000
			ms.StoreMessageInfo(mi)
1001
		}
1002
		return ms
1003
	}
1004
	return mi.MessageOf(x)
1005
}
1006
1007
// Deprecated: Use AttributeDefinition.ProtoReflect.Descriptor instead.
1008
func (*AttributeDefinition) Descriptor() ([]byte, []int) {
1009
	return file_base_v1_base_proto_rawDescGZIP(), []int{7}
1010
}
1011
1012
func (x *AttributeDefinition) GetName() string {
1013
	if x != nil {
1014
		return x.Name
1015
	}
1016
	return ""
1017
}
1018
1019
func (x *AttributeDefinition) GetType() AttributeType {
1020
	if x != nil {
1021
		return x.Type
1022
	}
1023
	return AttributeType_ATTRIBUTE_TYPE_UNSPECIFIED
1024
}
1025
1026
// The RelationDefinition message provides detailed information about a specific relation.
1027
type RelationDefinition struct {
1028
	state         protoimpl.MessageState
1029
	sizeCache     protoimpl.SizeCache
1030
	unknownFields protoimpl.UnknownFields
1031
1032
	// The name of the relation, which follows a specific string pattern and has a maximum byte size.
1033
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1034
	// A list of references to other relations.
1035
	RelationReferences []*RelationReference `protobuf:"bytes,2,rep,name=relation_references,json=relationReferences,proto3" json:"relation_references,omitempty"`
1036
}
1037
1038
func (x *RelationDefinition) Reset() {
1039
	*x = RelationDefinition{}
1040
	if protoimpl.UnsafeEnabled {
1041
		mi := &file_base_v1_base_proto_msgTypes[8]
1042
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1043
		ms.StoreMessageInfo(mi)
1044
	}
1045
}
1046
1047
func (x *RelationDefinition) String() string {
1048
	return protoimpl.X.MessageStringOf(x)
1049
}
1050
1051
func (*RelationDefinition) ProtoMessage() {}
1052
1053
func (x *RelationDefinition) ProtoReflect() protoreflect.Message {
1054
	mi := &file_base_v1_base_proto_msgTypes[8]
1055
	if protoimpl.UnsafeEnabled && x != nil {
1056
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1057
		if ms.LoadMessageInfo() == nil {
1058
			ms.StoreMessageInfo(mi)
1059
		}
1060
		return ms
1061
	}
1062
	return mi.MessageOf(x)
1063
}
1064
1065
// Deprecated: Use RelationDefinition.ProtoReflect.Descriptor instead.
1066
func (*RelationDefinition) Descriptor() ([]byte, []int) {
1067
	return file_base_v1_base_proto_rawDescGZIP(), []int{8}
1068
}
1069
1070
func (x *RelationDefinition) GetName() string {
1071
	if x != nil {
1072
		return x.Name
1073
	}
1074
	return ""
1075
}
1076
1077
func (x *RelationDefinition) GetRelationReferences() []*RelationReference {
1078
	if x != nil {
1079
		return x.RelationReferences
1080
	}
1081
	return nil
1082
}
1083
1084
// The PermissionDefinition message provides detailed information about a specific permission.
1085
type PermissionDefinition struct {
1086
	state         protoimpl.MessageState
1087
	sizeCache     protoimpl.SizeCache
1088
	unknownFields protoimpl.UnknownFields
1089
1090
	// The name of the permission, which follows a specific string pattern and has a maximum byte size.
1091
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1092
	// The child related to this permission.
1093
	Child *Child `protobuf:"bytes,2,opt,name=child,proto3" json:"child,omitempty"`
1094
}
1095
1096
func (x *PermissionDefinition) Reset() {
1097
	*x = PermissionDefinition{}
1098
	if protoimpl.UnsafeEnabled {
1099
		mi := &file_base_v1_base_proto_msgTypes[9]
1100
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1101
		ms.StoreMessageInfo(mi)
1102
	}
1103
}
1104
1105
func (x *PermissionDefinition) String() string {
1106
	return protoimpl.X.MessageStringOf(x)
1107
}
1108
1109
func (*PermissionDefinition) ProtoMessage() {}
1110
1111
func (x *PermissionDefinition) ProtoReflect() protoreflect.Message {
1112
	mi := &file_base_v1_base_proto_msgTypes[9]
1113
	if protoimpl.UnsafeEnabled && x != nil {
1114
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1115
		if ms.LoadMessageInfo() == nil {
1116
			ms.StoreMessageInfo(mi)
1117
		}
1118
		return ms
1119
	}
1120
	return mi.MessageOf(x)
1121
}
1122
1123
// Deprecated: Use PermissionDefinition.ProtoReflect.Descriptor instead.
1124
func (*PermissionDefinition) Descriptor() ([]byte, []int) {
1125
	return file_base_v1_base_proto_rawDescGZIP(), []int{9}
1126
}
1127
1128
func (x *PermissionDefinition) GetName() string {
1129
	if x != nil {
1130
		return x.Name
1131
	}
1132
	return ""
1133
}
1134
1135
func (x *PermissionDefinition) GetChild() *Child {
1136
	if x != nil {
1137
		return x.Child
1138
	}
1139
	return nil
1140
}
1141
1142
// The RelationReference message provides a reference to a specific relation.
1143
type RelationReference struct {
1144
	state         protoimpl.MessageState
1145
	sizeCache     protoimpl.SizeCache
1146
	unknownFields protoimpl.UnknownFields
1147
1148
	// The type of the referenced entity, which follows a specific string pattern and has a maximum byte size.
1149
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
1150
	// The name of the referenced relation, which follows a specific string pattern and has a maximum byte size.
1151
	Relation string `protobuf:"bytes,2,opt,name=relation,proto3" json:"relation,omitempty"`
1152
}
1153
1154
func (x *RelationReference) Reset() {
1155
	*x = RelationReference{}
1156
	if protoimpl.UnsafeEnabled {
1157
		mi := &file_base_v1_base_proto_msgTypes[10]
1158
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1159
		ms.StoreMessageInfo(mi)
1160
	}
1161
}
1162
1163
func (x *RelationReference) String() string {
1164
	return protoimpl.X.MessageStringOf(x)
1165
}
1166
1167
func (*RelationReference) ProtoMessage() {}
1168
1169
func (x *RelationReference) ProtoReflect() protoreflect.Message {
1170
	mi := &file_base_v1_base_proto_msgTypes[10]
1171
	if protoimpl.UnsafeEnabled && x != nil {
1172
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1173
		if ms.LoadMessageInfo() == nil {
1174
			ms.StoreMessageInfo(mi)
1175
		}
1176
		return ms
1177
	}
1178
	return mi.MessageOf(x)
1179
}
1180
1181
// Deprecated: Use RelationReference.ProtoReflect.Descriptor instead.
1182
func (*RelationReference) Descriptor() ([]byte, []int) {
1183
	return file_base_v1_base_proto_rawDescGZIP(), []int{10}
1184
}
1185
1186
func (x *RelationReference) GetType() string {
1187
	if x != nil {
1188
		return x.Type
1189
	}
1190
	return ""
1191
}
1192
1193
func (x *RelationReference) GetRelation() string {
1194
	if x != nil {
1195
		return x.Relation
1196
	}
1197
	return ""
1198
}
1199
1200
type Entrance struct {
1201
	state         protoimpl.MessageState
1202
	sizeCache     protoimpl.SizeCache
1203
	unknownFields protoimpl.UnknownFields
1204
1205
	// The type of the entrance entity, which follows a specific string pattern and has a maximum byte size.
1206
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
1207
	// The value associated with the entrance, which follows a specific string pattern and has a maximum byte size.
1208
	Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
1209
}
1210
1211
func (x *Entrance) Reset() {
1212
	*x = Entrance{}
1213
	if protoimpl.UnsafeEnabled {
1214
		mi := &file_base_v1_base_proto_msgTypes[11]
1215
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1216
		ms.StoreMessageInfo(mi)
1217
	}
1218
}
1219
1220
func (x *Entrance) String() string {
1221
	return protoimpl.X.MessageStringOf(x)
1222
}
1223
1224
func (*Entrance) ProtoMessage() {}
1225
1226
func (x *Entrance) ProtoReflect() protoreflect.Message {
1227
	mi := &file_base_v1_base_proto_msgTypes[11]
1228
	if protoimpl.UnsafeEnabled && x != nil {
1229
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1230
		if ms.LoadMessageInfo() == nil {
1231
			ms.StoreMessageInfo(mi)
1232
		}
1233
		return ms
1234
	}
1235
	return mi.MessageOf(x)
1236
}
1237
1238
// Deprecated: Use Entrance.ProtoReflect.Descriptor instead.
1239
func (*Entrance) Descriptor() ([]byte, []int) {
1240
	return file_base_v1_base_proto_rawDescGZIP(), []int{11}
1241
}
1242
1243
func (x *Entrance) GetType() string {
1244
	if x != nil {
1245
		return x.Type
1246
	}
1247
	return ""
1248
}
1249
1250
func (x *Entrance) GetValue() string {
1251
	if x != nil {
1252
		return x.Value
1253
	}
1254
	return ""
1255
}
1256
1257
// Argument defines the type of argument in a Call. It can be either a ComputedAttribute or a ContextAttribute.
1258
type Argument struct {
1259
	state         protoimpl.MessageState
1260
	sizeCache     protoimpl.SizeCache
1261
	unknownFields protoimpl.UnknownFields
1262
1263
	// Types that are assignable to Type:
1264
	//
1265
	//	*Argument_ComputedAttribute
1266
	Type isArgument_Type `protobuf_oneof:"type"`
1267
}
1268
1269
func (x *Argument) Reset() {
1270
	*x = Argument{}
1271
	if protoimpl.UnsafeEnabled {
1272
		mi := &file_base_v1_base_proto_msgTypes[12]
1273
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1274
		ms.StoreMessageInfo(mi)
1275
	}
1276
}
1277
1278
func (x *Argument) String() string {
1279
	return protoimpl.X.MessageStringOf(x)
1280
}
1281
1282
func (*Argument) ProtoMessage() {}
1283
1284
func (x *Argument) ProtoReflect() protoreflect.Message {
1285
	mi := &file_base_v1_base_proto_msgTypes[12]
1286
	if protoimpl.UnsafeEnabled && x != nil {
1287
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1288
		if ms.LoadMessageInfo() == nil {
1289
			ms.StoreMessageInfo(mi)
1290
		}
1291
		return ms
1292
	}
1293
	return mi.MessageOf(x)
1294
}
1295
1296
// Deprecated: Use Argument.ProtoReflect.Descriptor instead.
1297
func (*Argument) Descriptor() ([]byte, []int) {
1298
	return file_base_v1_base_proto_rawDescGZIP(), []int{12}
1299
}
1300
1301
func (m *Argument) GetType() isArgument_Type {
1302
	if m != nil {
1303
		return m.Type
1304
	}
1305
	return nil
1306
}
1307
1308
func (x *Argument) GetComputedAttribute() *ComputedAttribute {
1309
	if x, ok := x.GetType().(*Argument_ComputedAttribute); ok {
1310
		return x.ComputedAttribute
1311
	}
1312
	return nil
1313
}
1314
1315
type isArgument_Type interface {
1316
	isArgument_Type()
1317
}
1318
1319
type Argument_ComputedAttribute struct {
1320
	ComputedAttribute *ComputedAttribute `protobuf:"bytes,1,opt,name=computed_attribute,json=computedAttribute,proto3,oneof"`
1321
}
1322
1323
func (*Argument_ComputedAttribute) isArgument_Type() {}
1324
1325
// Call represents a call to a rule. It includes the name of the rule and the arguments passed to it.
1326
type Call struct {
1327
	state         protoimpl.MessageState
1328
	sizeCache     protoimpl.SizeCache
1329
	unknownFields protoimpl.UnknownFields
1330
1331
	RuleName  string      `protobuf:"bytes,1,opt,name=rule_name,json=ruleName,proto3" json:"rule_name,omitempty"` // Name of the rule
1332
	Arguments []*Argument `protobuf:"bytes,2,rep,name=arguments,proto3" json:"arguments,omitempty"`               // Arguments passed to the rule
1333
}
1334
1335
func (x *Call) Reset() {
1336
	*x = Call{}
1337
	if protoimpl.UnsafeEnabled {
1338
		mi := &file_base_v1_base_proto_msgTypes[13]
1339
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1340
		ms.StoreMessageInfo(mi)
1341
	}
1342
}
1343
1344
func (x *Call) String() string {
1345
	return protoimpl.X.MessageStringOf(x)
1346
}
1347
1348
func (*Call) ProtoMessage() {}
1349
1350
func (x *Call) ProtoReflect() protoreflect.Message {
1351
	mi := &file_base_v1_base_proto_msgTypes[13]
1352
	if protoimpl.UnsafeEnabled && x != nil {
1353
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1354
		if ms.LoadMessageInfo() == nil {
1355
			ms.StoreMessageInfo(mi)
1356
		}
1357
		return ms
1358
	}
1359
	return mi.MessageOf(x)
1360
}
1361
1362
// Deprecated: Use Call.ProtoReflect.Descriptor instead.
1363
func (*Call) Descriptor() ([]byte, []int) {
1364
	return file_base_v1_base_proto_rawDescGZIP(), []int{13}
1365
}
1366
1367
func (x *Call) GetRuleName() string {
1368
	if x != nil {
1369
		return x.RuleName
1370
	}
1371
	return ""
1372
}
1373
1374
func (x *Call) GetArguments() []*Argument {
1375
	if x != nil {
1376
		return x.Arguments
1377
	}
1378
	return nil
1379
}
1380
1381
// ComputedAttribute defines a computed attribute which includes its name.
1382
type ComputedAttribute struct {
1383
	state         protoimpl.MessageState
1384
	sizeCache     protoimpl.SizeCache
1385
	unknownFields protoimpl.UnknownFields
1386
1387
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Name of the computed attribute
1388
}
1389
1390
func (x *ComputedAttribute) Reset() {
1391
	*x = ComputedAttribute{}
1392
	if protoimpl.UnsafeEnabled {
1393
		mi := &file_base_v1_base_proto_msgTypes[14]
1394
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1395
		ms.StoreMessageInfo(mi)
1396
	}
1397
}
1398
1399
func (x *ComputedAttribute) String() string {
1400
	return protoimpl.X.MessageStringOf(x)
1401
}
1402
1403
func (*ComputedAttribute) ProtoMessage() {}
1404
1405
func (x *ComputedAttribute) ProtoReflect() protoreflect.Message {
1406
	mi := &file_base_v1_base_proto_msgTypes[14]
1407
	if protoimpl.UnsafeEnabled && x != nil {
1408
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1409
		if ms.LoadMessageInfo() == nil {
1410
			ms.StoreMessageInfo(mi)
1411
		}
1412
		return ms
1413
	}
1414
	return mi.MessageOf(x)
1415
}
1416
1417
// Deprecated: Use ComputedAttribute.ProtoReflect.Descriptor instead.
1418
func (*ComputedAttribute) Descriptor() ([]byte, []int) {
1419
	return file_base_v1_base_proto_rawDescGZIP(), []int{14}
1420
}
1421
1422
func (x *ComputedAttribute) GetName() string {
1423
	if x != nil {
1424
		return x.Name
1425
	}
1426
	return ""
1427
}
1428
1429
// ComputedUserSet defines a set of computed users which includes the relation name.
1430
type ComputedUserSet struct {
1431
	state         protoimpl.MessageState
1432
	sizeCache     protoimpl.SizeCache
1433
	unknownFields protoimpl.UnknownFields
1434
1435
	Relation string `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` // Relation name
1436
}
1437
1438
func (x *ComputedUserSet) Reset() {
1439
	*x = ComputedUserSet{}
1440
	if protoimpl.UnsafeEnabled {
1441
		mi := &file_base_v1_base_proto_msgTypes[15]
1442
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1443
		ms.StoreMessageInfo(mi)
1444
	}
1445
}
1446
1447
func (x *ComputedUserSet) String() string {
1448
	return protoimpl.X.MessageStringOf(x)
1449
}
1450
1451
func (*ComputedUserSet) ProtoMessage() {}
1452
1453
func (x *ComputedUserSet) ProtoReflect() protoreflect.Message {
1454
	mi := &file_base_v1_base_proto_msgTypes[15]
1455
	if protoimpl.UnsafeEnabled && x != nil {
1456
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1457
		if ms.LoadMessageInfo() == nil {
1458
			ms.StoreMessageInfo(mi)
1459
		}
1460
		return ms
1461
	}
1462
	return mi.MessageOf(x)
1463
}
1464
1465
// Deprecated: Use ComputedUserSet.ProtoReflect.Descriptor instead.
1466
func (*ComputedUserSet) Descriptor() ([]byte, []int) {
1467
	return file_base_v1_base_proto_rawDescGZIP(), []int{15}
1468
}
1469
1470
func (x *ComputedUserSet) GetRelation() string {
1471
	if x != nil {
1472
		return x.Relation
1473
	}
1474
	return ""
1475
}
1476
1477
// TupleToUserSet defines a mapping from tuple sets to computed user sets.
1478
type TupleToUserSet struct {
1479
	state         protoimpl.MessageState
1480
	sizeCache     protoimpl.SizeCache
1481
	unknownFields protoimpl.UnknownFields
1482
1483
	TupleSet *TupleSet        `protobuf:"bytes,1,opt,name=tupleSet,proto3" json:"tupleSet,omitempty"` // The tuple set
1484
	Computed *ComputedUserSet `protobuf:"bytes,2,opt,name=computed,proto3" json:"computed,omitempty"` // The computed user set
1485
}
1486
1487
func (x *TupleToUserSet) Reset() {
1488
	*x = TupleToUserSet{}
1489
	if protoimpl.UnsafeEnabled {
1490
		mi := &file_base_v1_base_proto_msgTypes[16]
1491
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1492
		ms.StoreMessageInfo(mi)
1493
	}
1494
}
1495
1496
func (x *TupleToUserSet) String() string {
1497
	return protoimpl.X.MessageStringOf(x)
1498
}
1499
1500
func (*TupleToUserSet) ProtoMessage() {}
1501
1502
func (x *TupleToUserSet) ProtoReflect() protoreflect.Message {
1503
	mi := &file_base_v1_base_proto_msgTypes[16]
1504
	if protoimpl.UnsafeEnabled && x != nil {
1505
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1506
		if ms.LoadMessageInfo() == nil {
1507
			ms.StoreMessageInfo(mi)
1508
		}
1509
		return ms
1510
	}
1511
	return mi.MessageOf(x)
1512
}
1513
1514
// Deprecated: Use TupleToUserSet.ProtoReflect.Descriptor instead.
1515
func (*TupleToUserSet) Descriptor() ([]byte, []int) {
1516
	return file_base_v1_base_proto_rawDescGZIP(), []int{16}
1517
}
1518
1519
func (x *TupleToUserSet) GetTupleSet() *TupleSet {
1520
	if x != nil {
1521
		return x.TupleSet
1522
	}
1523
	return nil
1524
}
1525
1526
func (x *TupleToUserSet) GetComputed() *ComputedUserSet {
1527
	if x != nil {
1528
		return x.Computed
1529
	}
1530
	return nil
1531
}
1532
1533
// TupleSet represents a set of tuples associated with a specific relation.
1534
type TupleSet struct {
1535
	state         protoimpl.MessageState
1536
	sizeCache     protoimpl.SizeCache
1537
	unknownFields protoimpl.UnknownFields
1538
1539
	Relation string `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"`
1540
}
1541
1542
func (x *TupleSet) Reset() {
1543
	*x = TupleSet{}
1544
	if protoimpl.UnsafeEnabled {
1545
		mi := &file_base_v1_base_proto_msgTypes[17]
1546
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1547
		ms.StoreMessageInfo(mi)
1548
	}
1549
}
1550
1551
func (x *TupleSet) String() string {
1552
	return protoimpl.X.MessageStringOf(x)
1553
}
1554
1555
func (*TupleSet) ProtoMessage() {}
1556
1557
func (x *TupleSet) ProtoReflect() protoreflect.Message {
1558
	mi := &file_base_v1_base_proto_msgTypes[17]
1559
	if protoimpl.UnsafeEnabled && x != nil {
1560
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1561
		if ms.LoadMessageInfo() == nil {
1562
			ms.StoreMessageInfo(mi)
1563
		}
1564
		return ms
1565
	}
1566
	return mi.MessageOf(x)
1567
}
1568
1569
// Deprecated: Use TupleSet.ProtoReflect.Descriptor instead.
1570
func (*TupleSet) Descriptor() ([]byte, []int) {
1571
	return file_base_v1_base_proto_rawDescGZIP(), []int{17}
1572
}
1573
1574
func (x *TupleSet) GetRelation() string {
1575
	if x != nil {
1576
		return x.Relation
1577
	}
1578
	return ""
1579
}
1580
1581
// Tuple is a structure that includes an entity, a relation, and a subject.
1582
type Tuple struct {
1583
	state         protoimpl.MessageState
1584
	sizeCache     protoimpl.SizeCache
1585
	unknownFields protoimpl.UnknownFields
1586
1587
	Entity   *Entity  `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
1588
	Relation string   `protobuf:"bytes,2,opt,name=relation,proto3" json:"relation,omitempty"`
1589
	Subject  *Subject `protobuf:"bytes,3,opt,name=subject,proto3" json:"subject,omitempty"`
1590
}
1591
1592
func (x *Tuple) Reset() {
1593
	*x = Tuple{}
1594
	if protoimpl.UnsafeEnabled {
1595
		mi := &file_base_v1_base_proto_msgTypes[18]
1596
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1597
		ms.StoreMessageInfo(mi)
1598
	}
1599
}
1600
1601
func (x *Tuple) String() string {
1602
	return protoimpl.X.MessageStringOf(x)
1603
}
1604
1605
func (*Tuple) ProtoMessage() {}
1606
1607
func (x *Tuple) ProtoReflect() protoreflect.Message {
1608
	mi := &file_base_v1_base_proto_msgTypes[18]
1609
	if protoimpl.UnsafeEnabled && x != nil {
1610
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1611
		if ms.LoadMessageInfo() == nil {
1612
			ms.StoreMessageInfo(mi)
1613
		}
1614
		return ms
1615
	}
1616
	return mi.MessageOf(x)
1617
}
1618
1619
// Deprecated: Use Tuple.ProtoReflect.Descriptor instead.
1620
func (*Tuple) Descriptor() ([]byte, []int) {
1621
	return file_base_v1_base_proto_rawDescGZIP(), []int{18}
1622
}
1623
1624
func (x *Tuple) GetEntity() *Entity {
1625
	if x != nil {
1626
		return x.Entity
1627
	}
1628
	return nil
1629
}
1630
1631
func (x *Tuple) GetRelation() string {
1632
	if x != nil {
1633
		return x.Relation
1634
	}
1635
	return ""
1636
}
1637
1638
func (x *Tuple) GetSubject() *Subject {
1639
	if x != nil {
1640
		return x.Subject
1641
	}
1642
	return nil
1643
}
1644
1645
// Attribute represents an attribute of an entity with a specific type and value.
1646
type Attribute struct {
1647
	state         protoimpl.MessageState
1648
	sizeCache     protoimpl.SizeCache
1649
	unknownFields protoimpl.UnknownFields
1650
1651
	Entity    *Entity    `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
1652
	Attribute string     `protobuf:"bytes,2,opt,name=attribute,proto3" json:"attribute,omitempty"` // Name of the attribute
1653
	Value     *anypb.Any `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
1654
}
1655
1656
func (x *Attribute) Reset() {
1657
	*x = Attribute{}
1658
	if protoimpl.UnsafeEnabled {
1659
		mi := &file_base_v1_base_proto_msgTypes[19]
1660
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1661
		ms.StoreMessageInfo(mi)
1662
	}
1663
}
1664
1665
func (x *Attribute) String() string {
1666
	return protoimpl.X.MessageStringOf(x)
1667
}
1668
1669
func (*Attribute) ProtoMessage() {}
1670
1671
func (x *Attribute) ProtoReflect() protoreflect.Message {
1672
	mi := &file_base_v1_base_proto_msgTypes[19]
1673
	if protoimpl.UnsafeEnabled && x != nil {
1674
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1675
		if ms.LoadMessageInfo() == nil {
1676
			ms.StoreMessageInfo(mi)
1677
		}
1678
		return ms
1679
	}
1680
	return mi.MessageOf(x)
1681
}
1682
1683
// Deprecated: Use Attribute.ProtoReflect.Descriptor instead.
1684
func (*Attribute) Descriptor() ([]byte, []int) {
1685
	return file_base_v1_base_proto_rawDescGZIP(), []int{19}
1686
}
1687
1688
func (x *Attribute) GetEntity() *Entity {
1689
	if x != nil {
1690
		return x.Entity
1691
	}
1692
	return nil
1693
}
1694
1695
func (x *Attribute) GetAttribute() string {
1696
	if x != nil {
1697
		return x.Attribute
1698
	}
1699
	return ""
1700
}
1701
1702
func (x *Attribute) GetValue() *anypb.Any {
1703
	if x != nil {
1704
		return x.Value
1705
	}
1706
	return nil
1707
}
1708
1709
// Tuples is a collection of tuples.
1710
type Tuples struct {
1711
	state         protoimpl.MessageState
1712
	sizeCache     protoimpl.SizeCache
1713
	unknownFields protoimpl.UnknownFields
1714
1715
	Tuples []*Tuple `protobuf:"bytes,1,rep,name=tuples,proto3" json:"tuples,omitempty"`
1716
}
1717
1718
func (x *Tuples) Reset() {
1719
	*x = Tuples{}
1720
	if protoimpl.UnsafeEnabled {
1721
		mi := &file_base_v1_base_proto_msgTypes[20]
1722
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1723
		ms.StoreMessageInfo(mi)
1724
	}
1725
}
1726
1727
func (x *Tuples) String() string {
1728
	return protoimpl.X.MessageStringOf(x)
1729
}
1730
1731
func (*Tuples) ProtoMessage() {}
1732
1733
func (x *Tuples) ProtoReflect() protoreflect.Message {
1734
	mi := &file_base_v1_base_proto_msgTypes[20]
1735
	if protoimpl.UnsafeEnabled && x != nil {
1736
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1737
		if ms.LoadMessageInfo() == nil {
1738
			ms.StoreMessageInfo(mi)
1739
		}
1740
		return ms
1741
	}
1742
	return mi.MessageOf(x)
1743
}
1744
1745
// Deprecated: Use Tuples.ProtoReflect.Descriptor instead.
1746
func (*Tuples) Descriptor() ([]byte, []int) {
1747
	return file_base_v1_base_proto_rawDescGZIP(), []int{20}
1748
}
1749
1750
func (x *Tuples) GetTuples() []*Tuple {
1751
	if x != nil {
1752
		return x.Tuples
1753
	}
1754
	return nil
1755
}
1756
1757
// Attributes is a collection of attributes.
1758
type Attributes struct {
1759
	state         protoimpl.MessageState
1760
	sizeCache     protoimpl.SizeCache
1761
	unknownFields protoimpl.UnknownFields
1762
1763
	Attributes []*Attribute `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty"`
1764
}
1765
1766
func (x *Attributes) Reset() {
1767
	*x = Attributes{}
1768
	if protoimpl.UnsafeEnabled {
1769
		mi := &file_base_v1_base_proto_msgTypes[21]
1770
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1771
		ms.StoreMessageInfo(mi)
1772
	}
1773
}
1774
1775
func (x *Attributes) String() string {
1776
	return protoimpl.X.MessageStringOf(x)
1777
}
1778
1779
func (*Attributes) ProtoMessage() {}
1780
1781
func (x *Attributes) ProtoReflect() protoreflect.Message {
1782
	mi := &file_base_v1_base_proto_msgTypes[21]
1783
	if protoimpl.UnsafeEnabled && x != nil {
1784
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1785
		if ms.LoadMessageInfo() == nil {
1786
			ms.StoreMessageInfo(mi)
1787
		}
1788
		return ms
1789
	}
1790
	return mi.MessageOf(x)
1791
}
1792
1793
// Deprecated: Use Attributes.ProtoReflect.Descriptor instead.
1794
func (*Attributes) Descriptor() ([]byte, []int) {
1795
	return file_base_v1_base_proto_rawDescGZIP(), []int{21}
1796
}
1797
1798
func (x *Attributes) GetAttributes() []*Attribute {
1799
	if x != nil {
1800
		return x.Attributes
1801
	}
1802
	return nil
1803
}
1804
1805
// Entity represents an entity with a type and an identifier.
1806
type Entity struct {
1807
	state         protoimpl.MessageState
1808
	sizeCache     protoimpl.SizeCache
1809
	unknownFields protoimpl.UnknownFields
1810
1811
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
1812
	Id   string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
1813
}
1814
1815
func (x *Entity) Reset() {
1816
	*x = Entity{}
1817
	if protoimpl.UnsafeEnabled {
1818
		mi := &file_base_v1_base_proto_msgTypes[22]
1819
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1820
		ms.StoreMessageInfo(mi)
1821
	}
1822
}
1823
1824
func (x *Entity) String() string {
1825
	return protoimpl.X.MessageStringOf(x)
1826
}
1827
1828
func (*Entity) ProtoMessage() {}
1829
1830
func (x *Entity) ProtoReflect() protoreflect.Message {
1831
	mi := &file_base_v1_base_proto_msgTypes[22]
1832
	if protoimpl.UnsafeEnabled && x != nil {
1833
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1834
		if ms.LoadMessageInfo() == nil {
1835
			ms.StoreMessageInfo(mi)
1836
		}
1837
		return ms
1838
	}
1839
	return mi.MessageOf(x)
1840
}
1841
1842
// Deprecated: Use Entity.ProtoReflect.Descriptor instead.
1843
func (*Entity) Descriptor() ([]byte, []int) {
1844
	return file_base_v1_base_proto_rawDescGZIP(), []int{22}
1845
}
1846
1847
func (x *Entity) GetType() string {
1848
	if x != nil {
1849
		return x.Type
1850
	}
1851
	return ""
1852
}
1853
1854
func (x *Entity) GetId() string {
1855
	if x != nil {
1856
		return x.Id
1857
	}
1858
	return ""
1859
}
1860
1861
// EntityAndRelation represents an entity along with a relation.
1862
type EntityAndRelation struct {
1863
	state         protoimpl.MessageState
1864
	sizeCache     protoimpl.SizeCache
1865
	unknownFields protoimpl.UnknownFields
1866
1867
	Entity   *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
1868
	Relation string  `protobuf:"bytes,2,opt,name=relation,proto3" json:"relation,omitempty"`
1869
}
1870
1871
func (x *EntityAndRelation) Reset() {
1872
	*x = EntityAndRelation{}
1873
	if protoimpl.UnsafeEnabled {
1874
		mi := &file_base_v1_base_proto_msgTypes[23]
1875
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1876
		ms.StoreMessageInfo(mi)
1877
	}
1878
}
1879
1880
func (x *EntityAndRelation) String() string {
1881
	return protoimpl.X.MessageStringOf(x)
1882
}
1883
1884
func (*EntityAndRelation) ProtoMessage() {}
1885
1886
func (x *EntityAndRelation) ProtoReflect() protoreflect.Message {
1887
	mi := &file_base_v1_base_proto_msgTypes[23]
1888
	if protoimpl.UnsafeEnabled && x != nil {
1889
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1890
		if ms.LoadMessageInfo() == nil {
1891
			ms.StoreMessageInfo(mi)
1892
		}
1893
		return ms
1894
	}
1895
	return mi.MessageOf(x)
1896
}
1897
1898
// Deprecated: Use EntityAndRelation.ProtoReflect.Descriptor instead.
1899
func (*EntityAndRelation) Descriptor() ([]byte, []int) {
1900
	return file_base_v1_base_proto_rawDescGZIP(), []int{23}
1901
}
1902
1903
func (x *EntityAndRelation) GetEntity() *Entity {
1904
	if x != nil {
1905
		return x.Entity
1906
	}
1907
	return nil
1908
}
1909
1910
func (x *EntityAndRelation) GetRelation() string {
1911
	if x != nil {
1912
		return x.Relation
1913
	}
1914
	return ""
1915
}
1916
1917
// Subject represents an entity subject with a type, an identifier, and a relation.
1918
type Subject struct {
1919
	state         protoimpl.MessageState
1920
	sizeCache     protoimpl.SizeCache
1921
	unknownFields protoimpl.UnknownFields
1922
1923
	Type     string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
1924
	Id       string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
1925
	Relation string `protobuf:"bytes,3,opt,name=relation,proto3" json:"relation,omitempty"`
1926
}
1927
1928
func (x *Subject) Reset() {
1929
	*x = Subject{}
1930
	if protoimpl.UnsafeEnabled {
1931
		mi := &file_base_v1_base_proto_msgTypes[24]
1932
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1933
		ms.StoreMessageInfo(mi)
1934
	}
1935
}
1936
1937
func (x *Subject) String() string {
1938
	return protoimpl.X.MessageStringOf(x)
1939
}
1940
1941
func (*Subject) ProtoMessage() {}
1942
1943
func (x *Subject) ProtoReflect() protoreflect.Message {
1944
	mi := &file_base_v1_base_proto_msgTypes[24]
1945
	if protoimpl.UnsafeEnabled && x != nil {
1946
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1947
		if ms.LoadMessageInfo() == nil {
1948
			ms.StoreMessageInfo(mi)
1949
		}
1950
		return ms
1951
	}
1952
	return mi.MessageOf(x)
1953
}
1954
1955
// Deprecated: Use Subject.ProtoReflect.Descriptor instead.
1956
func (*Subject) Descriptor() ([]byte, []int) {
1957
	return file_base_v1_base_proto_rawDescGZIP(), []int{24}
1958
}
1959
1960
func (x *Subject) GetType() string {
1961
	if x != nil {
1962
		return x.Type
1963
	}
1964
	return ""
1965
}
1966
1967
func (x *Subject) GetId() string {
1968
	if x != nil {
1969
		return x.Id
1970
	}
1971
	return ""
1972
}
1973
1974
func (x *Subject) GetRelation() string {
1975
	if x != nil {
1976
		return x.Relation
1977
	}
1978
	return ""
1979
}
1980
1981
// AttributeFilter is used to filter attributes based on the entity and attribute names.
1982
type AttributeFilter struct {
1983
	state         protoimpl.MessageState
1984
	sizeCache     protoimpl.SizeCache
1985
	unknownFields protoimpl.UnknownFields
1986
1987
	Entity     *EntityFilter `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
1988
	Attributes []string      `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"` // Names of the attributes to be filtered
1989
}
1990
1991
func (x *AttributeFilter) Reset() {
1992
	*x = AttributeFilter{}
1993
	if protoimpl.UnsafeEnabled {
1994
		mi := &file_base_v1_base_proto_msgTypes[25]
1995
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1996
		ms.StoreMessageInfo(mi)
1997
	}
1998
}
1999
2000
func (x *AttributeFilter) String() string {
2001
	return protoimpl.X.MessageStringOf(x)
2002
}
2003
2004
func (*AttributeFilter) ProtoMessage() {}
2005
2006
func (x *AttributeFilter) ProtoReflect() protoreflect.Message {
2007
	mi := &file_base_v1_base_proto_msgTypes[25]
2008
	if protoimpl.UnsafeEnabled && x != nil {
2009
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2010
		if ms.LoadMessageInfo() == nil {
2011
			ms.StoreMessageInfo(mi)
2012
		}
2013
		return ms
2014
	}
2015
	return mi.MessageOf(x)
2016
}
2017
2018
// Deprecated: Use AttributeFilter.ProtoReflect.Descriptor instead.
2019
func (*AttributeFilter) Descriptor() ([]byte, []int) {
2020
	return file_base_v1_base_proto_rawDescGZIP(), []int{25}
2021
}
2022
2023
func (x *AttributeFilter) GetEntity() *EntityFilter {
2024
	if x != nil {
2025
		return x.Entity
2026
	}
2027
	return nil
2028
}
2029
2030
func (x *AttributeFilter) GetAttributes() []string {
2031
	if x != nil {
2032
		return x.Attributes
2033
	}
2034
	return nil
2035
}
2036
2037
// TupleFilter is used to filter tuples based on the entity, relation and the subject.
2038
type TupleFilter struct {
2039
	state         protoimpl.MessageState
2040
	sizeCache     protoimpl.SizeCache
2041
	unknownFields protoimpl.UnknownFields
2042
2043
	Entity   *EntityFilter  `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
2044
	Relation string         `protobuf:"bytes,2,opt,name=relation,proto3" json:"relation,omitempty"`
2045
	Subject  *SubjectFilter `protobuf:"bytes,3,opt,name=subject,proto3" json:"subject,omitempty"` // The subject filter
2046
}
2047
2048
func (x *TupleFilter) Reset() {
2049
	*x = TupleFilter{}
2050
	if protoimpl.UnsafeEnabled {
2051
		mi := &file_base_v1_base_proto_msgTypes[26]
2052
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2053
		ms.StoreMessageInfo(mi)
2054
	}
2055
}
2056
2057
func (x *TupleFilter) String() string {
2058
	return protoimpl.X.MessageStringOf(x)
2059
}
2060
2061
func (*TupleFilter) ProtoMessage() {}
2062
2063
func (x *TupleFilter) ProtoReflect() protoreflect.Message {
2064
	mi := &file_base_v1_base_proto_msgTypes[26]
2065
	if protoimpl.UnsafeEnabled && x != nil {
2066
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2067
		if ms.LoadMessageInfo() == nil {
2068
			ms.StoreMessageInfo(mi)
2069
		}
2070
		return ms
2071
	}
2072
	return mi.MessageOf(x)
2073
}
2074
2075
// Deprecated: Use TupleFilter.ProtoReflect.Descriptor instead.
2076
func (*TupleFilter) Descriptor() ([]byte, []int) {
2077
	return file_base_v1_base_proto_rawDescGZIP(), []int{26}
2078
}
2079
2080
func (x *TupleFilter) GetEntity() *EntityFilter {
2081
	if x != nil {
2082
		return x.Entity
2083
	}
2084
	return nil
2085
}
2086
2087
func (x *TupleFilter) GetRelation() string {
2088
	if x != nil {
2089
		return x.Relation
2090
	}
2091
	return ""
2092
}
2093
2094
func (x *TupleFilter) GetSubject() *SubjectFilter {
2095
	if x != nil {
2096
		return x.Subject
2097
	}
2098
	return nil
2099
}
2100
2101
// EntityFilter is used to filter entities based on the type and ids.
2102
type EntityFilter struct {
2103
	state         protoimpl.MessageState
2104
	sizeCache     protoimpl.SizeCache
2105
	unknownFields protoimpl.UnknownFields
2106
2107
	Type string   `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // Type of the entity
2108
	Ids  []string `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"`   // List of entity IDs
2109
}
2110
2111
func (x *EntityFilter) Reset() {
2112
	*x = EntityFilter{}
2113
	if protoimpl.UnsafeEnabled {
2114
		mi := &file_base_v1_base_proto_msgTypes[27]
2115
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2116
		ms.StoreMessageInfo(mi)
2117
	}
2118
}
2119
2120
func (x *EntityFilter) String() string {
2121
	return protoimpl.X.MessageStringOf(x)
2122
}
2123
2124
func (*EntityFilter) ProtoMessage() {}
2125
2126
func (x *EntityFilter) ProtoReflect() protoreflect.Message {
2127
	mi := &file_base_v1_base_proto_msgTypes[27]
2128
	if protoimpl.UnsafeEnabled && x != nil {
2129
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2130
		if ms.LoadMessageInfo() == nil {
2131
			ms.StoreMessageInfo(mi)
2132
		}
2133
		return ms
2134
	}
2135
	return mi.MessageOf(x)
2136
}
2137
2138
// Deprecated: Use EntityFilter.ProtoReflect.Descriptor instead.
2139
func (*EntityFilter) Descriptor() ([]byte, []int) {
2140
	return file_base_v1_base_proto_rawDescGZIP(), []int{27}
2141
}
2142
2143
func (x *EntityFilter) GetType() string {
2144
	if x != nil {
2145
		return x.Type
2146
	}
2147
	return ""
2148
}
2149
2150
func (x *EntityFilter) GetIds() []string {
2151
	if x != nil {
2152
		return x.Ids
2153
	}
2154
	return nil
2155
}
2156
2157
// SubjectFilter is used to filter subjects based on the type, ids and relation.
2158
type SubjectFilter struct {
2159
	state         protoimpl.MessageState
2160
	sizeCache     protoimpl.SizeCache
2161
	unknownFields protoimpl.UnknownFields
2162
2163
	Type     string   `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` // Type of the subject
2164
	Ids      []string `protobuf:"bytes,2,rep,name=ids,proto3" json:"ids,omitempty"`   // List of subject IDs
2165
	Relation string   `protobuf:"bytes,3,opt,name=relation,proto3" json:"relation,omitempty"`
2166
}
2167
2168
func (x *SubjectFilter) Reset() {
2169
	*x = SubjectFilter{}
2170
	if protoimpl.UnsafeEnabled {
2171
		mi := &file_base_v1_base_proto_msgTypes[28]
2172
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2173
		ms.StoreMessageInfo(mi)
2174
	}
2175
}
2176
2177
func (x *SubjectFilter) String() string {
2178
	return protoimpl.X.MessageStringOf(x)
2179
}
2180
2181
func (*SubjectFilter) ProtoMessage() {}
2182
2183
func (x *SubjectFilter) ProtoReflect() protoreflect.Message {
2184
	mi := &file_base_v1_base_proto_msgTypes[28]
2185
	if protoimpl.UnsafeEnabled && x != nil {
2186
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2187
		if ms.LoadMessageInfo() == nil {
2188
			ms.StoreMessageInfo(mi)
2189
		}
2190
		return ms
2191
	}
2192
	return mi.MessageOf(x)
2193
}
2194
2195
// Deprecated: Use SubjectFilter.ProtoReflect.Descriptor instead.
2196
func (*SubjectFilter) Descriptor() ([]byte, []int) {
2197
	return file_base_v1_base_proto_rawDescGZIP(), []int{28}
2198
}
2199
2200
func (x *SubjectFilter) GetType() string {
2201
	if x != nil {
2202
		return x.Type
2203
	}
2204
	return ""
2205
}
2206
2207
func (x *SubjectFilter) GetIds() []string {
2208
	if x != nil {
2209
		return x.Ids
2210
	}
2211
	return nil
2212
}
2213
2214
func (x *SubjectFilter) GetRelation() string {
2215
	if x != nil {
2216
		return x.Relation
2217
	}
2218
	return ""
2219
}
2220
2221
// ExpandTreeNode represents a node in an expansion tree with a specific operation and its children.
2222
type ExpandTreeNode struct {
2223
	state         protoimpl.MessageState
2224
	sizeCache     protoimpl.SizeCache
2225
	unknownFields protoimpl.UnknownFields
2226
2227
	Operation ExpandTreeNode_Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=base.v1.ExpandTreeNode_Operation" json:"operation,omitempty"` // Operation to be applied on this tree node
2228
	Children  []*Expand                `protobuf:"bytes,2,rep,name=children,proto3" json:"children,omitempty"`                                          // The children of this tree node
2229
}
2230
2231
func (x *ExpandTreeNode) Reset() {
2232
	*x = ExpandTreeNode{}
2233
	if protoimpl.UnsafeEnabled {
2234
		mi := &file_base_v1_base_proto_msgTypes[29]
2235
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2236
		ms.StoreMessageInfo(mi)
2237
	}
2238
}
2239
2240
func (x *ExpandTreeNode) String() string {
2241
	return protoimpl.X.MessageStringOf(x)
2242
}
2243
2244
func (*ExpandTreeNode) ProtoMessage() {}
2245
2246
func (x *ExpandTreeNode) ProtoReflect() protoreflect.Message {
2247
	mi := &file_base_v1_base_proto_msgTypes[29]
2248
	if protoimpl.UnsafeEnabled && x != nil {
2249
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2250
		if ms.LoadMessageInfo() == nil {
2251
			ms.StoreMessageInfo(mi)
2252
		}
2253
		return ms
2254
	}
2255
	return mi.MessageOf(x)
2256
}
2257
2258
// Deprecated: Use ExpandTreeNode.ProtoReflect.Descriptor instead.
2259
func (*ExpandTreeNode) Descriptor() ([]byte, []int) {
2260
	return file_base_v1_base_proto_rawDescGZIP(), []int{29}
2261
}
2262
2263
func (x *ExpandTreeNode) GetOperation() ExpandTreeNode_Operation {
2264
	if x != nil {
2265
		return x.Operation
2266
	}
2267
	return ExpandTreeNode_OPERATION_UNSPECIFIED
2268
}
2269
2270
func (x *ExpandTreeNode) GetChildren() []*Expand {
2271
	if x != nil {
2272
		return x.Children
2273
	}
2274
	return nil
2275
}
2276
2277
// Expand is used to define a hierarchical structure for permissions.
2278
// It has an entity, permission, and arguments. The node can be either another hierarchical structure or a set of subjects.
2279
type Expand struct {
2280
	state         protoimpl.MessageState
2281
	sizeCache     protoimpl.SizeCache
2282
	unknownFields protoimpl.UnknownFields
2283
2284
	// entity is the entity for which the hierarchical structure is defined.
2285
	Entity *Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"`
2286
	// permission is the permission applied to the entity.
2287
	Permission string `protobuf:"bytes,2,opt,name=permission,proto3" json:"permission,omitempty"`
2288
	// arguments are the additional information or context used to evaluate permissions.
2289
	Arguments []*Argument `protobuf:"bytes,3,rep,name=arguments,proto3" json:"arguments,omitempty"`
2290
	// The node can either be an ExpandTreeNode or a set of Subjects.
2291
	//
2292
	// Types that are assignable to Node:
2293
	//
2294
	//	*Expand_Expand
2295
	//	*Expand_Leaf
2296
	Node isExpand_Node `protobuf_oneof:"node"`
2297
}
2298
2299
func (x *Expand) Reset() {
2300
	*x = Expand{}
2301
	if protoimpl.UnsafeEnabled {
2302
		mi := &file_base_v1_base_proto_msgTypes[30]
2303
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2304
		ms.StoreMessageInfo(mi)
2305
	}
2306
}
2307
2308
func (x *Expand) String() string {
2309
	return protoimpl.X.MessageStringOf(x)
2310
}
2311
2312
func (*Expand) ProtoMessage() {}
2313
2314
func (x *Expand) ProtoReflect() protoreflect.Message {
2315
	mi := &file_base_v1_base_proto_msgTypes[30]
2316
	if protoimpl.UnsafeEnabled && x != nil {
2317
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2318
		if ms.LoadMessageInfo() == nil {
2319
			ms.StoreMessageInfo(mi)
2320
		}
2321
		return ms
2322
	}
2323
	return mi.MessageOf(x)
2324
}
2325
2326
// Deprecated: Use Expand.ProtoReflect.Descriptor instead.
2327
func (*Expand) Descriptor() ([]byte, []int) {
2328
	return file_base_v1_base_proto_rawDescGZIP(), []int{30}
2329
}
2330
2331
func (x *Expand) GetEntity() *Entity {
2332
	if x != nil {
2333
		return x.Entity
2334
	}
2335
	return nil
2336
}
2337
2338
func (x *Expand) GetPermission() string {
2339
	if x != nil {
2340
		return x.Permission
2341
	}
2342
	return ""
2343
}
2344
2345
func (x *Expand) GetArguments() []*Argument {
2346
	if x != nil {
2347
		return x.Arguments
2348
	}
2349
	return nil
2350
}
2351
2352
func (m *Expand) GetNode() isExpand_Node {
2353
	if m != nil {
2354
		return m.Node
2355
	}
2356
	return nil
2357
}
2358
2359
func (x *Expand) GetExpand() *ExpandTreeNode {
2360
	if x, ok := x.GetNode().(*Expand_Expand); ok {
2361
		return x.Expand
2362
	}
2363
	return nil
2364
}
2365
2366
func (x *Expand) GetLeaf() *ExpandLeaf {
2367
	if x, ok := x.GetNode().(*Expand_Leaf); ok {
2368
		return x.Leaf
2369
	}
2370
	return nil
2371
}
2372
2373
type isExpand_Node interface {
2374
	isExpand_Node()
2375
}
2376
2377
type Expand_Expand struct {
2378
	// expand contains another hierarchical structure.
2379
	Expand *ExpandTreeNode `protobuf:"bytes,4,opt,name=expand,proto3,oneof"`
2380
}
2381
2382
type Expand_Leaf struct {
2383
	// leaf contains a set of subjects.
2384
	Leaf *ExpandLeaf `protobuf:"bytes,5,opt,name=leaf,proto3,oneof"`
2385
}
2386
2387
func (*Expand_Expand) isExpand_Node() {}
2388
2389
func (*Expand_Leaf) isExpand_Node() {}
2390
2391
// ExpandLeaf is the leaf node of an Expand tree and can be either a set of Subjects or a set of Values.
2392
type ExpandLeaf struct {
2393
	state         protoimpl.MessageState
2394
	sizeCache     protoimpl.SizeCache
2395
	unknownFields protoimpl.UnknownFields
2396
2397
	// Types that are assignable to Type:
2398
	//
2399
	//	*ExpandLeaf_Subjects
2400
	//	*ExpandLeaf_Values
2401
	//	*ExpandLeaf_Value
2402
	Type isExpandLeaf_Type `protobuf_oneof:"type"`
2403
}
2404
2405
func (x *ExpandLeaf) Reset() {
2406
	*x = ExpandLeaf{}
2407
	if protoimpl.UnsafeEnabled {
2408
		mi := &file_base_v1_base_proto_msgTypes[31]
2409
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2410
		ms.StoreMessageInfo(mi)
2411
	}
2412
}
2413
2414
func (x *ExpandLeaf) String() string {
2415
	return protoimpl.X.MessageStringOf(x)
2416
}
2417
2418
func (*ExpandLeaf) ProtoMessage() {}
2419
2420
func (x *ExpandLeaf) ProtoReflect() protoreflect.Message {
2421
	mi := &file_base_v1_base_proto_msgTypes[31]
2422
	if protoimpl.UnsafeEnabled && x != nil {
2423
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2424
		if ms.LoadMessageInfo() == nil {
2425
			ms.StoreMessageInfo(mi)
2426
		}
2427
		return ms
2428
	}
2429
	return mi.MessageOf(x)
2430
}
2431
2432
// Deprecated: Use ExpandLeaf.ProtoReflect.Descriptor instead.
2433
func (*ExpandLeaf) Descriptor() ([]byte, []int) {
2434
	return file_base_v1_base_proto_rawDescGZIP(), []int{31}
2435
}
2436
2437
func (m *ExpandLeaf) GetType() isExpandLeaf_Type {
2438
	if m != nil {
2439
		return m.Type
2440
	}
2441
	return nil
2442
}
2443
2444
func (x *ExpandLeaf) GetSubjects() *Subjects {
2445
	if x, ok := x.GetType().(*ExpandLeaf_Subjects); ok {
2446
		return x.Subjects
2447
	}
2448
	return nil
2449
}
2450
2451
func (x *ExpandLeaf) GetValues() *Values {
2452
	if x, ok := x.GetType().(*ExpandLeaf_Values); ok {
2453
		return x.Values
2454
	}
2455
	return nil
2456
}
2457
2458
func (x *ExpandLeaf) GetValue() *anypb.Any {
2459
	if x, ok := x.GetType().(*ExpandLeaf_Value); ok {
2460
		return x.Value
2461
	}
2462
	return nil
2463
}
2464
2465
type isExpandLeaf_Type interface {
2466
	isExpandLeaf_Type()
2467
}
2468
2469
type ExpandLeaf_Subjects struct {
2470
	// subjects are used when the leaf is a set of subjects.
2471
	Subjects *Subjects `protobuf:"bytes,1,opt,name=subjects,proto3,oneof"`
2472
}
2473
2474
type ExpandLeaf_Values struct {
2475
	// values are used when the leaf node is a set of values.
2476
	Values *Values `protobuf:"bytes,2,opt,name=values,proto3,oneof"`
2477
}
2478
2479
type ExpandLeaf_Value struct {
2480
	// value is used when the leaf node is a single value.
2481
	Value *anypb.Any `protobuf:"bytes,3,opt,name=value,proto3,oneof"`
2482
}
2483
2484
func (*ExpandLeaf_Subjects) isExpandLeaf_Type() {}
2485
2486
func (*ExpandLeaf_Values) isExpandLeaf_Type() {}
2487
2488
func (*ExpandLeaf_Value) isExpandLeaf_Type() {}
2489
2490
type Values struct {
2491
	state         protoimpl.MessageState
2492
	sizeCache     protoimpl.SizeCache
2493
	unknownFields protoimpl.UnknownFields
2494
2495
	Values map[string]*anypb.Any `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
2496
}
2497
2498
func (x *Values) Reset() {
2499
	*x = Values{}
2500
	if protoimpl.UnsafeEnabled {
2501
		mi := &file_base_v1_base_proto_msgTypes[32]
2502
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2503
		ms.StoreMessageInfo(mi)
2504
	}
2505
}
2506
2507
func (x *Values) String() string {
2508
	return protoimpl.X.MessageStringOf(x)
2509
}
2510
2511
func (*Values) ProtoMessage() {}
2512
2513
func (x *Values) ProtoReflect() protoreflect.Message {
2514
	mi := &file_base_v1_base_proto_msgTypes[32]
2515
	if protoimpl.UnsafeEnabled && x != nil {
2516
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2517
		if ms.LoadMessageInfo() == nil {
2518
			ms.StoreMessageInfo(mi)
2519
		}
2520
		return ms
2521
	}
2522
	return mi.MessageOf(x)
2523
}
2524
2525
// Deprecated: Use Values.ProtoReflect.Descriptor instead.
2526
func (*Values) Descriptor() ([]byte, []int) {
2527
	return file_base_v1_base_proto_rawDescGZIP(), []int{32}
2528
}
2529
2530
func (x *Values) GetValues() map[string]*anypb.Any {
2531
	if x != nil {
2532
		return x.Values
2533
	}
2534
	return nil
2535
}
2536
2537
// Subjects holds a repeated field of Subject type.
2538
type Subjects struct {
2539
	state         protoimpl.MessageState
2540
	sizeCache     protoimpl.SizeCache
2541
	unknownFields protoimpl.UnknownFields
2542
2543
	Subjects []*Subject `protobuf:"bytes,1,rep,name=subjects,proto3" json:"subjects,omitempty"` // A list of subjects.
2544
}
2545
2546
func (x *Subjects) Reset() {
2547
	*x = Subjects{}
2548
	if protoimpl.UnsafeEnabled {
2549
		mi := &file_base_v1_base_proto_msgTypes[33]
2550
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2551
		ms.StoreMessageInfo(mi)
2552
	}
2553
}
2554
2555
func (x *Subjects) String() string {
2556
	return protoimpl.X.MessageStringOf(x)
2557
}
2558
2559
func (*Subjects) ProtoMessage() {}
2560
2561
func (x *Subjects) ProtoReflect() protoreflect.Message {
2562
	mi := &file_base_v1_base_proto_msgTypes[33]
2563
	if protoimpl.UnsafeEnabled && x != nil {
2564
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2565
		if ms.LoadMessageInfo() == nil {
2566
			ms.StoreMessageInfo(mi)
2567
		}
2568
		return ms
2569
	}
2570
	return mi.MessageOf(x)
2571
}
2572
2573
// Deprecated: Use Subjects.ProtoReflect.Descriptor instead.
2574
func (*Subjects) Descriptor() ([]byte, []int) {
2575
	return file_base_v1_base_proto_rawDescGZIP(), []int{33}
2576
}
2577
2578
func (x *Subjects) GetSubjects() []*Subject {
2579
	if x != nil {
2580
		return x.Subjects
2581
	}
2582
	return nil
2583
}
2584
2585
// Tenant represents a tenant with an id, a name, and a timestamp indicating when it was created.
2586
type Tenant struct {
2587
	state         protoimpl.MessageState
2588
	sizeCache     protoimpl.SizeCache
2589
	unknownFields protoimpl.UnknownFields
2590
2591
	Id        string                 `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`                 // The ID of the tenant.
2592
	Name      string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`             // The name of the tenant.
2593
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=created_at,proto3" json:"created_at,omitempty"` // The time at which the tenant was created.
2594
}
2595
2596
func (x *Tenant) Reset() {
2597
	*x = Tenant{}
2598
	if protoimpl.UnsafeEnabled {
2599
		mi := &file_base_v1_base_proto_msgTypes[34]
2600
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2601
		ms.StoreMessageInfo(mi)
2602
	}
2603
}
2604
2605
func (x *Tenant) String() string {
2606
	return protoimpl.X.MessageStringOf(x)
2607
}
2608
2609
func (*Tenant) ProtoMessage() {}
2610
2611
func (x *Tenant) ProtoReflect() protoreflect.Message {
2612
	mi := &file_base_v1_base_proto_msgTypes[34]
2613
	if protoimpl.UnsafeEnabled && x != nil {
2614
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2615
		if ms.LoadMessageInfo() == nil {
2616
			ms.StoreMessageInfo(mi)
2617
		}
2618
		return ms
2619
	}
2620
	return mi.MessageOf(x)
2621
}
2622
2623
// Deprecated: Use Tenant.ProtoReflect.Descriptor instead.
2624
func (*Tenant) Descriptor() ([]byte, []int) {
2625
	return file_base_v1_base_proto_rawDescGZIP(), []int{34}
2626
}
2627
2628
func (x *Tenant) GetId() string {
2629
	if x != nil {
2630
		return x.Id
2631
	}
2632
	return ""
2633
}
2634
2635
func (x *Tenant) GetName() string {
2636
	if x != nil {
2637
		return x.Name
2638
	}
2639
	return ""
2640
}
2641
2642
func (x *Tenant) GetCreatedAt() *timestamppb.Timestamp {
2643
	if x != nil {
2644
		return x.CreatedAt
2645
	}
2646
	return nil
2647
}
2648
2649
// DataChanges represent changes in data with a snap token and a list of data change objects.
2650
type DataChanges struct {
2651
	state         protoimpl.MessageState
2652
	sizeCache     protoimpl.SizeCache
2653
	unknownFields protoimpl.UnknownFields
2654
2655
	SnapToken   string        `protobuf:"bytes,1,opt,name=snap_token,proto3" json:"snap_token,omitempty"`     // The snapshot token.
2656
	DataChanges []*DataChange `protobuf:"bytes,2,rep,name=data_changes,proto3" json:"data_changes,omitempty"` // The list of data changes.
2657
}
2658
2659
func (x *DataChanges) Reset() {
2660
	*x = DataChanges{}
2661
	if protoimpl.UnsafeEnabled {
2662
		mi := &file_base_v1_base_proto_msgTypes[35]
2663
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2664
		ms.StoreMessageInfo(mi)
2665
	}
2666
}
2667
2668
func (x *DataChanges) String() string {
2669
	return protoimpl.X.MessageStringOf(x)
2670
}
2671
2672
func (*DataChanges) ProtoMessage() {}
2673
2674
func (x *DataChanges) ProtoReflect() protoreflect.Message {
2675
	mi := &file_base_v1_base_proto_msgTypes[35]
2676
	if protoimpl.UnsafeEnabled && x != nil {
2677
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2678
		if ms.LoadMessageInfo() == nil {
2679
			ms.StoreMessageInfo(mi)
2680
		}
2681
		return ms
2682
	}
2683
	return mi.MessageOf(x)
2684
}
2685
2686
// Deprecated: Use DataChanges.ProtoReflect.Descriptor instead.
2687
func (*DataChanges) Descriptor() ([]byte, []int) {
2688
	return file_base_v1_base_proto_rawDescGZIP(), []int{35}
2689
}
2690
2691
func (x *DataChanges) GetSnapToken() string {
2692
	if x != nil {
2693
		return x.SnapToken
2694
	}
2695
	return ""
2696
}
2697
2698
func (x *DataChanges) GetDataChanges() []*DataChange {
2699
	if x != nil {
2700
		return x.DataChanges
2701
	}
2702
	return nil
2703
}
2704
2705
// DataChange represents a single change in data, with an operation type and the actual change which could be a tuple or an attribute.
2706
type DataChange struct {
2707
	state         protoimpl.MessageState
2708
	sizeCache     protoimpl.SizeCache
2709
	unknownFields protoimpl.UnknownFields
2710
2711
	Operation DataChange_Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=base.v1.DataChange_Operation" json:"operation,omitempty"` // The operation type.
2712
	// Types that are assignable to Type:
2713
	//
2714
	//	*DataChange_Tuple
2715
	//	*DataChange_Attribute
2716
	Type isDataChange_Type `protobuf_oneof:"type"`
2717
}
2718
2719
func (x *DataChange) Reset() {
2720
	*x = DataChange{}
2721
	if protoimpl.UnsafeEnabled {
2722
		mi := &file_base_v1_base_proto_msgTypes[36]
2723
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2724
		ms.StoreMessageInfo(mi)
2725
	}
2726
}
2727
2728
func (x *DataChange) String() string {
2729
	return protoimpl.X.MessageStringOf(x)
2730
}
2731
2732
func (*DataChange) ProtoMessage() {}
2733
2734
func (x *DataChange) ProtoReflect() protoreflect.Message {
2735
	mi := &file_base_v1_base_proto_msgTypes[36]
2736
	if protoimpl.UnsafeEnabled && x != nil {
2737
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2738
		if ms.LoadMessageInfo() == nil {
2739
			ms.StoreMessageInfo(mi)
2740
		}
2741
		return ms
2742
	}
2743
	return mi.MessageOf(x)
2744
}
2745
2746
// Deprecated: Use DataChange.ProtoReflect.Descriptor instead.
2747
func (*DataChange) Descriptor() ([]byte, []int) {
2748
	return file_base_v1_base_proto_rawDescGZIP(), []int{36}
2749
}
2750
2751
func (x *DataChange) GetOperation() DataChange_Operation {
2752
	if x != nil {
2753
		return x.Operation
2754
	}
2755
	return DataChange_OPERATION_UNSPECIFIED
2756
}
2757
2758
func (m *DataChange) GetType() isDataChange_Type {
2759
	if m != nil {
2760
		return m.Type
2761
	}
2762
	return nil
2763
}
2764
2765
func (x *DataChange) GetTuple() *Tuple {
2766
	if x, ok := x.GetType().(*DataChange_Tuple); ok {
2767
		return x.Tuple
2768
	}
2769
	return nil
2770
}
2771
2772
func (x *DataChange) GetAttribute() *Attribute {
2773
	if x, ok := x.GetType().(*DataChange_Attribute); ok {
2774
		return x.Attribute
2775
	}
2776
	return nil
2777
}
2778
2779
type isDataChange_Type interface {
2780
	isDataChange_Type()
2781
}
2782
2783
type DataChange_Tuple struct {
2784
	Tuple *Tuple `protobuf:"bytes,2,opt,name=tuple,proto3,oneof"` // If the change is a tuple.
2785
}
2786
2787
type DataChange_Attribute struct {
2788
	Attribute *Attribute `protobuf:"bytes,3,opt,name=attribute,proto3,oneof"` // If the change is an attribute.
2789
}
2790
2791
func (*DataChange_Tuple) isDataChange_Type() {}
2792
2793
func (*DataChange_Attribute) isDataChange_Type() {}
2794
2795
// Wrapper for a single string value.
2796
type StringValue struct {
2797
	state         protoimpl.MessageState
2798
	sizeCache     protoimpl.SizeCache
2799
	unknownFields protoimpl.UnknownFields
2800
2801
	Data string `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` // The string value.
2802
}
2803
2804
func (x *StringValue) Reset() {
2805
	*x = StringValue{}
2806
	if protoimpl.UnsafeEnabled {
2807
		mi := &file_base_v1_base_proto_msgTypes[37]
2808
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2809
		ms.StoreMessageInfo(mi)
2810
	}
2811
}
2812
2813
func (x *StringValue) String() string {
2814
	return protoimpl.X.MessageStringOf(x)
2815
}
2816
2817
func (*StringValue) ProtoMessage() {}
2818
2819
func (x *StringValue) ProtoReflect() protoreflect.Message {
2820
	mi := &file_base_v1_base_proto_msgTypes[37]
2821
	if protoimpl.UnsafeEnabled && x != nil {
2822
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2823
		if ms.LoadMessageInfo() == nil {
2824
			ms.StoreMessageInfo(mi)
2825
		}
2826
		return ms
2827
	}
2828
	return mi.MessageOf(x)
2829
}
2830
2831
// Deprecated: Use StringValue.ProtoReflect.Descriptor instead.
2832
func (*StringValue) Descriptor() ([]byte, []int) {
2833
	return file_base_v1_base_proto_rawDescGZIP(), []int{37}
2834
}
2835
2836
func (x *StringValue) GetData() string {
2837
	if x != nil {
2838
		return x.Data
2839
	}
2840
	return ""
2841
}
2842
2843
// Wrapper for a single integer value.
2844
type IntegerValue struct {
2845
	state         protoimpl.MessageState
2846
	sizeCache     protoimpl.SizeCache
2847
	unknownFields protoimpl.UnknownFields
2848
2849
	Data int32 `protobuf:"varint,1,opt,name=data,proto3" json:"data,omitempty"` // The integer value.
2850
}
2851
2852
func (x *IntegerValue) Reset() {
2853
	*x = IntegerValue{}
2854
	if protoimpl.UnsafeEnabled {
2855
		mi := &file_base_v1_base_proto_msgTypes[38]
2856
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2857
		ms.StoreMessageInfo(mi)
2858
	}
2859
}
2860
2861
func (x *IntegerValue) String() string {
2862
	return protoimpl.X.MessageStringOf(x)
2863
}
2864
2865
func (*IntegerValue) ProtoMessage() {}
2866
2867
func (x *IntegerValue) ProtoReflect() protoreflect.Message {
2868
	mi := &file_base_v1_base_proto_msgTypes[38]
2869
	if protoimpl.UnsafeEnabled && x != nil {
2870
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2871
		if ms.LoadMessageInfo() == nil {
2872
			ms.StoreMessageInfo(mi)
2873
		}
2874
		return ms
2875
	}
2876
	return mi.MessageOf(x)
2877
}
2878
2879
// Deprecated: Use IntegerValue.ProtoReflect.Descriptor instead.
2880
func (*IntegerValue) Descriptor() ([]byte, []int) {
2881
	return file_base_v1_base_proto_rawDescGZIP(), []int{38}
2882
}
2883
2884
func (x *IntegerValue) GetData() int32 {
2885
	if x != nil {
2886
		return x.Data
2887
	}
2888
	return 0
2889
}
2890
2891
// Wrapper for a single double precision floating point value.
2892
type DoubleValue struct {
2893
	state         protoimpl.MessageState
2894
	sizeCache     protoimpl.SizeCache
2895
	unknownFields protoimpl.UnknownFields
2896
2897
	Data float64 `protobuf:"fixed64,1,opt,name=data,proto3" json:"data,omitempty"` // The double value.
2898
}
2899
2900
func (x *DoubleValue) Reset() {
2901
	*x = DoubleValue{}
2902
	if protoimpl.UnsafeEnabled {
2903
		mi := &file_base_v1_base_proto_msgTypes[39]
2904
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2905
		ms.StoreMessageInfo(mi)
2906
	}
2907
}
2908
2909
func (x *DoubleValue) String() string {
2910
	return protoimpl.X.MessageStringOf(x)
2911
}
2912
2913
func (*DoubleValue) ProtoMessage() {}
2914
2915
func (x *DoubleValue) ProtoReflect() protoreflect.Message {
2916
	mi := &file_base_v1_base_proto_msgTypes[39]
2917
	if protoimpl.UnsafeEnabled && x != nil {
2918
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2919
		if ms.LoadMessageInfo() == nil {
2920
			ms.StoreMessageInfo(mi)
2921
		}
2922
		return ms
2923
	}
2924
	return mi.MessageOf(x)
2925
}
2926
2927
// Deprecated: Use DoubleValue.ProtoReflect.Descriptor instead.
2928
func (*DoubleValue) Descriptor() ([]byte, []int) {
2929
	return file_base_v1_base_proto_rawDescGZIP(), []int{39}
2930
}
2931
2932
func (x *DoubleValue) GetData() float64 {
2933
	if x != nil {
2934
		return x.Data
2935
	}
2936
	return 0
2937
}
2938
2939
// Wrapper for a single boolean value.
2940
type BooleanValue struct {
2941
	state         protoimpl.MessageState
2942
	sizeCache     protoimpl.SizeCache
2943
	unknownFields protoimpl.UnknownFields
2944
2945
	Data bool `protobuf:"varint,1,opt,name=data,proto3" json:"data,omitempty"` // The boolean value.
2946
}
2947
2948
func (x *BooleanValue) Reset() {
2949
	*x = BooleanValue{}
2950
	if protoimpl.UnsafeEnabled {
2951
		mi := &file_base_v1_base_proto_msgTypes[40]
2952
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2953
		ms.StoreMessageInfo(mi)
2954
	}
2955
}
2956
2957
func (x *BooleanValue) String() string {
2958
	return protoimpl.X.MessageStringOf(x)
2959
}
2960
2961
func (*BooleanValue) ProtoMessage() {}
2962
2963
func (x *BooleanValue) ProtoReflect() protoreflect.Message {
2964
	mi := &file_base_v1_base_proto_msgTypes[40]
2965
	if protoimpl.UnsafeEnabled && x != nil {
2966
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
2967
		if ms.LoadMessageInfo() == nil {
2968
			ms.StoreMessageInfo(mi)
2969
		}
2970
		return ms
2971
	}
2972
	return mi.MessageOf(x)
2973
}
2974
2975
// Deprecated: Use BooleanValue.ProtoReflect.Descriptor instead.
2976
func (*BooleanValue) Descriptor() ([]byte, []int) {
2977
	return file_base_v1_base_proto_rawDescGZIP(), []int{40}
2978
}
2979
2980
func (x *BooleanValue) GetData() bool {
2981
	if x != nil {
2982
		return x.Data
2983
	}
2984
	return false
2985
}
2986
2987
// Wrapper for an array of strings.
2988
type StringArrayValue struct {
2989
	state         protoimpl.MessageState
2990
	sizeCache     protoimpl.SizeCache
2991
	unknownFields protoimpl.UnknownFields
2992
2993
	Data []string `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"` // The array of strings.
2994
}
2995
2996
func (x *StringArrayValue) Reset() {
2997
	*x = StringArrayValue{}
2998
	if protoimpl.UnsafeEnabled {
2999
		mi := &file_base_v1_base_proto_msgTypes[41]
3000
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3001
		ms.StoreMessageInfo(mi)
3002
	}
3003
}
3004
3005
func (x *StringArrayValue) String() string {
3006
	return protoimpl.X.MessageStringOf(x)
3007
}
3008
3009
func (*StringArrayValue) ProtoMessage() {}
3010
3011
func (x *StringArrayValue) ProtoReflect() protoreflect.Message {
3012
	mi := &file_base_v1_base_proto_msgTypes[41]
3013
	if protoimpl.UnsafeEnabled && x != nil {
3014
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3015
		if ms.LoadMessageInfo() == nil {
3016
			ms.StoreMessageInfo(mi)
3017
		}
3018
		return ms
3019
	}
3020
	return mi.MessageOf(x)
3021
}
3022
3023
// Deprecated: Use StringArrayValue.ProtoReflect.Descriptor instead.
3024
func (*StringArrayValue) Descriptor() ([]byte, []int) {
3025
	return file_base_v1_base_proto_rawDescGZIP(), []int{41}
3026
}
3027
3028
func (x *StringArrayValue) GetData() []string {
3029
	if x != nil {
3030
		return x.Data
3031
	}
3032
	return nil
3033
}
3034
3035
// Wrapper for an array of integers.
3036
type IntegerArrayValue struct {
3037
	state         protoimpl.MessageState
3038
	sizeCache     protoimpl.SizeCache
3039
	unknownFields protoimpl.UnknownFields
3040
3041
	Data []int32 `protobuf:"varint,1,rep,packed,name=data,proto3" json:"data,omitempty"` // The array of integers.
3042
}
3043
3044
func (x *IntegerArrayValue) Reset() {
3045
	*x = IntegerArrayValue{}
3046
	if protoimpl.UnsafeEnabled {
3047
		mi := &file_base_v1_base_proto_msgTypes[42]
3048
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3049
		ms.StoreMessageInfo(mi)
3050
	}
3051
}
3052
3053
func (x *IntegerArrayValue) String() string {
3054
	return protoimpl.X.MessageStringOf(x)
3055
}
3056
3057
func (*IntegerArrayValue) ProtoMessage() {}
3058
3059
func (x *IntegerArrayValue) ProtoReflect() protoreflect.Message {
3060
	mi := &file_base_v1_base_proto_msgTypes[42]
3061
	if protoimpl.UnsafeEnabled && x != nil {
3062
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3063
		if ms.LoadMessageInfo() == nil {
3064
			ms.StoreMessageInfo(mi)
3065
		}
3066
		return ms
3067
	}
3068
	return mi.MessageOf(x)
3069
}
3070
3071
// Deprecated: Use IntegerArrayValue.ProtoReflect.Descriptor instead.
3072
func (*IntegerArrayValue) Descriptor() ([]byte, []int) {
3073
	return file_base_v1_base_proto_rawDescGZIP(), []int{42}
3074
}
3075
3076
func (x *IntegerArrayValue) GetData() []int32 {
3077
	if x != nil {
3078
		return x.Data
3079
	}
3080
	return nil
3081
}
3082
3083
// Wrapper for an array of double precision floating point values.
3084
type DoubleArrayValue struct {
3085
	state         protoimpl.MessageState
3086
	sizeCache     protoimpl.SizeCache
3087
	unknownFields protoimpl.UnknownFields
3088
3089
	Data []float64 `protobuf:"fixed64,1,rep,packed,name=data,proto3" json:"data,omitempty"` // The array of doubles.
3090
}
3091
3092
func (x *DoubleArrayValue) Reset() {
3093
	*x = DoubleArrayValue{}
3094
	if protoimpl.UnsafeEnabled {
3095
		mi := &file_base_v1_base_proto_msgTypes[43]
3096
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3097
		ms.StoreMessageInfo(mi)
3098
	}
3099
}
3100
3101
func (x *DoubleArrayValue) String() string {
3102
	return protoimpl.X.MessageStringOf(x)
3103
}
3104
3105
func (*DoubleArrayValue) ProtoMessage() {}
3106
3107
func (x *DoubleArrayValue) ProtoReflect() protoreflect.Message {
3108
	mi := &file_base_v1_base_proto_msgTypes[43]
3109
	if protoimpl.UnsafeEnabled && x != nil {
3110
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3111
		if ms.LoadMessageInfo() == nil {
3112
			ms.StoreMessageInfo(mi)
3113
		}
3114
		return ms
3115
	}
3116
	return mi.MessageOf(x)
3117
}
3118
3119
// Deprecated: Use DoubleArrayValue.ProtoReflect.Descriptor instead.
3120
func (*DoubleArrayValue) Descriptor() ([]byte, []int) {
3121
	return file_base_v1_base_proto_rawDescGZIP(), []int{43}
3122
}
3123
3124
func (x *DoubleArrayValue) GetData() []float64 {
3125
	if x != nil {
3126
		return x.Data
3127
	}
3128
	return nil
3129
}
3130
3131
// Wrapper for an array of booleans.
3132
type BooleanArrayValue struct {
3133
	state         protoimpl.MessageState
3134
	sizeCache     protoimpl.SizeCache
3135
	unknownFields protoimpl.UnknownFields
3136
3137
	Data []bool `protobuf:"varint,1,rep,packed,name=data,proto3" json:"data,omitempty"` // The array of booleans.
3138
}
3139
3140
func (x *BooleanArrayValue) Reset() {
3141
	*x = BooleanArrayValue{}
3142
	if protoimpl.UnsafeEnabled {
3143
		mi := &file_base_v1_base_proto_msgTypes[44]
3144
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3145
		ms.StoreMessageInfo(mi)
3146
	}
3147
}
3148
3149
func (x *BooleanArrayValue) String() string {
3150
	return protoimpl.X.MessageStringOf(x)
3151
}
3152
3153
func (*BooleanArrayValue) ProtoMessage() {}
3154
3155
func (x *BooleanArrayValue) ProtoReflect() protoreflect.Message {
3156
	mi := &file_base_v1_base_proto_msgTypes[44]
3157
	if protoimpl.UnsafeEnabled && x != nil {
3158
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3159
		if ms.LoadMessageInfo() == nil {
3160
			ms.StoreMessageInfo(mi)
3161
		}
3162
		return ms
3163
	}
3164
	return mi.MessageOf(x)
3165
}
3166
3167
// Deprecated: Use BooleanArrayValue.ProtoReflect.Descriptor instead.
3168
func (*BooleanArrayValue) Descriptor() ([]byte, []int) {
3169
	return file_base_v1_base_proto_rawDescGZIP(), []int{44}
3170
}
3171
3172
func (x *BooleanArrayValue) GetData() []bool {
3173
	if x != nil {
3174
		return x.Data
3175
	}
3176
	return nil
3177
}
3178
3179
// DataBundle is a message representing a bundle of data, which includes a name,
3180
// a list of arguments, and a series of operations.
3181
type DataBundle struct {
3182
	state         protoimpl.MessageState
3183
	sizeCache     protoimpl.SizeCache
3184
	unknownFields protoimpl.UnknownFields
3185
3186
	// 'name' is a simple string field representing the name of the DataBundle.
3187
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
3188
	// 'arguments' is a repeated field, which means it can contain multiple strings.
3189
	// These are used to store a list of arguments related to the DataBundle.
3190
	Arguments []string `protobuf:"bytes,2,rep,name=arguments,proto3" json:"arguments,omitempty"`
3191
	// 'operations' is a repeated field containing multiple Operation messages.
3192
	// Each Operation represents a specific action or set of actions to be performed.
3193
	Operations []*Operation `protobuf:"bytes,3,rep,name=operations,proto3" json:"operations,omitempty"`
3194
}
3195
3196
func (x *DataBundle) Reset() {
3197
	*x = DataBundle{}
3198
	if protoimpl.UnsafeEnabled {
3199
		mi := &file_base_v1_base_proto_msgTypes[45]
3200
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3201
		ms.StoreMessageInfo(mi)
3202
	}
3203
}
3204
3205
func (x *DataBundle) String() string {
3206
	return protoimpl.X.MessageStringOf(x)
3207
}
3208
3209
func (*DataBundle) ProtoMessage() {}
3210
3211
func (x *DataBundle) ProtoReflect() protoreflect.Message {
3212
	mi := &file_base_v1_base_proto_msgTypes[45]
3213
	if protoimpl.UnsafeEnabled && x != nil {
3214
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3215
		if ms.LoadMessageInfo() == nil {
3216
			ms.StoreMessageInfo(mi)
3217
		}
3218
		return ms
3219
	}
3220
	return mi.MessageOf(x)
3221
}
3222
3223
// Deprecated: Use DataBundle.ProtoReflect.Descriptor instead.
3224
func (*DataBundle) Descriptor() ([]byte, []int) {
3225
	return file_base_v1_base_proto_rawDescGZIP(), []int{45}
3226
}
3227
3228
func (x *DataBundle) GetName() string {
3229
	if x != nil {
3230
		return x.Name
3231
	}
3232
	return ""
3233
}
3234
3235
func (x *DataBundle) GetArguments() []string {
3236
	if x != nil {
3237
		return x.Arguments
3238
	}
3239
	return nil
3240
}
3241
3242
func (x *DataBundle) GetOperations() []*Operation {
3243
	if x != nil {
3244
		return x.Operations
3245
	}
3246
	return nil
3247
}
3248
3249
// Operation is a message representing a series of operations that can be performed.
3250
// It includes fields for writing and deleting relationships and attributes.
3251
type Operation struct {
3252
	state         protoimpl.MessageState
3253
	sizeCache     protoimpl.SizeCache
3254
	unknownFields protoimpl.UnknownFields
3255
3256
	// 'relationships_write' is a repeated string field for storing relationship keys
3257
	// that are to be written or created.
3258
	RelationshipsWrite []string `protobuf:"bytes,1,rep,name=relationships_write,proto3" json:"relationships_write,omitempty"`
3259
	// 'relationships_delete' is a repeated string field for storing relationship keys
3260
	// that are to be deleted or removed.
3261
	RelationshipsDelete []string `protobuf:"bytes,2,rep,name=relationships_delete,proto3" json:"relationships_delete,omitempty"`
3262
	// 'attributes_write' is a repeated string field for storing attribute keys
3263
	// that are to be written or created.
3264
	AttributesWrite []string `protobuf:"bytes,3,rep,name=attributes_write,proto3" json:"attributes_write,omitempty"`
3265
	// 'attributes_delete' is a repeated string field for storing attribute keys
3266
	// that are to be deleted or removed.
3267
	AttributesDelete []string `protobuf:"bytes,4,rep,name=attributes_delete,proto3" json:"attributes_delete,omitempty"`
3268
}
3269
3270
func (x *Operation) Reset() {
3271
	*x = Operation{}
3272
	if protoimpl.UnsafeEnabled {
3273
		mi := &file_base_v1_base_proto_msgTypes[46]
3274
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3275
		ms.StoreMessageInfo(mi)
3276
	}
3277
}
3278
3279
func (x *Operation) String() string {
3280
	return protoimpl.X.MessageStringOf(x)
3281
}
3282
3283
func (*Operation) ProtoMessage() {}
3284
3285
func (x *Operation) ProtoReflect() protoreflect.Message {
3286
	mi := &file_base_v1_base_proto_msgTypes[46]
3287
	if protoimpl.UnsafeEnabled && x != nil {
3288
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3289
		if ms.LoadMessageInfo() == nil {
3290
			ms.StoreMessageInfo(mi)
3291
		}
3292
		return ms
3293
	}
3294
	return mi.MessageOf(x)
3295
}
3296
3297
// Deprecated: Use Operation.ProtoReflect.Descriptor instead.
3298
func (*Operation) Descriptor() ([]byte, []int) {
3299
	return file_base_v1_base_proto_rawDescGZIP(), []int{46}
3300
}
3301
3302
func (x *Operation) GetRelationshipsWrite() []string {
3303
	if x != nil {
3304
		return x.RelationshipsWrite
3305
	}
3306
	return nil
3307
}
3308
3309
func (x *Operation) GetRelationshipsDelete() []string {
3310
	if x != nil {
3311
		return x.RelationshipsDelete
3312
	}
3313
	return nil
3314
}
3315
3316
func (x *Operation) GetAttributesWrite() []string {
3317
	if x != nil {
3318
		return x.AttributesWrite
3319
	}
3320
	return nil
3321
}
3322
3323
func (x *Operation) GetAttributesDelete() []string {
3324
	if x != nil {
3325
		return x.AttributesDelete
3326
	}
3327
	return nil
3328
}
3329
3330
// Partials contains the write, update and delete definitions
3331
type Partials struct {
3332
	state         protoimpl.MessageState
3333
	sizeCache     protoimpl.SizeCache
3334
	unknownFields protoimpl.UnknownFields
3335
3336
	Write  []string `protobuf:"bytes,1,rep,name=write,proto3" json:"write,omitempty"`
3337
	Delete []string `protobuf:"bytes,2,rep,name=delete,proto3" json:"delete,omitempty"`
3338
	Update []string `protobuf:"bytes,3,rep,name=update,proto3" json:"update,omitempty"`
3339
}
3340
3341
func (x *Partials) Reset() {
3342
	*x = Partials{}
3343
	if protoimpl.UnsafeEnabled {
3344
		mi := &file_base_v1_base_proto_msgTypes[47]
3345
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3346
		ms.StoreMessageInfo(mi)
3347
	}
3348
}
3349
3350
func (x *Partials) String() string {
3351
	return protoimpl.X.MessageStringOf(x)
3352
}
3353
3354
func (*Partials) ProtoMessage() {}
3355
3356
func (x *Partials) ProtoReflect() protoreflect.Message {
3357
	mi := &file_base_v1_base_proto_msgTypes[47]
3358
	if protoimpl.UnsafeEnabled && x != nil {
3359
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
3360
		if ms.LoadMessageInfo() == nil {
3361
			ms.StoreMessageInfo(mi)
3362
		}
3363
		return ms
3364
	}
3365
	return mi.MessageOf(x)
3366
}
3367
3368
// Deprecated: Use Partials.ProtoReflect.Descriptor instead.
3369
func (*Partials) Descriptor() ([]byte, []int) {
3370
	return file_base_v1_base_proto_rawDescGZIP(), []int{47}
3371
}
3372
3373
func (x *Partials) GetWrite() []string {
3374
	if x != nil {
3375
		return x.Write
3376
	}
3377
	return nil
3378
}
3379
3380
func (x *Partials) GetDelete() []string {
3381
	if x != nil {
3382
		return x.Delete
3383
	}
3384
	return nil
3385
}
3386
3387
func (x *Partials) GetUpdate() []string {
3388
	if x != nil {
3389
		return x.Update
3390
	}
3391
	return nil
3392
}
3393
3394
var File_base_v1_base_proto protoreflect.FileDescriptor
3395
3396
var file_base_v1_base_proto_rawDesc = []byte{
3397
	0x0a, 0x12, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x70,
3398
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x26, 0x67,
3399
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x78, 0x70, 0x72, 0x2f, 0x76,
3400
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x2e,
3401
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
3402
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
3403
	0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
3404
	0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f,
3405
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
3406
	0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
3407
	0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
3408
	0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6e,
3409
	0x74, 0x65, 0x78, 0x74, 0x12, 0x26, 0x0a, 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x01,
3410
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54,
3411
	0x75, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x0a,
3412
	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
3413
	0x32, 0x12, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69,
3414
	0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
3415
	0x12, 0x2b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
3416
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
3417
	0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7b, 0x0a,
3418
	0x05, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x6c, 0x65, 0x61, 0x66, 0x18, 0x01,
3419
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
3420
	0x65, 0x61, 0x66, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52,
3421
	0x04, 0x6c, 0x65, 0x61, 0x66, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65,
3422
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
3423
	0x2e, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02,
3424
	0x10, 0x01, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x42, 0x0b, 0x0a,
3425
	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xbb, 0x02, 0x0a, 0x04, 0x4c,
3426
	0x65, 0x61, 0x66, 0x12, 0x50, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x5f,
3427
	0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
3428
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65,
3429
	0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02,
3430
	0x10, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73,
3431
	0x65, 0x72, 0x53, 0x65, 0x74, 0x12, 0x4e, 0x0a, 0x11, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x74,
3432
	0x6f, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
3433
	0x32, 0x17, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x75, 0x70, 0x6c, 0x65,
3434
	0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01,
3435
	0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x6f, 0x55, 0x73,
3436
	0x65, 0x72, 0x53, 0x65, 0x74, 0x12, 0x55, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65,
3437
	0x64, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
3438
	0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70,
3439
	0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x08, 0xfa,
3440
	0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x75,
3441
	0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x04,
3442
	0x63, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x62, 0x61, 0x73,
3443
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01,
3444
	0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x42, 0x0b, 0x0a, 0x04, 0x74,
3445
	0x79, 0x70, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xf0, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x77,
3446
	0x72, 0x69, 0x74, 0x65, 0x12, 0x47, 0x0a, 0x11, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f,
3447
	0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
3448
	0x1a, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74,
3449
	0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x72, 0x65, 0x77,
3450
	0x72, 0x69, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a,
3451
	0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
3452
	0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x52,
3453
	0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x70, 0x0a, 0x09, 0x4f, 0x70, 0x65,
3454
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54,
3455
	0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
3456
	0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55,
3457
	0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54,
3458
	0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e,
3459
	0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
3460
	0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x22, 0x8d, 0x05, 0x0a, 0x10,
3461
	0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
3462
	0x12, 0x5f, 0x0a, 0x12, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e,
3463
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x62,
3464
	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x66,
3465
	0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65,
3466
	0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11,
3467
	0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
3468
	0x73, 0x12, 0x59, 0x0a, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69,
3469
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x62, 0x61,
3470
	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x66, 0x69,
3471
	0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e,
3472
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x72, 0x75, 0x6c,
3473
	0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x0a,
3474
	0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
3475
	0x32, 0x29, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d,
3476
	0x61, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65,
3477
	0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x66,
3478
	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x5f, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x69, 0x74,
3479
	0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72,
3480
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
3481
	0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
3482
	0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74,
3483
	0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76,
3484
	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x14, 0x52, 0x75, 0x6c, 0x65,
3485
	0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
3486
	0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
3487
	0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
3488
	0x0b, 0x32, 0x17, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65,
3489
	0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
3490
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x62, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e,
3491
	0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
3492
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61,
3493
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x62, 0x61, 0x73, 0x65,
3494
	0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69,
3495
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05,
3496
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x50, 0x0a, 0x09, 0x52, 0x65, 0x66,
3497
	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45,
3498
	0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
3499
	0x00, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x45,
3500
	0x4e, 0x54, 0x49, 0x54, 0x59, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x46, 0x45, 0x52,
3501
	0x45, 0x4e, 0x43, 0x45, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x10, 0x02, 0x22, 0xdc, 0x06, 0x0a, 0x10,
3502
	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
3503
	0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a,
3504
	0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d,
3505
	0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
3506
	0x12, 0x46, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20,
3507
	0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e,
3508
	0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
3509
	0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x72,
3510
	0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d,
3511
	0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
3512
	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65,
3513
	0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73,
3514
	0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69,
3515
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62,
3516
	0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x62, 0x61, 0x73,
3517
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e,
3518
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
3519
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
3520
	0x73, 0x12, 0x49, 0x0a, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18,
3521
	0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e,
3522
	0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e,
3523
	0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
3524
	0x52, 0x0a, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x1a, 0x59, 0x0a, 0x0e,
3525
	0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
3526
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
3527
	0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
3528
	0x1b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69,
3529
	0x6f, 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61,
3530
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5d, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x6d, 0x69,
3531
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
3532
	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a,
3533
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62,
3534
	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
3535
	0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c,
3536
	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5b, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
3537
	0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
3538
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76,
3539
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x61, 0x73,
3540
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x44, 0x65,
3541
	0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
3542
	0x02, 0x38, 0x01, 0x1a, 0x62, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
3543
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
3544
	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
3545
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
3546
	0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69,
3547
	0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61,
3548
	0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x71, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x65, 0x72,
3549
	0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43,
3550
	0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
3551
	0x16, 0x0a, 0x12, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4c,
3552
	0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x46, 0x45, 0x52,
3553
	0x45, 0x4e, 0x43, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10,
3554
	0x02, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x41,
3555
	0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x10, 0x03, 0x22, 0xa3, 0x02, 0x0a, 0x0e, 0x52,
3556
	0x75, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a,
3557
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xfa, 0x42, 0x17,
3558
	0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d,
3559
	0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a,
3560
	0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
3561
	0x32, 0x26, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x44,
3562
	0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65,
3563
	0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65,
3564
	0x6e, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
3565
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
3566
	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x65, 0x78, 0x70, 0x72, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
3567
	0x61, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x45, 0x78, 0x70, 0x72, 0x52, 0x0a,
3568
	0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x54, 0x0a, 0x0e, 0x41, 0x72,
3569
	0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
3570
	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2c,
3571
	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e,
3572
	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
3573
	0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
3574
	0x22, 0x71, 0x0a, 0x13, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x44, 0x65, 0x66,
3575
	0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
3576
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11,
3577
	0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d,
3578
	0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
3579
	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e,
3580
	0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74,
3581
	0x79, 0x70, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
3582
	0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x04, 0x6e, 0x61,
3583
	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28,
3584
	0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c,
3585
	0x36, 0x34, 0x7d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x13, 0x72, 0x65,
3586
	0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
3587
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
3588
	0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65,
3589
	0x6e, 0x63, 0x65, 0x52, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66,
3590
	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x6c, 0x0a, 0x14, 0x50, 0x65, 0x72, 0x6d, 0x69,
3591
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12,
3592
	0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xfa,
3593
	0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a,
3594
	0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
3595
	0x24, 0x0a, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
3596
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x52, 0x05,
3597
	0x63, 0x68, 0x69, 0x6c, 0x64, 0x22, 0x7e, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f,
3598
	0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79,
3599
	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28,
3600
	0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c,
3601
	0x36, 0x34, 0x7d, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65,
3602
	0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1d, 0xfa, 0x42,
3603
	0x1a, 0x72, 0x18, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f,
3604
	0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x08, 0x72, 0x65, 0x6c,
3605
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6c, 0x0a, 0x08, 0x45, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x63,
3606
	0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
3607
	0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41,
3608
	0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70,
3609
	0x65, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
3610
	0x42, 0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a,
3611
	0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0x52, 0x05, 0x76, 0x61,
3612
	0x6c, 0x75, 0x65, 0x22, 0x5f, 0x0a, 0x08, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12,
3613
	0x4b, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x74, 0x72,
3614
	0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x61,
3615
	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74,
3616
	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x75,
3617
	0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04,
3618
	0x74, 0x79, 0x70, 0x65, 0x22, 0x54, 0x0a, 0x04, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x1b, 0x0a, 0x09,
3619
	0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
3620
	0x08, 0x72, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x72, 0x67,
3621
	0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62,
3622
	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52,
3623
	0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x43, 0x0a, 0x11, 0x43, 0x6f,
3624
	0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12,
3625
	0x2e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xfa,
3626
	0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a,
3627
	0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
3628
	0x49, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53,
3629
	0x65, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
3630
	0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e,
3631
	0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24,
3632
	0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x75, 0x0a, 0x0e, 0x54, 0x75,
3633
	0x70, 0x6c, 0x65, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x08,
3634
	0x74, 0x75, 0x70, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
3635
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x53, 0x65,
3636
	0x74, 0x52, 0x08, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x63,
3637
	0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
3638
	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64,
3639
	0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65,
3640
	0x64, 0x22, 0x42, 0x0a, 0x08, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x53, 0x65, 0x74, 0x12, 0x36, 0x0a,
3641
	0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
3642
	0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41,
3643
	0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0x52, 0x08, 0x72, 0x65, 0x6c,
3644
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x05, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x12,
3645
	0x31, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
3646
	0x0f, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79,
3647
	0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69,
3648
	0x74, 0x79, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02,
3649
	0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e,
3650
	0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24,
3651
	0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x73, 0x75,
3652
	0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x62, 0x61,
3653
	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x08, 0xfa,
3654
	0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74,
3655
	0x22, 0x88, 0x01, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31,
3656
	0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
3657
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42,
3658
	0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74,
3659
	0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x02,
3660
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12,
3661
	0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
3662
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
3663
	0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x30, 0x0a, 0x06, 0x54,
3664
	0x75, 0x70, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x18,
3665
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e,
3666
	0x54, 0x75, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x22, 0x40, 0x0a,
3667
	0x0a, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x61,
3668
	0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
3669
	0x12, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
3670
	0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22,
3671
	0x75, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70,
3672
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40,
3673
	0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36,
3674
	0x34, 0x7d, 0x24, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x02, 0x69, 0x64, 0x18,
3675
	0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xfa, 0x42, 0x28, 0x72, 0x26, 0x28, 0x80, 0x01, 0x32,
3676
	0x21, 0x5e, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x5c, 0x2d,
3677
	0x40, 0x5c, 0x2e, 0x3a, 0x2b, 0x5d, 0x7b, 0x31, 0x2c, 0x31, 0x32, 0x38, 0x7d, 0x7c, 0x5c, 0x2a,
3678
	0x29, 0x24, 0x52, 0x02, 0x69, 0x64, 0x22, 0x7e, 0x0a, 0x11, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79,
3679
	0x41, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x06, 0x65,
3680
	0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x61,
3681
	0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x08, 0xfa, 0x42,
3682
	0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x36,
3683
	0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
3684
	0x42, 0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a,
3685
	0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0x52, 0x08, 0x72, 0x65,
3686
	0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb1, 0x01, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x6a, 0x65,
3687
	0x63, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
3688
	0x42, 0x1a, 0xfa, 0x42, 0x17, 0x72, 0x15, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a,
3689
	0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0x52, 0x04, 0x74, 0x79,
3690
	0x70, 0x65, 0x12, 0x3b, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b,
3691
	0xfa, 0x42, 0x28, 0x72, 0x26, 0x28, 0x80, 0x01, 0x32, 0x21, 0x5e, 0x28, 0x5b, 0x61, 0x2d, 0x7a,
3692
	0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x5c, 0x2d, 0x40, 0x5c, 0x2e, 0x3a, 0x2b, 0x5d, 0x7b,
3693
	0x31, 0x2c, 0x31, 0x32, 0x38, 0x7d, 0x7c, 0x5c, 0x2a, 0x29, 0x24, 0x52, 0x02, 0x69, 0x64, 0x12,
3694
	0x39, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
3695
	0x09, 0x42, 0x1d, 0xfa, 0x42, 0x1a, 0x72, 0x18, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d,
3696
	0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0xd0, 0x01, 0x01,
3697
	0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x60, 0x0a, 0x0f, 0x41, 0x74,
3698
	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2d, 0x0a,
3699
	0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
3700
	0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x69,
3701
	0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a,
3702
	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
3703
	0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0xa9, 0x01, 0x0a,
3704
	0x0b, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x06,
3705
	0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62,
3706
	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c,
3707
	0x74, 0x65, 0x72, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x39, 0x0a, 0x08, 0x72,
3708
	0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1d, 0xfa,
3709
	0x42, 0x1a, 0x72, 0x18, 0x28, 0x40, 0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a,
3710
	0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x34, 0x7d, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x08, 0x72, 0x65,
3711
	0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63,
3712
	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76,
3713
	0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52,
3714
	0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x34, 0x0a, 0x0c, 0x45, 0x6e, 0x74, 0x69,
3715
	0x74, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
3716
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03,
3717
	0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x69, 0x64, 0x73, 0x22, 0x70,
3718
	0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
3719
	0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74,
3720
	0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
3721
	0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f,
3722
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1d, 0xfa, 0x42, 0x1a, 0x72, 0x18, 0x28, 0x40,
3723
	0x32, 0x11, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36,
3724
	0x34, 0x7d, 0x24, 0xd0, 0x01, 0x01, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
3725
	0x22, 0xf0, 0x01, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x65, 0x4e,
3726
	0x6f, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
3727
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
3728
	0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x2e,
3729
	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61,
3730
	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e,
3731
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31,
3732
	0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65,
3733
	0x6e, 0x22, 0x70, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19,
3734
	0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50,
3735
	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x45,
3736
	0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x1a,
3737
	0x0a, 0x16, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x54, 0x45,
3738
	0x52, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x50,
3739
	0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x4f,
3740
	0x4e, 0x10, 0x03, 0x22, 0xe8, 0x01, 0x0a, 0x06, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x12, 0x27,
3741
	0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
3742
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52,
3743
	0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69,
3744
	0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x72,
3745
	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x09, 0x61, 0x72, 0x67, 0x75, 0x6d,
3746
	0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x62, 0x61, 0x73,
3747
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x61,
3748
	0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x65, 0x78, 0x70, 0x61,
3749
	0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e,
3750
	0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64,
3751
	0x65, 0x48, 0x00, 0x52, 0x06, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x04, 0x6c,
3752
	0x65, 0x61, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x61, 0x73, 0x65,
3753
	0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x4c, 0x65, 0x61, 0x66, 0x48, 0x00,
3754
	0x52, 0x04, 0x6c, 0x65, 0x61, 0x66, 0x42, 0x06, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0xa3,
3755
	0x01, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x4c, 0x65, 0x61, 0x66, 0x12, 0x2f, 0x0a,
3756
	0x08, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
3757
	0x11, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63,
3758
	0x74, 0x73, 0x48, 0x00, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x29,
3759
	0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
3760
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x48,
3761
	0x00, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c,
3762
	0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
3763
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00,
3764
	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
3765
	0x03, 0xf8, 0x42, 0x01, 0x22, 0x8e, 0x01, 0x0a, 0x06, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12,
3766
	0x33, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
3767
	0x1b, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73,
3768
	0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x76, 0x61,
3769
	0x6c, 0x75, 0x65, 0x73, 0x1a, 0x4f, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e,
3770
	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
3771
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
3772
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
3773
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
3774
	0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x08, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74,
3775
	0x73, 0x12, 0x2c, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20,
3776
	0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75,
3777
	0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22,
3778
	0x68, 0x0a, 0x06, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
3779
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
3780
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a,
3781
	0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
3782
	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
3783
	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63,
3784
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x22, 0x66, 0x0a, 0x0b, 0x44, 0x61, 0x74,
3785
	0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x6e, 0x61, 0x70,
3786
	0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6e,
3787
	0x61, 0x70, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61,
3788
	0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13,
3789
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61,
3790
	0x6e, 0x67, 0x65, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
3791
	0x73, 0x22, 0x86, 0x02, 0x0a, 0x0a, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
3792
	0x12, 0x3b, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
3793
	0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61,
3794
	0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
3795
	0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a,
3796
	0x05, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62,
3797
	0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x05,
3798
	0x74, 0x75, 0x70, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
3799
	0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e,
3800
	0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x48, 0x00, 0x52, 0x09,
3801
	0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x22, 0x52, 0x0a, 0x09, 0x4f, 0x70, 0x65,
3802
	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54,
3803
	0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
3804
	0x00, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43,
3805
	0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x41,
3806
	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x42, 0x0b, 0x0a,
3807
	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0x21, 0x0a, 0x0b, 0x53, 0x74,
3808
	0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74,
3809
	0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x22, 0x0a,
3810
	0x0c, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a,
3811
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x64, 0x61, 0x74,
3812
	0x61, 0x22, 0x21, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
3813
	0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04,
3814
	0x64, 0x61, 0x74, 0x61, 0x22, 0x22, 0x0a, 0x0c, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x56,
3815
	0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
3816
	0x28, 0x08, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x69,
3817
	0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04,
3818
	0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
3819
	0x22, 0x27, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x41, 0x72, 0x72, 0x61, 0x79,
3820
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
3821
	0x03, 0x28, 0x05, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x10, 0x44, 0x6f, 0x75,
3822
	0x62, 0x6c, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a,
3823
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x52, 0x04, 0x64, 0x61, 0x74,
3824
	0x61, 0x22, 0x27, 0x0a, 0x11, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x41, 0x72, 0x72, 0x61,
3825
	0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01,
3826
	0x20, 0x03, 0x28, 0x08, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x72, 0x0a, 0x0a, 0x44, 0x61,
3827
	0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
3828
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09,
3829
	0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
3830
	0x09, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x6f, 0x70,
3831
	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
3832
	0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
3833
	0x6f, 0x6e, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xcb,
3834
	0x01, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x13,
3835
	0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x5f, 0x77, 0x72,
3836
	0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x6c, 0x61, 0x74,
3837
	0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x32,
3838
	0x0a, 0x14, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x5f,
3839
	0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x72, 0x65,
3840
	0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65,
3841
	0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
3842
	0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x61, 0x74,
3843
	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x2c,
3844
	0x0a, 0x11, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x6c,
3845
	0x65, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x61, 0x74, 0x74, 0x72, 0x69,
3846
	0x62, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x50, 0x0a, 0x08,
3847
	0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x72, 0x69, 0x74,
3848
	0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x16,
3849
	0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06,
3850
	0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
3851
	0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2a, 0x5e,
3852
	0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1c, 0x0a,
3853
	0x18, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x55, 0x4e,
3854
	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43,
3855
	0x48, 0x45, 0x43, 0x4b, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x41, 0x4c, 0x4c, 0x4f,
3856
	0x57, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x52,
3857
	0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xa3,
3858
	0x02, 0x0a, 0x0d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65,
3859
	0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59,
3860
	0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
3861
	0x12, 0x1a, 0x0a, 0x16, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59,
3862
	0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c,
3863
	0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42,
3864
	0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x5f, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x02, 0x12, 0x19,
3865
	0x0a, 0x15, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45,
3866
	0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x54, 0x54,
3867
	0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49,
3868
	0x4e, 0x47, 0x5f, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x54,
3869
	0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54,
3870
	0x45, 0x47, 0x45, 0x52, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42,
3871
	0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52,
3872
	0x5f, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x54, 0x54, 0x52,
3873
	0x49, 0x42, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c,
3874
	0x45, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x54, 0x54, 0x52, 0x49, 0x42, 0x55, 0x54, 0x45,
3875
	0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x52, 0x52,
3876
	0x41, 0x59, 0x10, 0x08, 0x42, 0x87, 0x01, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x2e, 0x62, 0x61, 0x73,
3877
	0x65, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x42, 0x61, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50,
3878
	0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x65,
3879
	0x72, 0x6d, 0x69, 0x66, 0x79, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x66, 0x79, 0x2f, 0x70, 0x6b,
3880
	0x67, 0x2f, 0x70, 0x62, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x62, 0x61, 0x73,
3881
	0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x42, 0x58, 0x58, 0xaa, 0x02, 0x07, 0x42, 0x61, 0x73, 0x65,
3882
	0x2e, 0x56, 0x31, 0xca, 0x02, 0x07, 0x42, 0x61, 0x73, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x13,
3883
	0x42, 0x61, 0x73, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64,
3884
	0x61, 0x74, 0x61, 0xea, 0x02, 0x08, 0x42, 0x61, 0x73, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06,
3885
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
3886
}
3887
3888
var (
3889
	file_base_v1_base_proto_rawDescOnce sync.Once
3890
	file_base_v1_base_proto_rawDescData = file_base_v1_base_proto_rawDesc
3891
)
3892
3893
func file_base_v1_base_proto_rawDescGZIP() []byte {
3894
	file_base_v1_base_proto_rawDescOnce.Do(func() {
3895
		file_base_v1_base_proto_rawDescData = protoimpl.X.CompressGZIP(file_base_v1_base_proto_rawDescData)
3896
	})
3897
	return file_base_v1_base_proto_rawDescData
3898
}
3899
3900
var file_base_v1_base_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
3901
var file_base_v1_base_proto_msgTypes = make([]protoimpl.MessageInfo, 57)
3902
var file_base_v1_base_proto_goTypes = []any{
3903
	(CheckResult)(0),                // 0: base.v1.CheckResult
3904
	(AttributeType)(0),              // 1: base.v1.AttributeType
3905
	(Rewrite_Operation)(0),          // 2: base.v1.Rewrite.Operation
3906
	(SchemaDefinition_Reference)(0), // 3: base.v1.SchemaDefinition.Reference
3907
	(EntityDefinition_Reference)(0), // 4: base.v1.EntityDefinition.Reference
3908
	(ExpandTreeNode_Operation)(0),   // 5: base.v1.ExpandTreeNode.Operation
3909
	(DataChange_Operation)(0),       // 6: base.v1.DataChange.Operation
3910
	(*Context)(nil),                 // 7: base.v1.Context
3911
	(*Child)(nil),                   // 8: base.v1.Child
3912
	(*Leaf)(nil),                    // 9: base.v1.Leaf
3913
	(*Rewrite)(nil),                 // 10: base.v1.Rewrite
3914
	(*SchemaDefinition)(nil),        // 11: base.v1.SchemaDefinition
3915
	(*EntityDefinition)(nil),        // 12: base.v1.EntityDefinition
3916
	(*RuleDefinition)(nil),          // 13: base.v1.RuleDefinition
3917
	(*AttributeDefinition)(nil),     // 14: base.v1.AttributeDefinition
3918
	(*RelationDefinition)(nil),      // 15: base.v1.RelationDefinition
3919
	(*PermissionDefinition)(nil),    // 16: base.v1.PermissionDefinition
3920
	(*RelationReference)(nil),       // 17: base.v1.RelationReference
3921
	(*Entrance)(nil),                // 18: base.v1.Entrance
3922
	(*Argument)(nil),                // 19: base.v1.Argument
3923
	(*Call)(nil),                    // 20: base.v1.Call
3924
	(*ComputedAttribute)(nil),       // 21: base.v1.ComputedAttribute
3925
	(*ComputedUserSet)(nil),         // 22: base.v1.ComputedUserSet
3926
	(*TupleToUserSet)(nil),          // 23: base.v1.TupleToUserSet
3927
	(*TupleSet)(nil),                // 24: base.v1.TupleSet
3928
	(*Tuple)(nil),                   // 25: base.v1.Tuple
3929
	(*Attribute)(nil),               // 26: base.v1.Attribute
3930
	(*Tuples)(nil),                  // 27: base.v1.Tuples
3931
	(*Attributes)(nil),              // 28: base.v1.Attributes
3932
	(*Entity)(nil),                  // 29: base.v1.Entity
3933
	(*EntityAndRelation)(nil),       // 30: base.v1.EntityAndRelation
3934
	(*Subject)(nil),                 // 31: base.v1.Subject
3935
	(*AttributeFilter)(nil),         // 32: base.v1.AttributeFilter
3936
	(*TupleFilter)(nil),             // 33: base.v1.TupleFilter
3937
	(*EntityFilter)(nil),            // 34: base.v1.EntityFilter
3938
	(*SubjectFilter)(nil),           // 35: base.v1.SubjectFilter
3939
	(*ExpandTreeNode)(nil),          // 36: base.v1.ExpandTreeNode
3940
	(*Expand)(nil),                  // 37: base.v1.Expand
3941
	(*ExpandLeaf)(nil),              // 38: base.v1.ExpandLeaf
3942
	(*Values)(nil),                  // 39: base.v1.Values
3943
	(*Subjects)(nil),                // 40: base.v1.Subjects
3944
	(*Tenant)(nil),                  // 41: base.v1.Tenant
3945
	(*DataChanges)(nil),             // 42: base.v1.DataChanges
3946
	(*DataChange)(nil),              // 43: base.v1.DataChange
3947
	(*StringValue)(nil),             // 44: base.v1.StringValue
3948
	(*IntegerValue)(nil),            // 45: base.v1.IntegerValue
3949
	(*DoubleValue)(nil),             // 46: base.v1.DoubleValue
3950
	(*BooleanValue)(nil),            // 47: base.v1.BooleanValue
3951
	(*StringArrayValue)(nil),        // 48: base.v1.StringArrayValue
3952
	(*IntegerArrayValue)(nil),       // 49: base.v1.IntegerArrayValue
3953
	(*DoubleArrayValue)(nil),        // 50: base.v1.DoubleArrayValue
3954
	(*BooleanArrayValue)(nil),       // 51: base.v1.BooleanArrayValue
3955
	(*DataBundle)(nil),              // 52: base.v1.DataBundle
3956
	(*Operation)(nil),               // 53: base.v1.Operation
3957
	(*Partials)(nil),                // 54: base.v1.Partials
3958
	nil,                             // 55: base.v1.SchemaDefinition.EntityDefinitionsEntry
3959
	nil,                             // 56: base.v1.SchemaDefinition.RuleDefinitionsEntry
3960
	nil,                             // 57: base.v1.SchemaDefinition.ReferencesEntry
3961
	nil,                             // 58: base.v1.EntityDefinition.RelationsEntry
3962
	nil,                             // 59: base.v1.EntityDefinition.PermissionsEntry
3963
	nil,                             // 60: base.v1.EntityDefinition.AttributesEntry
3964
	nil,                             // 61: base.v1.EntityDefinition.ReferencesEntry
3965
	nil,                             // 62: base.v1.RuleDefinition.ArgumentsEntry
3966
	nil,                             // 63: base.v1.Values.ValuesEntry
3967
	(*structpb.Struct)(nil),         // 64: google.protobuf.Struct
3968
	(*v1alpha1.CheckedExpr)(nil),    // 65: google.api.expr.v1alpha1.CheckedExpr
3969
	(*anypb.Any)(nil),               // 66: google.protobuf.Any
3970
	(*timestamppb.Timestamp)(nil),   // 67: google.protobuf.Timestamp
3971
}
3972
var file_base_v1_base_proto_depIdxs = []int32{
3973
	25, // 0: base.v1.Context.tuples:type_name -> base.v1.Tuple
3974
	26, // 1: base.v1.Context.attributes:type_name -> base.v1.Attribute
3975
	64, // 2: base.v1.Context.data:type_name -> google.protobuf.Struct
3976
	9,  // 3: base.v1.Child.leaf:type_name -> base.v1.Leaf
3977
	10, // 4: base.v1.Child.rewrite:type_name -> base.v1.Rewrite
3978
	22, // 5: base.v1.Leaf.computed_user_set:type_name -> base.v1.ComputedUserSet
3979
	23, // 6: base.v1.Leaf.tuple_to_user_set:type_name -> base.v1.TupleToUserSet
3980
	21, // 7: base.v1.Leaf.computed_attribute:type_name -> base.v1.ComputedAttribute
3981
	20, // 8: base.v1.Leaf.call:type_name -> base.v1.Call
3982
	2,  // 9: base.v1.Rewrite.rewrite_operation:type_name -> base.v1.Rewrite.Operation
3983
	8,  // 10: base.v1.Rewrite.children:type_name -> base.v1.Child
3984
	55, // 11: base.v1.SchemaDefinition.entity_definitions:type_name -> base.v1.SchemaDefinition.EntityDefinitionsEntry
3985
	56, // 12: base.v1.SchemaDefinition.rule_definitions:type_name -> base.v1.SchemaDefinition.RuleDefinitionsEntry
3986
	57, // 13: base.v1.SchemaDefinition.references:type_name -> base.v1.SchemaDefinition.ReferencesEntry
3987
	58, // 14: base.v1.EntityDefinition.relations:type_name -> base.v1.EntityDefinition.RelationsEntry
3988
	59, // 15: base.v1.EntityDefinition.permissions:type_name -> base.v1.EntityDefinition.PermissionsEntry
3989
	60, // 16: base.v1.EntityDefinition.attributes:type_name -> base.v1.EntityDefinition.AttributesEntry
3990
	61, // 17: base.v1.EntityDefinition.references:type_name -> base.v1.EntityDefinition.ReferencesEntry
3991
	62, // 18: base.v1.RuleDefinition.arguments:type_name -> base.v1.RuleDefinition.ArgumentsEntry
3992
	65, // 19: base.v1.RuleDefinition.expression:type_name -> google.api.expr.v1alpha1.CheckedExpr
3993
	1,  // 20: base.v1.AttributeDefinition.type:type_name -> base.v1.AttributeType
3994
	17, // 21: base.v1.RelationDefinition.relation_references:type_name -> base.v1.RelationReference
3995
	8,  // 22: base.v1.PermissionDefinition.child:type_name -> base.v1.Child
3996
	21, // 23: base.v1.Argument.computed_attribute:type_name -> base.v1.ComputedAttribute
3997
	19, // 24: base.v1.Call.arguments:type_name -> base.v1.Argument
3998
	24, // 25: base.v1.TupleToUserSet.tupleSet:type_name -> base.v1.TupleSet
3999
	22, // 26: base.v1.TupleToUserSet.computed:type_name -> base.v1.ComputedUserSet
4000
	29, // 27: base.v1.Tuple.entity:type_name -> base.v1.Entity
4001
	31, // 28: base.v1.Tuple.subject:type_name -> base.v1.Subject
4002
	29, // 29: base.v1.Attribute.entity:type_name -> base.v1.Entity
4003
	66, // 30: base.v1.Attribute.value:type_name -> google.protobuf.Any
4004
	25, // 31: base.v1.Tuples.tuples:type_name -> base.v1.Tuple
4005
	26, // 32: base.v1.Attributes.attributes:type_name -> base.v1.Attribute
4006
	29, // 33: base.v1.EntityAndRelation.entity:type_name -> base.v1.Entity
4007
	34, // 34: base.v1.AttributeFilter.entity:type_name -> base.v1.EntityFilter
4008
	34, // 35: base.v1.TupleFilter.entity:type_name -> base.v1.EntityFilter
4009
	35, // 36: base.v1.TupleFilter.subject:type_name -> base.v1.SubjectFilter
4010
	5,  // 37: base.v1.ExpandTreeNode.operation:type_name -> base.v1.ExpandTreeNode.Operation
4011
	37, // 38: base.v1.ExpandTreeNode.children:type_name -> base.v1.Expand
4012
	29, // 39: base.v1.Expand.entity:type_name -> base.v1.Entity
4013
	19, // 40: base.v1.Expand.arguments:type_name -> base.v1.Argument
4014
	36, // 41: base.v1.Expand.expand:type_name -> base.v1.ExpandTreeNode
4015
	38, // 42: base.v1.Expand.leaf:type_name -> base.v1.ExpandLeaf
4016
	40, // 43: base.v1.ExpandLeaf.subjects:type_name -> base.v1.Subjects
4017
	39, // 44: base.v1.ExpandLeaf.values:type_name -> base.v1.Values
4018
	66, // 45: base.v1.ExpandLeaf.value:type_name -> google.protobuf.Any
4019
	63, // 46: base.v1.Values.values:type_name -> base.v1.Values.ValuesEntry
4020
	31, // 47: base.v1.Subjects.subjects:type_name -> base.v1.Subject
4021
	67, // 48: base.v1.Tenant.created_at:type_name -> google.protobuf.Timestamp
4022
	43, // 49: base.v1.DataChanges.data_changes:type_name -> base.v1.DataChange
4023
	6,  // 50: base.v1.DataChange.operation:type_name -> base.v1.DataChange.Operation
4024
	25, // 51: base.v1.DataChange.tuple:type_name -> base.v1.Tuple
4025
	26, // 52: base.v1.DataChange.attribute:type_name -> base.v1.Attribute
4026
	53, // 53: base.v1.DataBundle.operations:type_name -> base.v1.Operation
4027
	12, // 54: base.v1.SchemaDefinition.EntityDefinitionsEntry.value:type_name -> base.v1.EntityDefinition
4028
	13, // 55: base.v1.SchemaDefinition.RuleDefinitionsEntry.value:type_name -> base.v1.RuleDefinition
4029
	3,  // 56: base.v1.SchemaDefinition.ReferencesEntry.value:type_name -> base.v1.SchemaDefinition.Reference
4030
	15, // 57: base.v1.EntityDefinition.RelationsEntry.value:type_name -> base.v1.RelationDefinition
4031
	16, // 58: base.v1.EntityDefinition.PermissionsEntry.value:type_name -> base.v1.PermissionDefinition
4032
	14, // 59: base.v1.EntityDefinition.AttributesEntry.value:type_name -> base.v1.AttributeDefinition
4033
	4,  // 60: base.v1.EntityDefinition.ReferencesEntry.value:type_name -> base.v1.EntityDefinition.Reference
4034
	1,  // 61: base.v1.RuleDefinition.ArgumentsEntry.value:type_name -> base.v1.AttributeType
4035
	66, // 62: base.v1.Values.ValuesEntry.value:type_name -> google.protobuf.Any
4036
	63, // [63:63] is the sub-list for method output_type
4037
	63, // [63:63] is the sub-list for method input_type
4038
	63, // [63:63] is the sub-list for extension type_name
4039
	63, // [63:63] is the sub-list for extension extendee
4040
	0,  // [0:63] is the sub-list for field type_name
4041
}
4042
4043
func init() { file_base_v1_base_proto_init() }
4044
func file_base_v1_base_proto_init() {
4045
	if File_base_v1_base_proto != nil {
4046
		return
4047
	}
4048
	if !protoimpl.UnsafeEnabled {
4049
		file_base_v1_base_proto_msgTypes[0].Exporter = func(v any, i int) any {
4050
			switch v := v.(*Context); i {
4051
			case 0:
4052
				return &v.state
4053
			case 1:
4054
				return &v.sizeCache
4055
			case 2:
4056
				return &v.unknownFields
4057
			default:
4058
				return nil
4059
			}
4060
		}
4061
		file_base_v1_base_proto_msgTypes[1].Exporter = func(v any, i int) any {
4062
			switch v := v.(*Child); i {
4063
			case 0:
4064
				return &v.state
4065
			case 1:
4066
				return &v.sizeCache
4067
			case 2:
4068
				return &v.unknownFields
4069
			default:
4070
				return nil
4071
			}
4072
		}
4073
		file_base_v1_base_proto_msgTypes[2].Exporter = func(v any, i int) any {
4074
			switch v := v.(*Leaf); i {
4075
			case 0:
4076
				return &v.state
4077
			case 1:
4078
				return &v.sizeCache
4079
			case 2:
4080
				return &v.unknownFields
4081
			default:
4082
				return nil
4083
			}
4084
		}
4085
		file_base_v1_base_proto_msgTypes[3].Exporter = func(v any, i int) any {
4086
			switch v := v.(*Rewrite); i {
4087
			case 0:
4088
				return &v.state
4089
			case 1:
4090
				return &v.sizeCache
4091
			case 2:
4092
				return &v.unknownFields
4093
			default:
4094
				return nil
4095
			}
4096
		}
4097
		file_base_v1_base_proto_msgTypes[4].Exporter = func(v any, i int) any {
4098
			switch v := v.(*SchemaDefinition); i {
4099
			case 0:
4100
				return &v.state
4101
			case 1:
4102
				return &v.sizeCache
4103
			case 2:
4104
				return &v.unknownFields
4105
			default:
4106
				return nil
4107
			}
4108
		}
4109
		file_base_v1_base_proto_msgTypes[5].Exporter = func(v any, i int) any {
4110
			switch v := v.(*EntityDefinition); i {
4111
			case 0:
4112
				return &v.state
4113
			case 1:
4114
				return &v.sizeCache
4115
			case 2:
4116
				return &v.unknownFields
4117
			default:
4118
				return nil
4119
			}
4120
		}
4121
		file_base_v1_base_proto_msgTypes[6].Exporter = func(v any, i int) any {
4122
			switch v := v.(*RuleDefinition); i {
4123
			case 0:
4124
				return &v.state
4125
			case 1:
4126
				return &v.sizeCache
4127
			case 2:
4128
				return &v.unknownFields
4129
			default:
4130
				return nil
4131
			}
4132
		}
4133
		file_base_v1_base_proto_msgTypes[7].Exporter = func(v any, i int) any {
4134
			switch v := v.(*AttributeDefinition); i {
4135
			case 0:
4136
				return &v.state
4137
			case 1:
4138
				return &v.sizeCache
4139
			case 2:
4140
				return &v.unknownFields
4141
			default:
4142
				return nil
4143
			}
4144
		}
4145
		file_base_v1_base_proto_msgTypes[8].Exporter = func(v any, i int) any {
4146
			switch v := v.(*RelationDefinition); i {
4147
			case 0:
4148
				return &v.state
4149
			case 1:
4150
				return &v.sizeCache
4151
			case 2:
4152
				return &v.unknownFields
4153
			default:
4154
				return nil
4155
			}
4156
		}
4157
		file_base_v1_base_proto_msgTypes[9].Exporter = func(v any, i int) any {
4158
			switch v := v.(*PermissionDefinition); i {
4159
			case 0:
4160
				return &v.state
4161
			case 1:
4162
				return &v.sizeCache
4163
			case 2:
4164
				return &v.unknownFields
4165
			default:
4166
				return nil
4167
			}
4168
		}
4169
		file_base_v1_base_proto_msgTypes[10].Exporter = func(v any, i int) any {
4170
			switch v := v.(*RelationReference); i {
4171
			case 0:
4172
				return &v.state
4173
			case 1:
4174
				return &v.sizeCache
4175
			case 2:
4176
				return &v.unknownFields
4177
			default:
4178
				return nil
4179
			}
4180
		}
4181
		file_base_v1_base_proto_msgTypes[11].Exporter = func(v any, i int) any {
4182
			switch v := v.(*Entrance); i {
4183
			case 0:
4184
				return &v.state
4185
			case 1:
4186
				return &v.sizeCache
4187
			case 2:
4188
				return &v.unknownFields
4189
			default:
4190
				return nil
4191
			}
4192
		}
4193
		file_base_v1_base_proto_msgTypes[12].Exporter = func(v any, i int) any {
4194
			switch v := v.(*Argument); i {
4195
			case 0:
4196
				return &v.state
4197
			case 1:
4198
				return &v.sizeCache
4199
			case 2:
4200
				return &v.unknownFields
4201
			default:
4202
				return nil
4203
			}
4204
		}
4205
		file_base_v1_base_proto_msgTypes[13].Exporter = func(v any, i int) any {
4206
			switch v := v.(*Call); i {
4207
			case 0:
4208
				return &v.state
4209
			case 1:
4210
				return &v.sizeCache
4211
			case 2:
4212
				return &v.unknownFields
4213
			default:
4214
				return nil
4215
			}
4216
		}
4217
		file_base_v1_base_proto_msgTypes[14].Exporter = func(v any, i int) any {
4218
			switch v := v.(*ComputedAttribute); i {
4219
			case 0:
4220
				return &v.state
4221
			case 1:
4222
				return &v.sizeCache
4223
			case 2:
4224
				return &v.unknownFields
4225
			default:
4226
				return nil
4227
			}
4228
		}
4229
		file_base_v1_base_proto_msgTypes[15].Exporter = func(v any, i int) any {
4230
			switch v := v.(*ComputedUserSet); i {
4231
			case 0:
4232
				return &v.state
4233
			case 1:
4234
				return &v.sizeCache
4235
			case 2:
4236
				return &v.unknownFields
4237
			default:
4238
				return nil
4239
			}
4240
		}
4241
		file_base_v1_base_proto_msgTypes[16].Exporter = func(v any, i int) any {
4242
			switch v := v.(*TupleToUserSet); i {
4243
			case 0:
4244
				return &v.state
4245
			case 1:
4246
				return &v.sizeCache
4247
			case 2:
4248
				return &v.unknownFields
4249
			default:
4250
				return nil
4251
			}
4252
		}
4253
		file_base_v1_base_proto_msgTypes[17].Exporter = func(v any, i int) any {
4254
			switch v := v.(*TupleSet); i {
4255
			case 0:
4256
				return &v.state
4257
			case 1:
4258
				return &v.sizeCache
4259
			case 2:
4260
				return &v.unknownFields
4261
			default:
4262
				return nil
4263
			}
4264
		}
4265
		file_base_v1_base_proto_msgTypes[18].Exporter = func(v any, i int) any {
4266
			switch v := v.(*Tuple); i {
4267
			case 0:
4268
				return &v.state
4269
			case 1:
4270
				return &v.sizeCache
4271
			case 2:
4272
				return &v.unknownFields
4273
			default:
4274
				return nil
4275
			}
4276
		}
4277
		file_base_v1_base_proto_msgTypes[19].Exporter = func(v any, i int) any {
4278
			switch v := v.(*Attribute); i {
4279
			case 0:
4280
				return &v.state
4281
			case 1:
4282
				return &v.sizeCache
4283
			case 2:
4284
				return &v.unknownFields
4285
			default:
4286
				return nil
4287
			}
4288
		}
4289
		file_base_v1_base_proto_msgTypes[20].Exporter = func(v any, i int) any {
4290
			switch v := v.(*Tuples); i {
4291
			case 0:
4292
				return &v.state
4293
			case 1:
4294
				return &v.sizeCache
4295
			case 2:
4296
				return &v.unknownFields
4297
			default:
4298
				return nil
4299
			}
4300
		}
4301
		file_base_v1_base_proto_msgTypes[21].Exporter = func(v any, i int) any {
4302
			switch v := v.(*Attributes); i {
4303
			case 0:
4304
				return &v.state
4305
			case 1:
4306
				return &v.sizeCache
4307
			case 2:
4308
				return &v.unknownFields
4309
			default:
4310
				return nil
4311
			}
4312
		}
4313
		file_base_v1_base_proto_msgTypes[22].Exporter = func(v any, i int) any {
4314
			switch v := v.(*Entity); i {
4315
			case 0:
4316
				return &v.state
4317
			case 1:
4318
				return &v.sizeCache
4319
			case 2:
4320
				return &v.unknownFields
4321
			default:
4322
				return nil
4323
			}
4324
		}
4325
		file_base_v1_base_proto_msgTypes[23].Exporter = func(v any, i int) any {
4326
			switch v := v.(*EntityAndRelation); i {
4327
			case 0:
4328
				return &v.state
4329
			case 1:
4330
				return &v.sizeCache
4331
			case 2:
4332
				return &v.unknownFields
4333
			default:
4334
				return nil
4335
			}
4336
		}
4337
		file_base_v1_base_proto_msgTypes[24].Exporter = func(v any, i int) any {
4338
			switch v := v.(*Subject); i {
4339
			case 0:
4340
				return &v.state
4341
			case 1:
4342
				return &v.sizeCache
4343
			case 2:
4344
				return &v.unknownFields
4345
			default:
4346
				return nil
4347
			}
4348
		}
4349
		file_base_v1_base_proto_msgTypes[25].Exporter = func(v any, i int) any {
4350
			switch v := v.(*AttributeFilter); i {
4351
			case 0:
4352
				return &v.state
4353
			case 1:
4354
				return &v.sizeCache
4355
			case 2:
4356
				return &v.unknownFields
4357
			default:
4358
				return nil
4359
			}
4360
		}
4361
		file_base_v1_base_proto_msgTypes[26].Exporter = func(v any, i int) any {
4362
			switch v := v.(*TupleFilter); i {
4363
			case 0:
4364
				return &v.state
4365
			case 1:
4366
				return &v.sizeCache
4367
			case 2:
4368
				return &v.unknownFields
4369
			default:
4370
				return nil
4371
			}
4372
		}
4373
		file_base_v1_base_proto_msgTypes[27].Exporter = func(v any, i int) any {
4374
			switch v := v.(*EntityFilter); i {
4375
			case 0:
4376
				return &v.state
4377
			case 1:
4378
				return &v.sizeCache
4379
			case 2:
4380
				return &v.unknownFields
4381
			default:
4382
				return nil
4383
			}
4384
		}
4385
		file_base_v1_base_proto_msgTypes[28].Exporter = func(v any, i int) any {
4386
			switch v := v.(*SubjectFilter); i {
4387
			case 0:
4388
				return &v.state
4389
			case 1:
4390
				return &v.sizeCache
4391
			case 2:
4392
				return &v.unknownFields
4393
			default:
4394
				return nil
4395
			}
4396
		}
4397
		file_base_v1_base_proto_msgTypes[29].Exporter = func(v any, i int) any {
4398
			switch v := v.(*ExpandTreeNode); i {
4399
			case 0:
4400
				return &v.state
4401
			case 1:
4402
				return &v.sizeCache
4403
			case 2:
4404
				return &v.unknownFields
4405
			default:
4406
				return nil
4407
			}
4408
		}
4409
		file_base_v1_base_proto_msgTypes[30].Exporter = func(v any, i int) any {
4410
			switch v := v.(*Expand); i {
4411
			case 0:
4412
				return &v.state
4413
			case 1:
4414
				return &v.sizeCache
4415
			case 2:
4416
				return &v.unknownFields
4417
			default:
4418
				return nil
4419
			}
4420
		}
4421
		file_base_v1_base_proto_msgTypes[31].Exporter = func(v any, i int) any {
4422
			switch v := v.(*ExpandLeaf); i {
4423
			case 0:
4424
				return &v.state
4425
			case 1:
4426
				return &v.sizeCache
4427
			case 2:
4428
				return &v.unknownFields
4429
			default:
4430
				return nil
4431
			}
4432
		}
4433
		file_base_v1_base_proto_msgTypes[32].Exporter = func(v any, i int) any {
4434
			switch v := v.(*Values); i {
4435
			case 0:
4436
				return &v.state
4437
			case 1:
4438
				return &v.sizeCache
4439
			case 2:
4440
				return &v.unknownFields
4441
			default:
4442
				return nil
4443
			}
4444
		}
4445
		file_base_v1_base_proto_msgTypes[33].Exporter = func(v any, i int) any {
4446
			switch v := v.(*Subjects); i {
4447
			case 0:
4448
				return &v.state
4449
			case 1:
4450
				return &v.sizeCache
4451
			case 2:
4452
				return &v.unknownFields
4453
			default:
4454
				return nil
4455
			}
4456
		}
4457
		file_base_v1_base_proto_msgTypes[34].Exporter = func(v any, i int) any {
4458
			switch v := v.(*Tenant); i {
4459
			case 0:
4460
				return &v.state
4461
			case 1:
4462
				return &v.sizeCache
4463
			case 2:
4464
				return &v.unknownFields
4465
			default:
4466
				return nil
4467
			}
4468
		}
4469
		file_base_v1_base_proto_msgTypes[35].Exporter = func(v any, i int) any {
4470
			switch v := v.(*DataChanges); i {
4471
			case 0:
4472
				return &v.state
4473
			case 1:
4474
				return &v.sizeCache
4475
			case 2:
4476
				return &v.unknownFields
4477
			default:
4478
				return nil
4479
			}
4480
		}
4481
		file_base_v1_base_proto_msgTypes[36].Exporter = func(v any, i int) any {
4482
			switch v := v.(*DataChange); i {
4483
			case 0:
4484
				return &v.state
4485
			case 1:
4486
				return &v.sizeCache
4487
			case 2:
4488
				return &v.unknownFields
4489
			default:
4490
				return nil
4491
			}
4492
		}
4493
		file_base_v1_base_proto_msgTypes[37].Exporter = func(v any, i int) any {
4494
			switch v := v.(*StringValue); i {
4495
			case 0:
4496
				return &v.state
4497
			case 1:
4498
				return &v.sizeCache
4499
			case 2:
4500
				return &v.unknownFields
4501
			default:
4502
				return nil
4503
			}
4504
		}
4505
		file_base_v1_base_proto_msgTypes[38].Exporter = func(v any, i int) any {
4506
			switch v := v.(*IntegerValue); i {
4507
			case 0:
4508
				return &v.state
4509
			case 1:
4510
				return &v.sizeCache
4511
			case 2:
4512
				return &v.unknownFields
4513
			default:
4514
				return nil
4515
			}
4516
		}
4517
		file_base_v1_base_proto_msgTypes[39].Exporter = func(v any, i int) any {
4518
			switch v := v.(*DoubleValue); i {
4519
			case 0:
4520
				return &v.state
4521
			case 1:
4522
				return &v.sizeCache
4523
			case 2:
4524
				return &v.unknownFields
4525
			default:
4526
				return nil
4527
			}
4528
		}
4529
		file_base_v1_base_proto_msgTypes[40].Exporter = func(v any, i int) any {
4530
			switch v := v.(*BooleanValue); i {
4531
			case 0:
4532
				return &v.state
4533
			case 1:
4534
				return &v.sizeCache
4535
			case 2:
4536
				return &v.unknownFields
4537
			default:
4538
				return nil
4539
			}
4540
		}
4541
		file_base_v1_base_proto_msgTypes[41].Exporter = func(v any, i int) any {
4542
			switch v := v.(*StringArrayValue); i {
4543
			case 0:
4544
				return &v.state
4545
			case 1:
4546
				return &v.sizeCache
4547
			case 2:
4548
				return &v.unknownFields
4549
			default:
4550
				return nil
4551
			}
4552
		}
4553
		file_base_v1_base_proto_msgTypes[42].Exporter = func(v any, i int) any {
4554
			switch v := v.(*IntegerArrayValue); i {
4555
			case 0:
4556
				return &v.state
4557
			case 1:
4558
				return &v.sizeCache
4559
			case 2:
4560
				return &v.unknownFields
4561
			default:
4562
				return nil
4563
			}
4564
		}
4565
		file_base_v1_base_proto_msgTypes[43].Exporter = func(v any, i int) any {
4566
			switch v := v.(*DoubleArrayValue); i {
4567
			case 0:
4568
				return &v.state
4569
			case 1:
4570
				return &v.sizeCache
4571
			case 2:
4572
				return &v.unknownFields
4573
			default:
4574
				return nil
4575
			}
4576
		}
4577
		file_base_v1_base_proto_msgTypes[44].Exporter = func(v any, i int) any {
4578
			switch v := v.(*BooleanArrayValue); i {
4579
			case 0:
4580
				return &v.state
4581
			case 1:
4582
				return &v.sizeCache
4583
			case 2:
4584
				return &v.unknownFields
4585
			default:
4586
				return nil
4587
			}
4588
		}
4589
		file_base_v1_base_proto_msgTypes[45].Exporter = func(v any, i int) any {
4590
			switch v := v.(*DataBundle); i {
4591
			case 0:
4592
				return &v.state
4593
			case 1:
4594
				return &v.sizeCache
4595
			case 2:
4596
				return &v.unknownFields
4597
			default:
4598
				return nil
4599
			}
4600
		}
4601
		file_base_v1_base_proto_msgTypes[46].Exporter = func(v any, i int) any {
4602
			switch v := v.(*Operation); i {
4603
			case 0:
4604
				return &v.state
4605
			case 1:
4606
				return &v.sizeCache
4607
			case 2:
4608
				return &v.unknownFields
4609
			default:
4610
				return nil
4611
			}
4612
		}
4613
		file_base_v1_base_proto_msgTypes[47].Exporter = func(v any, i int) any {
4614
			switch v := v.(*Partials); i {
4615
			case 0:
4616
				return &v.state
4617
			case 1:
4618
				return &v.sizeCache
4619
			case 2:
4620
				return &v.unknownFields
4621
			default:
4622
				return nil
4623
			}
4624
		}
4625
	}
4626
	file_base_v1_base_proto_msgTypes[1].OneofWrappers = []any{
4627
		(*Child_Leaf)(nil),
4628
		(*Child_Rewrite)(nil),
4629
	}
4630
	file_base_v1_base_proto_msgTypes[2].OneofWrappers = []any{
4631
		(*Leaf_ComputedUserSet)(nil),
4632
		(*Leaf_TupleToUserSet)(nil),
4633
		(*Leaf_ComputedAttribute)(nil),
4634
		(*Leaf_Call)(nil),
4635
	}
4636
	file_base_v1_base_proto_msgTypes[12].OneofWrappers = []any{
4637
		(*Argument_ComputedAttribute)(nil),
4638
	}
4639
	file_base_v1_base_proto_msgTypes[30].OneofWrappers = []any{
4640
		(*Expand_Expand)(nil),
4641
		(*Expand_Leaf)(nil),
4642
	}
4643
	file_base_v1_base_proto_msgTypes[31].OneofWrappers = []any{
4644
		(*ExpandLeaf_Subjects)(nil),
4645
		(*ExpandLeaf_Values)(nil),
4646
		(*ExpandLeaf_Value)(nil),
4647
	}
4648
	file_base_v1_base_proto_msgTypes[36].OneofWrappers = []any{
4649
		(*DataChange_Tuple)(nil),
4650
		(*DataChange_Attribute)(nil),
4651
	}
4652
	type x struct{}
4653
	out := protoimpl.TypeBuilder{
4654
		File: protoimpl.DescBuilder{
4655
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
4656
			RawDescriptor: file_base_v1_base_proto_rawDesc,
4657
			NumEnums:      7,
4658
			NumMessages:   57,
4659
			NumExtensions: 0,
4660
			NumServices:   0,
4661
		},
4662
		GoTypes:           file_base_v1_base_proto_goTypes,
4663
		DependencyIndexes: file_base_v1_base_proto_depIdxs,
4664
		EnumInfos:         file_base_v1_base_proto_enumTypes,
4665
		MessageInfos:      file_base_v1_base_proto_msgTypes,
4666
	}.Build()
4667
	File_base_v1_base_proto = out.File
4668
	file_base_v1_base_proto_rawDesc = nil
4669
	file_base_v1_base_proto_goTypes = nil
4670
	file_base_v1_base_proto_depIdxs = nil
4671
}
4672