github.com/authzed/spicedb@v1.32.1-0.20240520085336-ebda56537386/pkg/proto/core/v1/core.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // versions: 3 // protoc-gen-go v1.33.0 4 // protoc (unknown) 5 // source: core/v1/core.proto 6 7 package corev1 8 9 import ( 10 _ "github.com/envoyproxy/protoc-gen-validate/validate" 11 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 12 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 13 anypb "google.golang.org/protobuf/types/known/anypb" 14 structpb "google.golang.org/protobuf/types/known/structpb" 15 reflect "reflect" 16 sync "sync" 17 ) 18 19 const ( 20 // Verify that this generated code is sufficiently up-to-date. 21 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 22 // Verify that runtime/protoimpl is sufficiently up-to-date. 23 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 24 ) 25 26 type RelationTupleUpdate_Operation int32 27 28 const ( 29 RelationTupleUpdate_UNKNOWN RelationTupleUpdate_Operation = 0 30 RelationTupleUpdate_CREATE RelationTupleUpdate_Operation = 1 31 RelationTupleUpdate_TOUCH RelationTupleUpdate_Operation = 2 32 RelationTupleUpdate_DELETE RelationTupleUpdate_Operation = 3 33 ) 34 35 // Enum value maps for RelationTupleUpdate_Operation. 36 var ( 37 RelationTupleUpdate_Operation_name = map[int32]string{ 38 0: "UNKNOWN", 39 1: "CREATE", 40 2: "TOUCH", 41 3: "DELETE", 42 } 43 RelationTupleUpdate_Operation_value = map[string]int32{ 44 "UNKNOWN": 0, 45 "CREATE": 1, 46 "TOUCH": 2, 47 "DELETE": 3, 48 } 49 ) 50 51 func (x RelationTupleUpdate_Operation) Enum() *RelationTupleUpdate_Operation { 52 p := new(RelationTupleUpdate_Operation) 53 *p = x 54 return p 55 } 56 57 func (x RelationTupleUpdate_Operation) String() string { 58 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 59 } 60 61 func (RelationTupleUpdate_Operation) Descriptor() protoreflect.EnumDescriptor { 62 return file_core_v1_core_proto_enumTypes[0].Descriptor() 63 } 64 65 func (RelationTupleUpdate_Operation) Type() protoreflect.EnumType { 66 return &file_core_v1_core_proto_enumTypes[0] 67 } 68 69 func (x RelationTupleUpdate_Operation) Number() protoreflect.EnumNumber { 70 return protoreflect.EnumNumber(x) 71 } 72 73 // Deprecated: Use RelationTupleUpdate_Operation.Descriptor instead. 74 func (RelationTupleUpdate_Operation) EnumDescriptor() ([]byte, []int) { 75 return file_core_v1_core_proto_rawDescGZIP(), []int{7, 0} 76 } 77 78 type SetOperationUserset_Operation int32 79 80 const ( 81 SetOperationUserset_INVALID SetOperationUserset_Operation = 0 82 SetOperationUserset_UNION SetOperationUserset_Operation = 1 83 SetOperationUserset_INTERSECTION SetOperationUserset_Operation = 2 84 SetOperationUserset_EXCLUSION SetOperationUserset_Operation = 3 85 ) 86 87 // Enum value maps for SetOperationUserset_Operation. 88 var ( 89 SetOperationUserset_Operation_name = map[int32]string{ 90 0: "INVALID", 91 1: "UNION", 92 2: "INTERSECTION", 93 3: "EXCLUSION", 94 } 95 SetOperationUserset_Operation_value = map[string]int32{ 96 "INVALID": 0, 97 "UNION": 1, 98 "INTERSECTION": 2, 99 "EXCLUSION": 3, 100 } 101 ) 102 103 func (x SetOperationUserset_Operation) Enum() *SetOperationUserset_Operation { 104 p := new(SetOperationUserset_Operation) 105 *p = x 106 return p 107 } 108 109 func (x SetOperationUserset_Operation) String() string { 110 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 111 } 112 113 func (SetOperationUserset_Operation) Descriptor() protoreflect.EnumDescriptor { 114 return file_core_v1_core_proto_enumTypes[1].Descriptor() 115 } 116 117 func (SetOperationUserset_Operation) Type() protoreflect.EnumType { 118 return &file_core_v1_core_proto_enumTypes[1] 119 } 120 121 func (x SetOperationUserset_Operation) Number() protoreflect.EnumNumber { 122 return protoreflect.EnumNumber(x) 123 } 124 125 // Deprecated: Use SetOperationUserset_Operation.Descriptor instead. 126 func (SetOperationUserset_Operation) EnumDescriptor() ([]byte, []int) { 127 return file_core_v1_core_proto_rawDescGZIP(), []int{9, 0} 128 } 129 130 type ReachabilityEntrypoint_ReachabilityEntrypointKind int32 131 132 const ( 133 // * 134 // RELATION_ENTRYPOINT indicates an entrypoint where the subject object can be directly 135 // found for a relationship. 136 ReachabilityEntrypoint_RELATION_ENTRYPOINT ReachabilityEntrypoint_ReachabilityEntrypointKind = 0 137 // * 138 // COMPUTED_USERSET_ENTRYPOINT indicates an entrypoint where the subject's relation is 139 // "rewritten" via a `computed_userset` to the target permission's operation node. 140 ReachabilityEntrypoint_COMPUTED_USERSET_ENTRYPOINT ReachabilityEntrypoint_ReachabilityEntrypointKind = 1 141 // * 142 // TUPLESET_TO_USERSET_ENTRYPOINT indicates an entrypoint where the subject's relation is 143 // walked via a `tupleset_to_userset` in the target permission's operation node. 144 ReachabilityEntrypoint_TUPLESET_TO_USERSET_ENTRYPOINT ReachabilityEntrypoint_ReachabilityEntrypointKind = 2 145 ) 146 147 // Enum value maps for ReachabilityEntrypoint_ReachabilityEntrypointKind. 148 var ( 149 ReachabilityEntrypoint_ReachabilityEntrypointKind_name = map[int32]string{ 150 0: "RELATION_ENTRYPOINT", 151 1: "COMPUTED_USERSET_ENTRYPOINT", 152 2: "TUPLESET_TO_USERSET_ENTRYPOINT", 153 } 154 ReachabilityEntrypoint_ReachabilityEntrypointKind_value = map[string]int32{ 155 "RELATION_ENTRYPOINT": 0, 156 "COMPUTED_USERSET_ENTRYPOINT": 1, 157 "TUPLESET_TO_USERSET_ENTRYPOINT": 2, 158 } 159 ) 160 161 func (x ReachabilityEntrypoint_ReachabilityEntrypointKind) Enum() *ReachabilityEntrypoint_ReachabilityEntrypointKind { 162 p := new(ReachabilityEntrypoint_ReachabilityEntrypointKind) 163 *p = x 164 return p 165 } 166 167 func (x ReachabilityEntrypoint_ReachabilityEntrypointKind) String() string { 168 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 169 } 170 171 func (ReachabilityEntrypoint_ReachabilityEntrypointKind) Descriptor() protoreflect.EnumDescriptor { 172 return file_core_v1_core_proto_enumTypes[2].Descriptor() 173 } 174 175 func (ReachabilityEntrypoint_ReachabilityEntrypointKind) Type() protoreflect.EnumType { 176 return &file_core_v1_core_proto_enumTypes[2] 177 } 178 179 func (x ReachabilityEntrypoint_ReachabilityEntrypointKind) Number() protoreflect.EnumNumber { 180 return protoreflect.EnumNumber(x) 181 } 182 183 // Deprecated: Use ReachabilityEntrypoint_ReachabilityEntrypointKind.Descriptor instead. 184 func (ReachabilityEntrypoint_ReachabilityEntrypointKind) EnumDescriptor() ([]byte, []int) { 185 return file_core_v1_core_proto_rawDescGZIP(), []int{17, 0} 186 } 187 188 type ReachabilityEntrypoint_EntrypointResultStatus int32 189 190 const ( 191 // * 192 // REACHABLE_CONDITIONAL_RESULT indicates that the entrypoint is under one or more intersections 193 // or exclusion operations, indicating that any reachable object *may* be a result, conditional 194 // on the parent non-union operation(s). 195 ReachabilityEntrypoint_REACHABLE_CONDITIONAL_RESULT ReachabilityEntrypoint_EntrypointResultStatus = 0 196 // * 197 // DIRECT_OPERATION_RESULT indicates that the entrypoint exists solely under zero or more 198 // union operations, making any reachable object also a *result* of the relation or permission. 199 ReachabilityEntrypoint_DIRECT_OPERATION_RESULT ReachabilityEntrypoint_EntrypointResultStatus = 1 200 ) 201 202 // Enum value maps for ReachabilityEntrypoint_EntrypointResultStatus. 203 var ( 204 ReachabilityEntrypoint_EntrypointResultStatus_name = map[int32]string{ 205 0: "REACHABLE_CONDITIONAL_RESULT", 206 1: "DIRECT_OPERATION_RESULT", 207 } 208 ReachabilityEntrypoint_EntrypointResultStatus_value = map[string]int32{ 209 "REACHABLE_CONDITIONAL_RESULT": 0, 210 "DIRECT_OPERATION_RESULT": 1, 211 } 212 ) 213 214 func (x ReachabilityEntrypoint_EntrypointResultStatus) Enum() *ReachabilityEntrypoint_EntrypointResultStatus { 215 p := new(ReachabilityEntrypoint_EntrypointResultStatus) 216 *p = x 217 return p 218 } 219 220 func (x ReachabilityEntrypoint_EntrypointResultStatus) String() string { 221 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 222 } 223 224 func (ReachabilityEntrypoint_EntrypointResultStatus) Descriptor() protoreflect.EnumDescriptor { 225 return file_core_v1_core_proto_enumTypes[3].Descriptor() 226 } 227 228 func (ReachabilityEntrypoint_EntrypointResultStatus) Type() protoreflect.EnumType { 229 return &file_core_v1_core_proto_enumTypes[3] 230 } 231 232 func (x ReachabilityEntrypoint_EntrypointResultStatus) Number() protoreflect.EnumNumber { 233 return protoreflect.EnumNumber(x) 234 } 235 236 // Deprecated: Use ReachabilityEntrypoint_EntrypointResultStatus.Descriptor instead. 237 func (ReachabilityEntrypoint_EntrypointResultStatus) EnumDescriptor() ([]byte, []int) { 238 return file_core_v1_core_proto_rawDescGZIP(), []int{17, 1} 239 } 240 241 type ComputedUserset_Object int32 242 243 const ( 244 ComputedUserset_TUPLE_OBJECT ComputedUserset_Object = 0 245 ComputedUserset_TUPLE_USERSET_OBJECT ComputedUserset_Object = 1 246 ) 247 248 // Enum value maps for ComputedUserset_Object. 249 var ( 250 ComputedUserset_Object_name = map[int32]string{ 251 0: "TUPLE_OBJECT", 252 1: "TUPLE_USERSET_OBJECT", 253 } 254 ComputedUserset_Object_value = map[string]int32{ 255 "TUPLE_OBJECT": 0, 256 "TUPLE_USERSET_OBJECT": 1, 257 } 258 ) 259 260 func (x ComputedUserset_Object) Enum() *ComputedUserset_Object { 261 p := new(ComputedUserset_Object) 262 *p = x 263 return p 264 } 265 266 func (x ComputedUserset_Object) String() string { 267 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 268 } 269 270 func (ComputedUserset_Object) Descriptor() protoreflect.EnumDescriptor { 271 return file_core_v1_core_proto_enumTypes[4].Descriptor() 272 } 273 274 func (ComputedUserset_Object) Type() protoreflect.EnumType { 275 return &file_core_v1_core_proto_enumTypes[4] 276 } 277 278 func (x ComputedUserset_Object) Number() protoreflect.EnumNumber { 279 return protoreflect.EnumNumber(x) 280 } 281 282 // Deprecated: Use ComputedUserset_Object.Descriptor instead. 283 func (ComputedUserset_Object) EnumDescriptor() ([]byte, []int) { 284 return file_core_v1_core_proto_rawDescGZIP(), []int{24, 0} 285 } 286 287 type CaveatOperation_Operation int32 288 289 const ( 290 CaveatOperation_UNKNOWN CaveatOperation_Operation = 0 291 CaveatOperation_OR CaveatOperation_Operation = 1 292 CaveatOperation_AND CaveatOperation_Operation = 2 293 CaveatOperation_NOT CaveatOperation_Operation = 3 294 ) 295 296 // Enum value maps for CaveatOperation_Operation. 297 var ( 298 CaveatOperation_Operation_name = map[int32]string{ 299 0: "UNKNOWN", 300 1: "OR", 301 2: "AND", 302 3: "NOT", 303 } 304 CaveatOperation_Operation_value = map[string]int32{ 305 "UNKNOWN": 0, 306 "OR": 1, 307 "AND": 2, 308 "NOT": 3, 309 } 310 ) 311 312 func (x CaveatOperation_Operation) Enum() *CaveatOperation_Operation { 313 p := new(CaveatOperation_Operation) 314 *p = x 315 return p 316 } 317 318 func (x CaveatOperation_Operation) String() string { 319 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 320 } 321 322 func (CaveatOperation_Operation) Descriptor() protoreflect.EnumDescriptor { 323 return file_core_v1_core_proto_enumTypes[5].Descriptor() 324 } 325 326 func (CaveatOperation_Operation) Type() protoreflect.EnumType { 327 return &file_core_v1_core_proto_enumTypes[5] 328 } 329 330 func (x CaveatOperation_Operation) Number() protoreflect.EnumNumber { 331 return protoreflect.EnumNumber(x) 332 } 333 334 // Deprecated: Use CaveatOperation_Operation.Descriptor instead. 335 func (CaveatOperation_Operation) EnumDescriptor() ([]byte, []int) { 336 return file_core_v1_core_proto_rawDescGZIP(), []int{27, 0} 337 } 338 339 type RelationTuple struct { 340 state protoimpl.MessageState 341 sizeCache protoimpl.SizeCache 342 unknownFields protoimpl.UnknownFields 343 344 // * resource_and_relation is the resource for the tuple 345 ResourceAndRelation *ObjectAndRelation `protobuf:"bytes,1,opt,name=resource_and_relation,json=resourceAndRelation,proto3" json:"resource_and_relation,omitempty"` 346 // * subject is the subject for the tuple 347 Subject *ObjectAndRelation `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` 348 // * caveat is a reference to a the caveat that must be enforced over the tuple * 349 Caveat *ContextualizedCaveat `protobuf:"bytes,3,opt,name=caveat,proto3" json:"caveat,omitempty"` 350 } 351 352 func (x *RelationTuple) Reset() { 353 *x = RelationTuple{} 354 if protoimpl.UnsafeEnabled { 355 mi := &file_core_v1_core_proto_msgTypes[0] 356 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 357 ms.StoreMessageInfo(mi) 358 } 359 } 360 361 func (x *RelationTuple) String() string { 362 return protoimpl.X.MessageStringOf(x) 363 } 364 365 func (*RelationTuple) ProtoMessage() {} 366 367 func (x *RelationTuple) ProtoReflect() protoreflect.Message { 368 mi := &file_core_v1_core_proto_msgTypes[0] 369 if protoimpl.UnsafeEnabled && x != nil { 370 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 371 if ms.LoadMessageInfo() == nil { 372 ms.StoreMessageInfo(mi) 373 } 374 return ms 375 } 376 return mi.MessageOf(x) 377 } 378 379 // Deprecated: Use RelationTuple.ProtoReflect.Descriptor instead. 380 func (*RelationTuple) Descriptor() ([]byte, []int) { 381 return file_core_v1_core_proto_rawDescGZIP(), []int{0} 382 } 383 384 func (x *RelationTuple) GetResourceAndRelation() *ObjectAndRelation { 385 if x != nil { 386 return x.ResourceAndRelation 387 } 388 return nil 389 } 390 391 func (x *RelationTuple) GetSubject() *ObjectAndRelation { 392 if x != nil { 393 return x.Subject 394 } 395 return nil 396 } 397 398 func (x *RelationTuple) GetCaveat() *ContextualizedCaveat { 399 if x != nil { 400 return x.Caveat 401 } 402 return nil 403 } 404 405 // * 406 // ContextualizedCaveat represents a reference to a caveat used to by caveated tuples. 407 // The context are key-value pairs that will be injected at evaluation time. 408 type ContextualizedCaveat struct { 409 state protoimpl.MessageState 410 sizeCache protoimpl.SizeCache 411 unknownFields protoimpl.UnknownFields 412 413 // * caveat_name is the name used in the schema for a stored caveat * 414 CaveatName string `protobuf:"bytes,1,opt,name=caveat_name,json=caveatName,proto3" json:"caveat_name,omitempty"` 415 // * context are arguments used as input during caveat evaluation with a predefined value * 416 Context *structpb.Struct `protobuf:"bytes,2,opt,name=context,proto3" json:"context,omitempty"` 417 } 418 419 func (x *ContextualizedCaveat) Reset() { 420 *x = ContextualizedCaveat{} 421 if protoimpl.UnsafeEnabled { 422 mi := &file_core_v1_core_proto_msgTypes[1] 423 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 424 ms.StoreMessageInfo(mi) 425 } 426 } 427 428 func (x *ContextualizedCaveat) String() string { 429 return protoimpl.X.MessageStringOf(x) 430 } 431 432 func (*ContextualizedCaveat) ProtoMessage() {} 433 434 func (x *ContextualizedCaveat) ProtoReflect() protoreflect.Message { 435 mi := &file_core_v1_core_proto_msgTypes[1] 436 if protoimpl.UnsafeEnabled && x != nil { 437 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 438 if ms.LoadMessageInfo() == nil { 439 ms.StoreMessageInfo(mi) 440 } 441 return ms 442 } 443 return mi.MessageOf(x) 444 } 445 446 // Deprecated: Use ContextualizedCaveat.ProtoReflect.Descriptor instead. 447 func (*ContextualizedCaveat) Descriptor() ([]byte, []int) { 448 return file_core_v1_core_proto_rawDescGZIP(), []int{1} 449 } 450 451 func (x *ContextualizedCaveat) GetCaveatName() string { 452 if x != nil { 453 return x.CaveatName 454 } 455 return "" 456 } 457 458 func (x *ContextualizedCaveat) GetContext() *structpb.Struct { 459 if x != nil { 460 return x.Context 461 } 462 return nil 463 } 464 465 type CaveatDefinition struct { 466 state protoimpl.MessageState 467 sizeCache protoimpl.SizeCache 468 unknownFields protoimpl.UnknownFields 469 470 // * name represents the globally-unique identifier of the caveat * 471 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 472 // * serialized_expression is the byte representation of a caveat's logic 473 SerializedExpression []byte `protobuf:"bytes,2,opt,name=serialized_expression,json=serializedExpression,proto3" json:"serialized_expression,omitempty"` 474 // * parameters_and_types is a map from parameter name to its type 475 ParameterTypes map[string]*CaveatTypeReference `protobuf:"bytes,3,rep,name=parameter_types,json=parameterTypes,proto3" json:"parameter_types,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 476 // * metadata contains compiler metadata from schemas compiled into caveats 477 Metadata *Metadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` 478 // * source_position contains the position of the caveat in the source schema, if any 479 SourcePosition *SourcePosition `protobuf:"bytes,5,opt,name=source_position,json=sourcePosition,proto3" json:"source_position,omitempty"` 480 } 481 482 func (x *CaveatDefinition) Reset() { 483 *x = CaveatDefinition{} 484 if protoimpl.UnsafeEnabled { 485 mi := &file_core_v1_core_proto_msgTypes[2] 486 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 487 ms.StoreMessageInfo(mi) 488 } 489 } 490 491 func (x *CaveatDefinition) String() string { 492 return protoimpl.X.MessageStringOf(x) 493 } 494 495 func (*CaveatDefinition) ProtoMessage() {} 496 497 func (x *CaveatDefinition) ProtoReflect() protoreflect.Message { 498 mi := &file_core_v1_core_proto_msgTypes[2] 499 if protoimpl.UnsafeEnabled && x != nil { 500 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 501 if ms.LoadMessageInfo() == nil { 502 ms.StoreMessageInfo(mi) 503 } 504 return ms 505 } 506 return mi.MessageOf(x) 507 } 508 509 // Deprecated: Use CaveatDefinition.ProtoReflect.Descriptor instead. 510 func (*CaveatDefinition) Descriptor() ([]byte, []int) { 511 return file_core_v1_core_proto_rawDescGZIP(), []int{2} 512 } 513 514 func (x *CaveatDefinition) GetName() string { 515 if x != nil { 516 return x.Name 517 } 518 return "" 519 } 520 521 func (x *CaveatDefinition) GetSerializedExpression() []byte { 522 if x != nil { 523 return x.SerializedExpression 524 } 525 return nil 526 } 527 528 func (x *CaveatDefinition) GetParameterTypes() map[string]*CaveatTypeReference { 529 if x != nil { 530 return x.ParameterTypes 531 } 532 return nil 533 } 534 535 func (x *CaveatDefinition) GetMetadata() *Metadata { 536 if x != nil { 537 return x.Metadata 538 } 539 return nil 540 } 541 542 func (x *CaveatDefinition) GetSourcePosition() *SourcePosition { 543 if x != nil { 544 return x.SourcePosition 545 } 546 return nil 547 } 548 549 type CaveatTypeReference struct { 550 state protoimpl.MessageState 551 sizeCache protoimpl.SizeCache 552 unknownFields protoimpl.UnknownFields 553 554 TypeName string `protobuf:"bytes,1,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` 555 ChildTypes []*CaveatTypeReference `protobuf:"bytes,2,rep,name=child_types,json=childTypes,proto3" json:"child_types,omitempty"` 556 } 557 558 func (x *CaveatTypeReference) Reset() { 559 *x = CaveatTypeReference{} 560 if protoimpl.UnsafeEnabled { 561 mi := &file_core_v1_core_proto_msgTypes[3] 562 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 563 ms.StoreMessageInfo(mi) 564 } 565 } 566 567 func (x *CaveatTypeReference) String() string { 568 return protoimpl.X.MessageStringOf(x) 569 } 570 571 func (*CaveatTypeReference) ProtoMessage() {} 572 573 func (x *CaveatTypeReference) ProtoReflect() protoreflect.Message { 574 mi := &file_core_v1_core_proto_msgTypes[3] 575 if protoimpl.UnsafeEnabled && x != nil { 576 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 577 if ms.LoadMessageInfo() == nil { 578 ms.StoreMessageInfo(mi) 579 } 580 return ms 581 } 582 return mi.MessageOf(x) 583 } 584 585 // Deprecated: Use CaveatTypeReference.ProtoReflect.Descriptor instead. 586 func (*CaveatTypeReference) Descriptor() ([]byte, []int) { 587 return file_core_v1_core_proto_rawDescGZIP(), []int{3} 588 } 589 590 func (x *CaveatTypeReference) GetTypeName() string { 591 if x != nil { 592 return x.TypeName 593 } 594 return "" 595 } 596 597 func (x *CaveatTypeReference) GetChildTypes() []*CaveatTypeReference { 598 if x != nil { 599 return x.ChildTypes 600 } 601 return nil 602 } 603 604 type ObjectAndRelation struct { 605 state protoimpl.MessageState 606 sizeCache protoimpl.SizeCache 607 unknownFields protoimpl.UnknownFields 608 609 // * namespace is the full namespace path for the referenced object 610 Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` 611 // * object_id is the unique ID for the object within the namespace 612 ObjectId string `protobuf:"bytes,2,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"` 613 // * relation is the name of the referenced relation or permission under the namespace 614 Relation string `protobuf:"bytes,3,opt,name=relation,proto3" json:"relation,omitempty"` 615 } 616 617 func (x *ObjectAndRelation) Reset() { 618 *x = ObjectAndRelation{} 619 if protoimpl.UnsafeEnabled { 620 mi := &file_core_v1_core_proto_msgTypes[4] 621 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 622 ms.StoreMessageInfo(mi) 623 } 624 } 625 626 func (x *ObjectAndRelation) String() string { 627 return protoimpl.X.MessageStringOf(x) 628 } 629 630 func (*ObjectAndRelation) ProtoMessage() {} 631 632 func (x *ObjectAndRelation) ProtoReflect() protoreflect.Message { 633 mi := &file_core_v1_core_proto_msgTypes[4] 634 if protoimpl.UnsafeEnabled && x != nil { 635 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 636 if ms.LoadMessageInfo() == nil { 637 ms.StoreMessageInfo(mi) 638 } 639 return ms 640 } 641 return mi.MessageOf(x) 642 } 643 644 // Deprecated: Use ObjectAndRelation.ProtoReflect.Descriptor instead. 645 func (*ObjectAndRelation) Descriptor() ([]byte, []int) { 646 return file_core_v1_core_proto_rawDescGZIP(), []int{4} 647 } 648 649 func (x *ObjectAndRelation) GetNamespace() string { 650 if x != nil { 651 return x.Namespace 652 } 653 return "" 654 } 655 656 func (x *ObjectAndRelation) GetObjectId() string { 657 if x != nil { 658 return x.ObjectId 659 } 660 return "" 661 } 662 663 func (x *ObjectAndRelation) GetRelation() string { 664 if x != nil { 665 return x.Relation 666 } 667 return "" 668 } 669 670 type RelationReference struct { 671 state protoimpl.MessageState 672 sizeCache protoimpl.SizeCache 673 unknownFields protoimpl.UnknownFields 674 675 // * namespace is the full namespace path 676 Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` 677 // * relation is the name of the referenced relation or permission under the namespace 678 Relation string `protobuf:"bytes,3,opt,name=relation,proto3" json:"relation,omitempty"` 679 } 680 681 func (x *RelationReference) Reset() { 682 *x = RelationReference{} 683 if protoimpl.UnsafeEnabled { 684 mi := &file_core_v1_core_proto_msgTypes[5] 685 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 686 ms.StoreMessageInfo(mi) 687 } 688 } 689 690 func (x *RelationReference) String() string { 691 return protoimpl.X.MessageStringOf(x) 692 } 693 694 func (*RelationReference) ProtoMessage() {} 695 696 func (x *RelationReference) ProtoReflect() protoreflect.Message { 697 mi := &file_core_v1_core_proto_msgTypes[5] 698 if protoimpl.UnsafeEnabled && x != nil { 699 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 700 if ms.LoadMessageInfo() == nil { 701 ms.StoreMessageInfo(mi) 702 } 703 return ms 704 } 705 return mi.MessageOf(x) 706 } 707 708 // Deprecated: Use RelationReference.ProtoReflect.Descriptor instead. 709 func (*RelationReference) Descriptor() ([]byte, []int) { 710 return file_core_v1_core_proto_rawDescGZIP(), []int{5} 711 } 712 713 func (x *RelationReference) GetNamespace() string { 714 if x != nil { 715 return x.Namespace 716 } 717 return "" 718 } 719 720 func (x *RelationReference) GetRelation() string { 721 if x != nil { 722 return x.Relation 723 } 724 return "" 725 } 726 727 type Zookie struct { 728 state protoimpl.MessageState 729 sizeCache protoimpl.SizeCache 730 unknownFields protoimpl.UnknownFields 731 732 Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` 733 } 734 735 func (x *Zookie) Reset() { 736 *x = Zookie{} 737 if protoimpl.UnsafeEnabled { 738 mi := &file_core_v1_core_proto_msgTypes[6] 739 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 740 ms.StoreMessageInfo(mi) 741 } 742 } 743 744 func (x *Zookie) String() string { 745 return protoimpl.X.MessageStringOf(x) 746 } 747 748 func (*Zookie) ProtoMessage() {} 749 750 func (x *Zookie) ProtoReflect() protoreflect.Message { 751 mi := &file_core_v1_core_proto_msgTypes[6] 752 if protoimpl.UnsafeEnabled && x != nil { 753 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 754 if ms.LoadMessageInfo() == nil { 755 ms.StoreMessageInfo(mi) 756 } 757 return ms 758 } 759 return mi.MessageOf(x) 760 } 761 762 // Deprecated: Use Zookie.ProtoReflect.Descriptor instead. 763 func (*Zookie) Descriptor() ([]byte, []int) { 764 return file_core_v1_core_proto_rawDescGZIP(), []int{6} 765 } 766 767 func (x *Zookie) GetToken() string { 768 if x != nil { 769 return x.Token 770 } 771 return "" 772 } 773 774 type RelationTupleUpdate struct { 775 state protoimpl.MessageState 776 sizeCache protoimpl.SizeCache 777 unknownFields protoimpl.UnknownFields 778 779 Operation RelationTupleUpdate_Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=core.v1.RelationTupleUpdate_Operation" json:"operation,omitempty"` 780 Tuple *RelationTuple `protobuf:"bytes,2,opt,name=tuple,proto3" json:"tuple,omitempty"` 781 } 782 783 func (x *RelationTupleUpdate) Reset() { 784 *x = RelationTupleUpdate{} 785 if protoimpl.UnsafeEnabled { 786 mi := &file_core_v1_core_proto_msgTypes[7] 787 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 788 ms.StoreMessageInfo(mi) 789 } 790 } 791 792 func (x *RelationTupleUpdate) String() string { 793 return protoimpl.X.MessageStringOf(x) 794 } 795 796 func (*RelationTupleUpdate) ProtoMessage() {} 797 798 func (x *RelationTupleUpdate) ProtoReflect() protoreflect.Message { 799 mi := &file_core_v1_core_proto_msgTypes[7] 800 if protoimpl.UnsafeEnabled && x != nil { 801 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 802 if ms.LoadMessageInfo() == nil { 803 ms.StoreMessageInfo(mi) 804 } 805 return ms 806 } 807 return mi.MessageOf(x) 808 } 809 810 // Deprecated: Use RelationTupleUpdate.ProtoReflect.Descriptor instead. 811 func (*RelationTupleUpdate) Descriptor() ([]byte, []int) { 812 return file_core_v1_core_proto_rawDescGZIP(), []int{7} 813 } 814 815 func (x *RelationTupleUpdate) GetOperation() RelationTupleUpdate_Operation { 816 if x != nil { 817 return x.Operation 818 } 819 return RelationTupleUpdate_UNKNOWN 820 } 821 822 func (x *RelationTupleUpdate) GetTuple() *RelationTuple { 823 if x != nil { 824 return x.Tuple 825 } 826 return nil 827 } 828 829 type RelationTupleTreeNode struct { 830 state protoimpl.MessageState 831 sizeCache protoimpl.SizeCache 832 unknownFields protoimpl.UnknownFields 833 834 // Types that are assignable to NodeType: 835 // 836 // *RelationTupleTreeNode_IntermediateNode 837 // *RelationTupleTreeNode_LeafNode 838 NodeType isRelationTupleTreeNode_NodeType `protobuf_oneof:"node_type"` 839 Expanded *ObjectAndRelation `protobuf:"bytes,3,opt,name=expanded,proto3" json:"expanded,omitempty"` 840 CaveatExpression *CaveatExpression `protobuf:"bytes,4,opt,name=caveat_expression,json=caveatExpression,proto3" json:"caveat_expression,omitempty"` 841 } 842 843 func (x *RelationTupleTreeNode) Reset() { 844 *x = RelationTupleTreeNode{} 845 if protoimpl.UnsafeEnabled { 846 mi := &file_core_v1_core_proto_msgTypes[8] 847 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 848 ms.StoreMessageInfo(mi) 849 } 850 } 851 852 func (x *RelationTupleTreeNode) String() string { 853 return protoimpl.X.MessageStringOf(x) 854 } 855 856 func (*RelationTupleTreeNode) ProtoMessage() {} 857 858 func (x *RelationTupleTreeNode) ProtoReflect() protoreflect.Message { 859 mi := &file_core_v1_core_proto_msgTypes[8] 860 if protoimpl.UnsafeEnabled && x != nil { 861 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 862 if ms.LoadMessageInfo() == nil { 863 ms.StoreMessageInfo(mi) 864 } 865 return ms 866 } 867 return mi.MessageOf(x) 868 } 869 870 // Deprecated: Use RelationTupleTreeNode.ProtoReflect.Descriptor instead. 871 func (*RelationTupleTreeNode) Descriptor() ([]byte, []int) { 872 return file_core_v1_core_proto_rawDescGZIP(), []int{8} 873 } 874 875 func (m *RelationTupleTreeNode) GetNodeType() isRelationTupleTreeNode_NodeType { 876 if m != nil { 877 return m.NodeType 878 } 879 return nil 880 } 881 882 func (x *RelationTupleTreeNode) GetIntermediateNode() *SetOperationUserset { 883 if x, ok := x.GetNodeType().(*RelationTupleTreeNode_IntermediateNode); ok { 884 return x.IntermediateNode 885 } 886 return nil 887 } 888 889 func (x *RelationTupleTreeNode) GetLeafNode() *DirectSubjects { 890 if x, ok := x.GetNodeType().(*RelationTupleTreeNode_LeafNode); ok { 891 return x.LeafNode 892 } 893 return nil 894 } 895 896 func (x *RelationTupleTreeNode) GetExpanded() *ObjectAndRelation { 897 if x != nil { 898 return x.Expanded 899 } 900 return nil 901 } 902 903 func (x *RelationTupleTreeNode) GetCaveatExpression() *CaveatExpression { 904 if x != nil { 905 return x.CaveatExpression 906 } 907 return nil 908 } 909 910 type isRelationTupleTreeNode_NodeType interface { 911 isRelationTupleTreeNode_NodeType() 912 } 913 914 type RelationTupleTreeNode_IntermediateNode struct { 915 IntermediateNode *SetOperationUserset `protobuf:"bytes,1,opt,name=intermediate_node,json=intermediateNode,proto3,oneof"` 916 } 917 918 type RelationTupleTreeNode_LeafNode struct { 919 LeafNode *DirectSubjects `protobuf:"bytes,2,opt,name=leaf_node,json=leafNode,proto3,oneof"` 920 } 921 922 func (*RelationTupleTreeNode_IntermediateNode) isRelationTupleTreeNode_NodeType() {} 923 924 func (*RelationTupleTreeNode_LeafNode) isRelationTupleTreeNode_NodeType() {} 925 926 type SetOperationUserset struct { 927 state protoimpl.MessageState 928 sizeCache protoimpl.SizeCache 929 unknownFields protoimpl.UnknownFields 930 931 Operation SetOperationUserset_Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=core.v1.SetOperationUserset_Operation" json:"operation,omitempty"` 932 ChildNodes []*RelationTupleTreeNode `protobuf:"bytes,2,rep,name=child_nodes,json=childNodes,proto3" json:"child_nodes,omitempty"` 933 } 934 935 func (x *SetOperationUserset) Reset() { 936 *x = SetOperationUserset{} 937 if protoimpl.UnsafeEnabled { 938 mi := &file_core_v1_core_proto_msgTypes[9] 939 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 940 ms.StoreMessageInfo(mi) 941 } 942 } 943 944 func (x *SetOperationUserset) String() string { 945 return protoimpl.X.MessageStringOf(x) 946 } 947 948 func (*SetOperationUserset) ProtoMessage() {} 949 950 func (x *SetOperationUserset) ProtoReflect() protoreflect.Message { 951 mi := &file_core_v1_core_proto_msgTypes[9] 952 if protoimpl.UnsafeEnabled && x != nil { 953 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 954 if ms.LoadMessageInfo() == nil { 955 ms.StoreMessageInfo(mi) 956 } 957 return ms 958 } 959 return mi.MessageOf(x) 960 } 961 962 // Deprecated: Use SetOperationUserset.ProtoReflect.Descriptor instead. 963 func (*SetOperationUserset) Descriptor() ([]byte, []int) { 964 return file_core_v1_core_proto_rawDescGZIP(), []int{9} 965 } 966 967 func (x *SetOperationUserset) GetOperation() SetOperationUserset_Operation { 968 if x != nil { 969 return x.Operation 970 } 971 return SetOperationUserset_INVALID 972 } 973 974 func (x *SetOperationUserset) GetChildNodes() []*RelationTupleTreeNode { 975 if x != nil { 976 return x.ChildNodes 977 } 978 return nil 979 } 980 981 type DirectSubject struct { 982 state protoimpl.MessageState 983 sizeCache protoimpl.SizeCache 984 unknownFields protoimpl.UnknownFields 985 986 Subject *ObjectAndRelation `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"` 987 CaveatExpression *CaveatExpression `protobuf:"bytes,2,opt,name=caveat_expression,json=caveatExpression,proto3" json:"caveat_expression,omitempty"` 988 } 989 990 func (x *DirectSubject) Reset() { 991 *x = DirectSubject{} 992 if protoimpl.UnsafeEnabled { 993 mi := &file_core_v1_core_proto_msgTypes[10] 994 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 995 ms.StoreMessageInfo(mi) 996 } 997 } 998 999 func (x *DirectSubject) String() string { 1000 return protoimpl.X.MessageStringOf(x) 1001 } 1002 1003 func (*DirectSubject) ProtoMessage() {} 1004 1005 func (x *DirectSubject) ProtoReflect() protoreflect.Message { 1006 mi := &file_core_v1_core_proto_msgTypes[10] 1007 if protoimpl.UnsafeEnabled && x != nil { 1008 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1009 if ms.LoadMessageInfo() == nil { 1010 ms.StoreMessageInfo(mi) 1011 } 1012 return ms 1013 } 1014 return mi.MessageOf(x) 1015 } 1016 1017 // Deprecated: Use DirectSubject.ProtoReflect.Descriptor instead. 1018 func (*DirectSubject) Descriptor() ([]byte, []int) { 1019 return file_core_v1_core_proto_rawDescGZIP(), []int{10} 1020 } 1021 1022 func (x *DirectSubject) GetSubject() *ObjectAndRelation { 1023 if x != nil { 1024 return x.Subject 1025 } 1026 return nil 1027 } 1028 1029 func (x *DirectSubject) GetCaveatExpression() *CaveatExpression { 1030 if x != nil { 1031 return x.CaveatExpression 1032 } 1033 return nil 1034 } 1035 1036 type DirectSubjects struct { 1037 state protoimpl.MessageState 1038 sizeCache protoimpl.SizeCache 1039 unknownFields protoimpl.UnknownFields 1040 1041 Subjects []*DirectSubject `protobuf:"bytes,1,rep,name=subjects,proto3" json:"subjects,omitempty"` 1042 } 1043 1044 func (x *DirectSubjects) Reset() { 1045 *x = DirectSubjects{} 1046 if protoimpl.UnsafeEnabled { 1047 mi := &file_core_v1_core_proto_msgTypes[11] 1048 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1049 ms.StoreMessageInfo(mi) 1050 } 1051 } 1052 1053 func (x *DirectSubjects) String() string { 1054 return protoimpl.X.MessageStringOf(x) 1055 } 1056 1057 func (*DirectSubjects) ProtoMessage() {} 1058 1059 func (x *DirectSubjects) ProtoReflect() protoreflect.Message { 1060 mi := &file_core_v1_core_proto_msgTypes[11] 1061 if protoimpl.UnsafeEnabled && x != nil { 1062 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1063 if ms.LoadMessageInfo() == nil { 1064 ms.StoreMessageInfo(mi) 1065 } 1066 return ms 1067 } 1068 return mi.MessageOf(x) 1069 } 1070 1071 // Deprecated: Use DirectSubjects.ProtoReflect.Descriptor instead. 1072 func (*DirectSubjects) Descriptor() ([]byte, []int) { 1073 return file_core_v1_core_proto_rawDescGZIP(), []int{11} 1074 } 1075 1076 func (x *DirectSubjects) GetSubjects() []*DirectSubject { 1077 if x != nil { 1078 return x.Subjects 1079 } 1080 return nil 1081 } 1082 1083 // * 1084 // Metadata is compiler metadata added to namespace definitions, such as doc comments and 1085 // relation kinds. 1086 type Metadata struct { 1087 state protoimpl.MessageState 1088 sizeCache protoimpl.SizeCache 1089 unknownFields protoimpl.UnknownFields 1090 1091 MetadataMessage []*anypb.Any `protobuf:"bytes,1,rep,name=metadata_message,json=metadataMessage,proto3" json:"metadata_message,omitempty"` 1092 } 1093 1094 func (x *Metadata) Reset() { 1095 *x = Metadata{} 1096 if protoimpl.UnsafeEnabled { 1097 mi := &file_core_v1_core_proto_msgTypes[12] 1098 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1099 ms.StoreMessageInfo(mi) 1100 } 1101 } 1102 1103 func (x *Metadata) String() string { 1104 return protoimpl.X.MessageStringOf(x) 1105 } 1106 1107 func (*Metadata) ProtoMessage() {} 1108 1109 func (x *Metadata) ProtoReflect() protoreflect.Message { 1110 mi := &file_core_v1_core_proto_msgTypes[12] 1111 if protoimpl.UnsafeEnabled && x != nil { 1112 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1113 if ms.LoadMessageInfo() == nil { 1114 ms.StoreMessageInfo(mi) 1115 } 1116 return ms 1117 } 1118 return mi.MessageOf(x) 1119 } 1120 1121 // Deprecated: Use Metadata.ProtoReflect.Descriptor instead. 1122 func (*Metadata) Descriptor() ([]byte, []int) { 1123 return file_core_v1_core_proto_rawDescGZIP(), []int{12} 1124 } 1125 1126 func (x *Metadata) GetMetadataMessage() []*anypb.Any { 1127 if x != nil { 1128 return x.MetadataMessage 1129 } 1130 return nil 1131 } 1132 1133 // * 1134 // NamespaceDefinition represents a single definition of an object type 1135 type NamespaceDefinition struct { 1136 state protoimpl.MessageState 1137 sizeCache protoimpl.SizeCache 1138 unknownFields protoimpl.UnknownFields 1139 1140 // * name is the unique for the namespace, including prefixes (which are optional) 1141 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1142 // * relation contains the relations and permissions defined in the namespace 1143 Relation []*Relation `protobuf:"bytes,2,rep,name=relation,proto3" json:"relation,omitempty"` 1144 // * metadata contains compiler metadata from schemas compiled into namespaces 1145 Metadata *Metadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` 1146 // * source_position contains the position of the namespace in the source schema, if any 1147 SourcePosition *SourcePosition `protobuf:"bytes,4,opt,name=source_position,json=sourcePosition,proto3" json:"source_position,omitempty"` 1148 } 1149 1150 func (x *NamespaceDefinition) Reset() { 1151 *x = NamespaceDefinition{} 1152 if protoimpl.UnsafeEnabled { 1153 mi := &file_core_v1_core_proto_msgTypes[13] 1154 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1155 ms.StoreMessageInfo(mi) 1156 } 1157 } 1158 1159 func (x *NamespaceDefinition) String() string { 1160 return protoimpl.X.MessageStringOf(x) 1161 } 1162 1163 func (*NamespaceDefinition) ProtoMessage() {} 1164 1165 func (x *NamespaceDefinition) ProtoReflect() protoreflect.Message { 1166 mi := &file_core_v1_core_proto_msgTypes[13] 1167 if protoimpl.UnsafeEnabled && x != nil { 1168 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1169 if ms.LoadMessageInfo() == nil { 1170 ms.StoreMessageInfo(mi) 1171 } 1172 return ms 1173 } 1174 return mi.MessageOf(x) 1175 } 1176 1177 // Deprecated: Use NamespaceDefinition.ProtoReflect.Descriptor instead. 1178 func (*NamespaceDefinition) Descriptor() ([]byte, []int) { 1179 return file_core_v1_core_proto_rawDescGZIP(), []int{13} 1180 } 1181 1182 func (x *NamespaceDefinition) GetName() string { 1183 if x != nil { 1184 return x.Name 1185 } 1186 return "" 1187 } 1188 1189 func (x *NamespaceDefinition) GetRelation() []*Relation { 1190 if x != nil { 1191 return x.Relation 1192 } 1193 return nil 1194 } 1195 1196 func (x *NamespaceDefinition) GetMetadata() *Metadata { 1197 if x != nil { 1198 return x.Metadata 1199 } 1200 return nil 1201 } 1202 1203 func (x *NamespaceDefinition) GetSourcePosition() *SourcePosition { 1204 if x != nil { 1205 return x.SourcePosition 1206 } 1207 return nil 1208 } 1209 1210 // * 1211 // Relation represents the definition of a relation or permission under a namespace. 1212 type Relation struct { 1213 state protoimpl.MessageState 1214 sizeCache protoimpl.SizeCache 1215 unknownFields protoimpl.UnknownFields 1216 1217 // * name is the full name for the relation or permission 1218 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 1219 // * userset_rewrite, if specified, is the rewrite for computing the value of the permission. 1220 UsersetRewrite *UsersetRewrite `protobuf:"bytes,2,opt,name=userset_rewrite,json=usersetRewrite,proto3" json:"userset_rewrite,omitempty"` 1221 // * 1222 // type_information, if specified, is the list of allowed object types that can appear in this 1223 // relation 1224 TypeInformation *TypeInformation `protobuf:"bytes,3,opt,name=type_information,json=typeInformation,proto3" json:"type_information,omitempty"` 1225 // * metadata contains compiler metadata from schemas compiled into namespaces 1226 Metadata *Metadata `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` 1227 // * source_position contains the position of the relation in the source schema, if any 1228 SourcePosition *SourcePosition `protobuf:"bytes,5,opt,name=source_position,json=sourcePosition,proto3" json:"source_position,omitempty"` 1229 AliasingRelation string `protobuf:"bytes,6,opt,name=aliasing_relation,json=aliasingRelation,proto3" json:"aliasing_relation,omitempty"` 1230 CanonicalCacheKey string `protobuf:"bytes,7,opt,name=canonical_cache_key,json=canonicalCacheKey,proto3" json:"canonical_cache_key,omitempty"` 1231 } 1232 1233 func (x *Relation) Reset() { 1234 *x = Relation{} 1235 if protoimpl.UnsafeEnabled { 1236 mi := &file_core_v1_core_proto_msgTypes[14] 1237 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1238 ms.StoreMessageInfo(mi) 1239 } 1240 } 1241 1242 func (x *Relation) String() string { 1243 return protoimpl.X.MessageStringOf(x) 1244 } 1245 1246 func (*Relation) ProtoMessage() {} 1247 1248 func (x *Relation) ProtoReflect() protoreflect.Message { 1249 mi := &file_core_v1_core_proto_msgTypes[14] 1250 if protoimpl.UnsafeEnabled && x != nil { 1251 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1252 if ms.LoadMessageInfo() == nil { 1253 ms.StoreMessageInfo(mi) 1254 } 1255 return ms 1256 } 1257 return mi.MessageOf(x) 1258 } 1259 1260 // Deprecated: Use Relation.ProtoReflect.Descriptor instead. 1261 func (*Relation) Descriptor() ([]byte, []int) { 1262 return file_core_v1_core_proto_rawDescGZIP(), []int{14} 1263 } 1264 1265 func (x *Relation) GetName() string { 1266 if x != nil { 1267 return x.Name 1268 } 1269 return "" 1270 } 1271 1272 func (x *Relation) GetUsersetRewrite() *UsersetRewrite { 1273 if x != nil { 1274 return x.UsersetRewrite 1275 } 1276 return nil 1277 } 1278 1279 func (x *Relation) GetTypeInformation() *TypeInformation { 1280 if x != nil { 1281 return x.TypeInformation 1282 } 1283 return nil 1284 } 1285 1286 func (x *Relation) GetMetadata() *Metadata { 1287 if x != nil { 1288 return x.Metadata 1289 } 1290 return nil 1291 } 1292 1293 func (x *Relation) GetSourcePosition() *SourcePosition { 1294 if x != nil { 1295 return x.SourcePosition 1296 } 1297 return nil 1298 } 1299 1300 func (x *Relation) GetAliasingRelation() string { 1301 if x != nil { 1302 return x.AliasingRelation 1303 } 1304 return "" 1305 } 1306 1307 func (x *Relation) GetCanonicalCacheKey() string { 1308 if x != nil { 1309 return x.CanonicalCacheKey 1310 } 1311 return "" 1312 } 1313 1314 // * 1315 // ReachabilityGraph is a serialized form of a reachability graph, representing how a relation can 1316 // be reached from one or more subject types. 1317 // 1318 // It defines a "reverse" data flow graph, starting at a subject type, and providing all the 1319 // entrypoints where that subject type can be found leading to the decorated relation. 1320 // 1321 // For example, given the schema: 1322 // ``` 1323 // 1324 // definition user {} 1325 // 1326 // definition organization { 1327 // relation admin: user 1328 // } 1329 // 1330 // definition resource { 1331 // relation org: organization 1332 // relation viewer: user 1333 // relation owner: user 1334 // permission view = viewer + owner + org->admin 1335 // } 1336 // 1337 // ``` 1338 // 1339 // The reachability graph for `viewer` and the other relations will have entrypoints for each 1340 // subject type found for those relations. 1341 // 1342 // The full reachability graph for the `view` relation will have three entrypoints, representing: 1343 // 1. resource#viewer (computed_userset) 1344 // 2. resource#owner (computed_userset) 1345 // 3. organization#admin (tupleset_to_userset) 1346 type ReachabilityGraph struct { 1347 state protoimpl.MessageState 1348 sizeCache protoimpl.SizeCache 1349 unknownFields protoimpl.UnknownFields 1350 1351 // * 1352 // entrypoints_by_subject_type provides all entrypoints by subject *type*, representing wildcards. 1353 // The keys of the map are the full path(s) for the namespace(s) referenced by reachable wildcards 1354 EntrypointsBySubjectType map[string]*ReachabilityEntrypoints `protobuf:"bytes,1,rep,name=entrypoints_by_subject_type,json=entrypointsBySubjectType,proto3" json:"entrypoints_by_subject_type,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1355 // * 1356 // entrypoints_by_subject_relation provides all entrypoints by subject type+relation. 1357 // The keys of the map are of the form `namespace_path#relation_name` 1358 EntrypointsBySubjectRelation map[string]*ReachabilityEntrypoints `protobuf:"bytes,2,rep,name=entrypoints_by_subject_relation,json=entrypointsBySubjectRelation,proto3" json:"entrypoints_by_subject_relation,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1359 } 1360 1361 func (x *ReachabilityGraph) Reset() { 1362 *x = ReachabilityGraph{} 1363 if protoimpl.UnsafeEnabled { 1364 mi := &file_core_v1_core_proto_msgTypes[15] 1365 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1366 ms.StoreMessageInfo(mi) 1367 } 1368 } 1369 1370 func (x *ReachabilityGraph) String() string { 1371 return protoimpl.X.MessageStringOf(x) 1372 } 1373 1374 func (*ReachabilityGraph) ProtoMessage() {} 1375 1376 func (x *ReachabilityGraph) ProtoReflect() protoreflect.Message { 1377 mi := &file_core_v1_core_proto_msgTypes[15] 1378 if protoimpl.UnsafeEnabled && x != nil { 1379 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1380 if ms.LoadMessageInfo() == nil { 1381 ms.StoreMessageInfo(mi) 1382 } 1383 return ms 1384 } 1385 return mi.MessageOf(x) 1386 } 1387 1388 // Deprecated: Use ReachabilityGraph.ProtoReflect.Descriptor instead. 1389 func (*ReachabilityGraph) Descriptor() ([]byte, []int) { 1390 return file_core_v1_core_proto_rawDescGZIP(), []int{15} 1391 } 1392 1393 func (x *ReachabilityGraph) GetEntrypointsBySubjectType() map[string]*ReachabilityEntrypoints { 1394 if x != nil { 1395 return x.EntrypointsBySubjectType 1396 } 1397 return nil 1398 } 1399 1400 func (x *ReachabilityGraph) GetEntrypointsBySubjectRelation() map[string]*ReachabilityEntrypoints { 1401 if x != nil { 1402 return x.EntrypointsBySubjectRelation 1403 } 1404 return nil 1405 } 1406 1407 // * 1408 // ReachabilityEntrypoints represents all the entrypoints for a specific subject type or subject 1409 // relation into the reachability graph for a particular target relation. 1410 type ReachabilityEntrypoints struct { 1411 state protoimpl.MessageState 1412 sizeCache protoimpl.SizeCache 1413 unknownFields protoimpl.UnknownFields 1414 1415 // * 1416 // entrypoints are the entrypoints found. 1417 Entrypoints []*ReachabilityEntrypoint `protobuf:"bytes,1,rep,name=entrypoints,proto3" json:"entrypoints,omitempty"` 1418 // * 1419 // subject_type, if specified, is the type of subjects to which the entrypoint(s) apply. A 1420 // subject type is only set for wildcards. 1421 SubjectType string `protobuf:"bytes,2,opt,name=subject_type,json=subjectType,proto3" json:"subject_type,omitempty"` 1422 // * 1423 // subject_relation, if specified, is the type and relation of subjects to which the 1424 // entrypoint(s) apply. 1425 SubjectRelation *RelationReference `protobuf:"bytes,3,opt,name=subject_relation,json=subjectRelation,proto3" json:"subject_relation,omitempty"` 1426 } 1427 1428 func (x *ReachabilityEntrypoints) Reset() { 1429 *x = ReachabilityEntrypoints{} 1430 if protoimpl.UnsafeEnabled { 1431 mi := &file_core_v1_core_proto_msgTypes[16] 1432 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1433 ms.StoreMessageInfo(mi) 1434 } 1435 } 1436 1437 func (x *ReachabilityEntrypoints) String() string { 1438 return protoimpl.X.MessageStringOf(x) 1439 } 1440 1441 func (*ReachabilityEntrypoints) ProtoMessage() {} 1442 1443 func (x *ReachabilityEntrypoints) ProtoReflect() protoreflect.Message { 1444 mi := &file_core_v1_core_proto_msgTypes[16] 1445 if protoimpl.UnsafeEnabled && x != nil { 1446 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1447 if ms.LoadMessageInfo() == nil { 1448 ms.StoreMessageInfo(mi) 1449 } 1450 return ms 1451 } 1452 return mi.MessageOf(x) 1453 } 1454 1455 // Deprecated: Use ReachabilityEntrypoints.ProtoReflect.Descriptor instead. 1456 func (*ReachabilityEntrypoints) Descriptor() ([]byte, []int) { 1457 return file_core_v1_core_proto_rawDescGZIP(), []int{16} 1458 } 1459 1460 func (x *ReachabilityEntrypoints) GetEntrypoints() []*ReachabilityEntrypoint { 1461 if x != nil { 1462 return x.Entrypoints 1463 } 1464 return nil 1465 } 1466 1467 func (x *ReachabilityEntrypoints) GetSubjectType() string { 1468 if x != nil { 1469 return x.SubjectType 1470 } 1471 return "" 1472 } 1473 1474 func (x *ReachabilityEntrypoints) GetSubjectRelation() *RelationReference { 1475 if x != nil { 1476 return x.SubjectRelation 1477 } 1478 return nil 1479 } 1480 1481 // * 1482 // ReachabilityEntrypoint represents a single entrypoint for a specific subject type or subject 1483 // relation into the reachability graph for a particular target relation. 1484 type ReachabilityEntrypoint struct { 1485 state protoimpl.MessageState 1486 sizeCache protoimpl.SizeCache 1487 unknownFields protoimpl.UnknownFields 1488 1489 // * 1490 // kind is the kind of the entrypoint. 1491 Kind ReachabilityEntrypoint_ReachabilityEntrypointKind `protobuf:"varint,1,opt,name=kind,proto3,enum=core.v1.ReachabilityEntrypoint_ReachabilityEntrypointKind" json:"kind,omitempty"` 1492 // * 1493 // target_relation is the relation on which the entrypoint exists. 1494 TargetRelation *RelationReference `protobuf:"bytes,2,opt,name=target_relation,json=targetRelation,proto3" json:"target_relation,omitempty"` 1495 // * 1496 // result_status contains the status of objects found for this entrypoint as direct results for 1497 // the parent relation/permission. 1498 ResultStatus ReachabilityEntrypoint_EntrypointResultStatus `protobuf:"varint,4,opt,name=result_status,json=resultStatus,proto3,enum=core.v1.ReachabilityEntrypoint_EntrypointResultStatus" json:"result_status,omitempty"` 1499 // * 1500 // tupleset_relation is the name of the tupleset relation on the TupleToUserset this entrypoint 1501 // represents, if applicable. 1502 TuplesetRelation string `protobuf:"bytes,5,opt,name=tupleset_relation,json=tuplesetRelation,proto3" json:"tupleset_relation,omitempty"` 1503 } 1504 1505 func (x *ReachabilityEntrypoint) Reset() { 1506 *x = ReachabilityEntrypoint{} 1507 if protoimpl.UnsafeEnabled { 1508 mi := &file_core_v1_core_proto_msgTypes[17] 1509 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1510 ms.StoreMessageInfo(mi) 1511 } 1512 } 1513 1514 func (x *ReachabilityEntrypoint) String() string { 1515 return protoimpl.X.MessageStringOf(x) 1516 } 1517 1518 func (*ReachabilityEntrypoint) ProtoMessage() {} 1519 1520 func (x *ReachabilityEntrypoint) ProtoReflect() protoreflect.Message { 1521 mi := &file_core_v1_core_proto_msgTypes[17] 1522 if protoimpl.UnsafeEnabled && x != nil { 1523 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1524 if ms.LoadMessageInfo() == nil { 1525 ms.StoreMessageInfo(mi) 1526 } 1527 return ms 1528 } 1529 return mi.MessageOf(x) 1530 } 1531 1532 // Deprecated: Use ReachabilityEntrypoint.ProtoReflect.Descriptor instead. 1533 func (*ReachabilityEntrypoint) Descriptor() ([]byte, []int) { 1534 return file_core_v1_core_proto_rawDescGZIP(), []int{17} 1535 } 1536 1537 func (x *ReachabilityEntrypoint) GetKind() ReachabilityEntrypoint_ReachabilityEntrypointKind { 1538 if x != nil { 1539 return x.Kind 1540 } 1541 return ReachabilityEntrypoint_RELATION_ENTRYPOINT 1542 } 1543 1544 func (x *ReachabilityEntrypoint) GetTargetRelation() *RelationReference { 1545 if x != nil { 1546 return x.TargetRelation 1547 } 1548 return nil 1549 } 1550 1551 func (x *ReachabilityEntrypoint) GetResultStatus() ReachabilityEntrypoint_EntrypointResultStatus { 1552 if x != nil { 1553 return x.ResultStatus 1554 } 1555 return ReachabilityEntrypoint_REACHABLE_CONDITIONAL_RESULT 1556 } 1557 1558 func (x *ReachabilityEntrypoint) GetTuplesetRelation() string { 1559 if x != nil { 1560 return x.TuplesetRelation 1561 } 1562 return "" 1563 } 1564 1565 // * 1566 // TypeInformation defines the allowed types for a relation. 1567 type TypeInformation struct { 1568 state protoimpl.MessageState 1569 sizeCache protoimpl.SizeCache 1570 unknownFields protoimpl.UnknownFields 1571 1572 // * 1573 // allowed_direct_relations are those relation types allowed to be placed into a relation, 1574 // e.g. the types of subjects allowed when a relationship is written to the relation 1575 AllowedDirectRelations []*AllowedRelation `protobuf:"bytes,1,rep,name=allowed_direct_relations,json=allowedDirectRelations,proto3" json:"allowed_direct_relations,omitempty"` 1576 } 1577 1578 func (x *TypeInformation) Reset() { 1579 *x = TypeInformation{} 1580 if protoimpl.UnsafeEnabled { 1581 mi := &file_core_v1_core_proto_msgTypes[18] 1582 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1583 ms.StoreMessageInfo(mi) 1584 } 1585 } 1586 1587 func (x *TypeInformation) String() string { 1588 return protoimpl.X.MessageStringOf(x) 1589 } 1590 1591 func (*TypeInformation) ProtoMessage() {} 1592 1593 func (x *TypeInformation) ProtoReflect() protoreflect.Message { 1594 mi := &file_core_v1_core_proto_msgTypes[18] 1595 if protoimpl.UnsafeEnabled && x != nil { 1596 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1597 if ms.LoadMessageInfo() == nil { 1598 ms.StoreMessageInfo(mi) 1599 } 1600 return ms 1601 } 1602 return mi.MessageOf(x) 1603 } 1604 1605 // Deprecated: Use TypeInformation.ProtoReflect.Descriptor instead. 1606 func (*TypeInformation) Descriptor() ([]byte, []int) { 1607 return file_core_v1_core_proto_rawDescGZIP(), []int{18} 1608 } 1609 1610 func (x *TypeInformation) GetAllowedDirectRelations() []*AllowedRelation { 1611 if x != nil { 1612 return x.AllowedDirectRelations 1613 } 1614 return nil 1615 } 1616 1617 // * 1618 // AllowedRelation is an allowed type of a relation when used as a subject. 1619 type AllowedRelation struct { 1620 state protoimpl.MessageState 1621 sizeCache protoimpl.SizeCache 1622 unknownFields protoimpl.UnknownFields 1623 1624 // * namespace is the full namespace path of the allowed object type 1625 Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` 1626 // * 1627 // relation_or_wildcard indicates the relation for the objects, or a wildcard. 1628 // 1629 // Types that are assignable to RelationOrWildcard: 1630 // 1631 // *AllowedRelation_Relation 1632 // *AllowedRelation_PublicWildcard_ 1633 RelationOrWildcard isAllowedRelation_RelationOrWildcard `protobuf_oneof:"relation_or_wildcard"` 1634 // * source_position contains the position of the type in the source schema, if any 1635 SourcePosition *SourcePosition `protobuf:"bytes,5,opt,name=source_position,json=sourcePosition,proto3" json:"source_position,omitempty"` 1636 // * 1637 // required_caveat defines the required caveat on this relation. 1638 RequiredCaveat *AllowedCaveat `protobuf:"bytes,6,opt,name=required_caveat,json=requiredCaveat,proto3" json:"required_caveat,omitempty"` 1639 } 1640 1641 func (x *AllowedRelation) Reset() { 1642 *x = AllowedRelation{} 1643 if protoimpl.UnsafeEnabled { 1644 mi := &file_core_v1_core_proto_msgTypes[19] 1645 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1646 ms.StoreMessageInfo(mi) 1647 } 1648 } 1649 1650 func (x *AllowedRelation) String() string { 1651 return protoimpl.X.MessageStringOf(x) 1652 } 1653 1654 func (*AllowedRelation) ProtoMessage() {} 1655 1656 func (x *AllowedRelation) ProtoReflect() protoreflect.Message { 1657 mi := &file_core_v1_core_proto_msgTypes[19] 1658 if protoimpl.UnsafeEnabled && x != nil { 1659 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1660 if ms.LoadMessageInfo() == nil { 1661 ms.StoreMessageInfo(mi) 1662 } 1663 return ms 1664 } 1665 return mi.MessageOf(x) 1666 } 1667 1668 // Deprecated: Use AllowedRelation.ProtoReflect.Descriptor instead. 1669 func (*AllowedRelation) Descriptor() ([]byte, []int) { 1670 return file_core_v1_core_proto_rawDescGZIP(), []int{19} 1671 } 1672 1673 func (x *AllowedRelation) GetNamespace() string { 1674 if x != nil { 1675 return x.Namespace 1676 } 1677 return "" 1678 } 1679 1680 func (m *AllowedRelation) GetRelationOrWildcard() isAllowedRelation_RelationOrWildcard { 1681 if m != nil { 1682 return m.RelationOrWildcard 1683 } 1684 return nil 1685 } 1686 1687 func (x *AllowedRelation) GetRelation() string { 1688 if x, ok := x.GetRelationOrWildcard().(*AllowedRelation_Relation); ok { 1689 return x.Relation 1690 } 1691 return "" 1692 } 1693 1694 func (x *AllowedRelation) GetPublicWildcard() *AllowedRelation_PublicWildcard { 1695 if x, ok := x.GetRelationOrWildcard().(*AllowedRelation_PublicWildcard_); ok { 1696 return x.PublicWildcard 1697 } 1698 return nil 1699 } 1700 1701 func (x *AllowedRelation) GetSourcePosition() *SourcePosition { 1702 if x != nil { 1703 return x.SourcePosition 1704 } 1705 return nil 1706 } 1707 1708 func (x *AllowedRelation) GetRequiredCaveat() *AllowedCaveat { 1709 if x != nil { 1710 return x.RequiredCaveat 1711 } 1712 return nil 1713 } 1714 1715 type isAllowedRelation_RelationOrWildcard interface { 1716 isAllowedRelation_RelationOrWildcard() 1717 } 1718 1719 type AllowedRelation_Relation struct { 1720 Relation string `protobuf:"bytes,3,opt,name=relation,proto3,oneof"` 1721 } 1722 1723 type AllowedRelation_PublicWildcard_ struct { 1724 PublicWildcard *AllowedRelation_PublicWildcard `protobuf:"bytes,4,opt,name=public_wildcard,json=publicWildcard,proto3,oneof"` 1725 } 1726 1727 func (*AllowedRelation_Relation) isAllowedRelation_RelationOrWildcard() {} 1728 1729 func (*AllowedRelation_PublicWildcard_) isAllowedRelation_RelationOrWildcard() {} 1730 1731 // * 1732 // AllowedCaveat is an allowed caveat of a relation. 1733 type AllowedCaveat struct { 1734 state protoimpl.MessageState 1735 sizeCache protoimpl.SizeCache 1736 unknownFields protoimpl.UnknownFields 1737 1738 // * 1739 // caveat_name is the name of the allowed caveat. 1740 CaveatName string `protobuf:"bytes,1,opt,name=caveat_name,json=caveatName,proto3" json:"caveat_name,omitempty"` 1741 } 1742 1743 func (x *AllowedCaveat) Reset() { 1744 *x = AllowedCaveat{} 1745 if protoimpl.UnsafeEnabled { 1746 mi := &file_core_v1_core_proto_msgTypes[20] 1747 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1748 ms.StoreMessageInfo(mi) 1749 } 1750 } 1751 1752 func (x *AllowedCaveat) String() string { 1753 return protoimpl.X.MessageStringOf(x) 1754 } 1755 1756 func (*AllowedCaveat) ProtoMessage() {} 1757 1758 func (x *AllowedCaveat) ProtoReflect() protoreflect.Message { 1759 mi := &file_core_v1_core_proto_msgTypes[20] 1760 if protoimpl.UnsafeEnabled && x != nil { 1761 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1762 if ms.LoadMessageInfo() == nil { 1763 ms.StoreMessageInfo(mi) 1764 } 1765 return ms 1766 } 1767 return mi.MessageOf(x) 1768 } 1769 1770 // Deprecated: Use AllowedCaveat.ProtoReflect.Descriptor instead. 1771 func (*AllowedCaveat) Descriptor() ([]byte, []int) { 1772 return file_core_v1_core_proto_rawDescGZIP(), []int{20} 1773 } 1774 1775 func (x *AllowedCaveat) GetCaveatName() string { 1776 if x != nil { 1777 return x.CaveatName 1778 } 1779 return "" 1780 } 1781 1782 type UsersetRewrite struct { 1783 state protoimpl.MessageState 1784 sizeCache protoimpl.SizeCache 1785 unknownFields protoimpl.UnknownFields 1786 1787 // Types that are assignable to RewriteOperation: 1788 // 1789 // *UsersetRewrite_Union 1790 // *UsersetRewrite_Intersection 1791 // *UsersetRewrite_Exclusion 1792 RewriteOperation isUsersetRewrite_RewriteOperation `protobuf_oneof:"rewrite_operation"` 1793 SourcePosition *SourcePosition `protobuf:"bytes,4,opt,name=source_position,json=sourcePosition,proto3" json:"source_position,omitempty"` 1794 } 1795 1796 func (x *UsersetRewrite) Reset() { 1797 *x = UsersetRewrite{} 1798 if protoimpl.UnsafeEnabled { 1799 mi := &file_core_v1_core_proto_msgTypes[21] 1800 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1801 ms.StoreMessageInfo(mi) 1802 } 1803 } 1804 1805 func (x *UsersetRewrite) String() string { 1806 return protoimpl.X.MessageStringOf(x) 1807 } 1808 1809 func (*UsersetRewrite) ProtoMessage() {} 1810 1811 func (x *UsersetRewrite) ProtoReflect() protoreflect.Message { 1812 mi := &file_core_v1_core_proto_msgTypes[21] 1813 if protoimpl.UnsafeEnabled && x != nil { 1814 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1815 if ms.LoadMessageInfo() == nil { 1816 ms.StoreMessageInfo(mi) 1817 } 1818 return ms 1819 } 1820 return mi.MessageOf(x) 1821 } 1822 1823 // Deprecated: Use UsersetRewrite.ProtoReflect.Descriptor instead. 1824 func (*UsersetRewrite) Descriptor() ([]byte, []int) { 1825 return file_core_v1_core_proto_rawDescGZIP(), []int{21} 1826 } 1827 1828 func (m *UsersetRewrite) GetRewriteOperation() isUsersetRewrite_RewriteOperation { 1829 if m != nil { 1830 return m.RewriteOperation 1831 } 1832 return nil 1833 } 1834 1835 func (x *UsersetRewrite) GetUnion() *SetOperation { 1836 if x, ok := x.GetRewriteOperation().(*UsersetRewrite_Union); ok { 1837 return x.Union 1838 } 1839 return nil 1840 } 1841 1842 func (x *UsersetRewrite) GetIntersection() *SetOperation { 1843 if x, ok := x.GetRewriteOperation().(*UsersetRewrite_Intersection); ok { 1844 return x.Intersection 1845 } 1846 return nil 1847 } 1848 1849 func (x *UsersetRewrite) GetExclusion() *SetOperation { 1850 if x, ok := x.GetRewriteOperation().(*UsersetRewrite_Exclusion); ok { 1851 return x.Exclusion 1852 } 1853 return nil 1854 } 1855 1856 func (x *UsersetRewrite) GetSourcePosition() *SourcePosition { 1857 if x != nil { 1858 return x.SourcePosition 1859 } 1860 return nil 1861 } 1862 1863 type isUsersetRewrite_RewriteOperation interface { 1864 isUsersetRewrite_RewriteOperation() 1865 } 1866 1867 type UsersetRewrite_Union struct { 1868 Union *SetOperation `protobuf:"bytes,1,opt,name=union,proto3,oneof"` 1869 } 1870 1871 type UsersetRewrite_Intersection struct { 1872 Intersection *SetOperation `protobuf:"bytes,2,opt,name=intersection,proto3,oneof"` 1873 } 1874 1875 type UsersetRewrite_Exclusion struct { 1876 Exclusion *SetOperation `protobuf:"bytes,3,opt,name=exclusion,proto3,oneof"` 1877 } 1878 1879 func (*UsersetRewrite_Union) isUsersetRewrite_RewriteOperation() {} 1880 1881 func (*UsersetRewrite_Intersection) isUsersetRewrite_RewriteOperation() {} 1882 1883 func (*UsersetRewrite_Exclusion) isUsersetRewrite_RewriteOperation() {} 1884 1885 type SetOperation struct { 1886 state protoimpl.MessageState 1887 sizeCache protoimpl.SizeCache 1888 unknownFields protoimpl.UnknownFields 1889 1890 Child []*SetOperation_Child `protobuf:"bytes,1,rep,name=child,proto3" json:"child,omitempty"` 1891 } 1892 1893 func (x *SetOperation) Reset() { 1894 *x = SetOperation{} 1895 if protoimpl.UnsafeEnabled { 1896 mi := &file_core_v1_core_proto_msgTypes[22] 1897 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1898 ms.StoreMessageInfo(mi) 1899 } 1900 } 1901 1902 func (x *SetOperation) String() string { 1903 return protoimpl.X.MessageStringOf(x) 1904 } 1905 1906 func (*SetOperation) ProtoMessage() {} 1907 1908 func (x *SetOperation) ProtoReflect() protoreflect.Message { 1909 mi := &file_core_v1_core_proto_msgTypes[22] 1910 if protoimpl.UnsafeEnabled && x != nil { 1911 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1912 if ms.LoadMessageInfo() == nil { 1913 ms.StoreMessageInfo(mi) 1914 } 1915 return ms 1916 } 1917 return mi.MessageOf(x) 1918 } 1919 1920 // Deprecated: Use SetOperation.ProtoReflect.Descriptor instead. 1921 func (*SetOperation) Descriptor() ([]byte, []int) { 1922 return file_core_v1_core_proto_rawDescGZIP(), []int{22} 1923 } 1924 1925 func (x *SetOperation) GetChild() []*SetOperation_Child { 1926 if x != nil { 1927 return x.Child 1928 } 1929 return nil 1930 } 1931 1932 type TupleToUserset struct { 1933 state protoimpl.MessageState 1934 sizeCache protoimpl.SizeCache 1935 unknownFields protoimpl.UnknownFields 1936 1937 Tupleset *TupleToUserset_Tupleset `protobuf:"bytes,1,opt,name=tupleset,proto3" json:"tupleset,omitempty"` 1938 ComputedUserset *ComputedUserset `protobuf:"bytes,2,opt,name=computed_userset,json=computedUserset,proto3" json:"computed_userset,omitempty"` 1939 SourcePosition *SourcePosition `protobuf:"bytes,3,opt,name=source_position,json=sourcePosition,proto3" json:"source_position,omitempty"` 1940 } 1941 1942 func (x *TupleToUserset) Reset() { 1943 *x = TupleToUserset{} 1944 if protoimpl.UnsafeEnabled { 1945 mi := &file_core_v1_core_proto_msgTypes[23] 1946 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1947 ms.StoreMessageInfo(mi) 1948 } 1949 } 1950 1951 func (x *TupleToUserset) String() string { 1952 return protoimpl.X.MessageStringOf(x) 1953 } 1954 1955 func (*TupleToUserset) ProtoMessage() {} 1956 1957 func (x *TupleToUserset) ProtoReflect() protoreflect.Message { 1958 mi := &file_core_v1_core_proto_msgTypes[23] 1959 if protoimpl.UnsafeEnabled && x != nil { 1960 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1961 if ms.LoadMessageInfo() == nil { 1962 ms.StoreMessageInfo(mi) 1963 } 1964 return ms 1965 } 1966 return mi.MessageOf(x) 1967 } 1968 1969 // Deprecated: Use TupleToUserset.ProtoReflect.Descriptor instead. 1970 func (*TupleToUserset) Descriptor() ([]byte, []int) { 1971 return file_core_v1_core_proto_rawDescGZIP(), []int{23} 1972 } 1973 1974 func (x *TupleToUserset) GetTupleset() *TupleToUserset_Tupleset { 1975 if x != nil { 1976 return x.Tupleset 1977 } 1978 return nil 1979 } 1980 1981 func (x *TupleToUserset) GetComputedUserset() *ComputedUserset { 1982 if x != nil { 1983 return x.ComputedUserset 1984 } 1985 return nil 1986 } 1987 1988 func (x *TupleToUserset) GetSourcePosition() *SourcePosition { 1989 if x != nil { 1990 return x.SourcePosition 1991 } 1992 return nil 1993 } 1994 1995 type ComputedUserset struct { 1996 state protoimpl.MessageState 1997 sizeCache protoimpl.SizeCache 1998 unknownFields protoimpl.UnknownFields 1999 2000 Object ComputedUserset_Object `protobuf:"varint,1,opt,name=object,proto3,enum=core.v1.ComputedUserset_Object" json:"object,omitempty"` 2001 Relation string `protobuf:"bytes,2,opt,name=relation,proto3" json:"relation,omitempty"` 2002 SourcePosition *SourcePosition `protobuf:"bytes,3,opt,name=source_position,json=sourcePosition,proto3" json:"source_position,omitempty"` 2003 } 2004 2005 func (x *ComputedUserset) Reset() { 2006 *x = ComputedUserset{} 2007 if protoimpl.UnsafeEnabled { 2008 mi := &file_core_v1_core_proto_msgTypes[24] 2009 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2010 ms.StoreMessageInfo(mi) 2011 } 2012 } 2013 2014 func (x *ComputedUserset) String() string { 2015 return protoimpl.X.MessageStringOf(x) 2016 } 2017 2018 func (*ComputedUserset) ProtoMessage() {} 2019 2020 func (x *ComputedUserset) ProtoReflect() protoreflect.Message { 2021 mi := &file_core_v1_core_proto_msgTypes[24] 2022 if protoimpl.UnsafeEnabled && x != nil { 2023 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2024 if ms.LoadMessageInfo() == nil { 2025 ms.StoreMessageInfo(mi) 2026 } 2027 return ms 2028 } 2029 return mi.MessageOf(x) 2030 } 2031 2032 // Deprecated: Use ComputedUserset.ProtoReflect.Descriptor instead. 2033 func (*ComputedUserset) Descriptor() ([]byte, []int) { 2034 return file_core_v1_core_proto_rawDescGZIP(), []int{24} 2035 } 2036 2037 func (x *ComputedUserset) GetObject() ComputedUserset_Object { 2038 if x != nil { 2039 return x.Object 2040 } 2041 return ComputedUserset_TUPLE_OBJECT 2042 } 2043 2044 func (x *ComputedUserset) GetRelation() string { 2045 if x != nil { 2046 return x.Relation 2047 } 2048 return "" 2049 } 2050 2051 func (x *ComputedUserset) GetSourcePosition() *SourcePosition { 2052 if x != nil { 2053 return x.SourcePosition 2054 } 2055 return nil 2056 } 2057 2058 type SourcePosition struct { 2059 state protoimpl.MessageState 2060 sizeCache protoimpl.SizeCache 2061 unknownFields protoimpl.UnknownFields 2062 2063 ZeroIndexedLineNumber uint64 `protobuf:"varint,1,opt,name=zero_indexed_line_number,json=zeroIndexedLineNumber,proto3" json:"zero_indexed_line_number,omitempty"` 2064 ZeroIndexedColumnPosition uint64 `protobuf:"varint,2,opt,name=zero_indexed_column_position,json=zeroIndexedColumnPosition,proto3" json:"zero_indexed_column_position,omitempty"` 2065 } 2066 2067 func (x *SourcePosition) Reset() { 2068 *x = SourcePosition{} 2069 if protoimpl.UnsafeEnabled { 2070 mi := &file_core_v1_core_proto_msgTypes[25] 2071 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2072 ms.StoreMessageInfo(mi) 2073 } 2074 } 2075 2076 func (x *SourcePosition) String() string { 2077 return protoimpl.X.MessageStringOf(x) 2078 } 2079 2080 func (*SourcePosition) ProtoMessage() {} 2081 2082 func (x *SourcePosition) ProtoReflect() protoreflect.Message { 2083 mi := &file_core_v1_core_proto_msgTypes[25] 2084 if protoimpl.UnsafeEnabled && x != nil { 2085 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2086 if ms.LoadMessageInfo() == nil { 2087 ms.StoreMessageInfo(mi) 2088 } 2089 return ms 2090 } 2091 return mi.MessageOf(x) 2092 } 2093 2094 // Deprecated: Use SourcePosition.ProtoReflect.Descriptor instead. 2095 func (*SourcePosition) Descriptor() ([]byte, []int) { 2096 return file_core_v1_core_proto_rawDescGZIP(), []int{25} 2097 } 2098 2099 func (x *SourcePosition) GetZeroIndexedLineNumber() uint64 { 2100 if x != nil { 2101 return x.ZeroIndexedLineNumber 2102 } 2103 return 0 2104 } 2105 2106 func (x *SourcePosition) GetZeroIndexedColumnPosition() uint64 { 2107 if x != nil { 2108 return x.ZeroIndexedColumnPosition 2109 } 2110 return 0 2111 } 2112 2113 type CaveatExpression struct { 2114 state protoimpl.MessageState 2115 sizeCache protoimpl.SizeCache 2116 unknownFields protoimpl.UnknownFields 2117 2118 // Types that are assignable to OperationOrCaveat: 2119 // 2120 // *CaveatExpression_Operation 2121 // *CaveatExpression_Caveat 2122 OperationOrCaveat isCaveatExpression_OperationOrCaveat `protobuf_oneof:"operation_or_caveat"` 2123 } 2124 2125 func (x *CaveatExpression) Reset() { 2126 *x = CaveatExpression{} 2127 if protoimpl.UnsafeEnabled { 2128 mi := &file_core_v1_core_proto_msgTypes[26] 2129 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2130 ms.StoreMessageInfo(mi) 2131 } 2132 } 2133 2134 func (x *CaveatExpression) String() string { 2135 return protoimpl.X.MessageStringOf(x) 2136 } 2137 2138 func (*CaveatExpression) ProtoMessage() {} 2139 2140 func (x *CaveatExpression) ProtoReflect() protoreflect.Message { 2141 mi := &file_core_v1_core_proto_msgTypes[26] 2142 if protoimpl.UnsafeEnabled && x != nil { 2143 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2144 if ms.LoadMessageInfo() == nil { 2145 ms.StoreMessageInfo(mi) 2146 } 2147 return ms 2148 } 2149 return mi.MessageOf(x) 2150 } 2151 2152 // Deprecated: Use CaveatExpression.ProtoReflect.Descriptor instead. 2153 func (*CaveatExpression) Descriptor() ([]byte, []int) { 2154 return file_core_v1_core_proto_rawDescGZIP(), []int{26} 2155 } 2156 2157 func (m *CaveatExpression) GetOperationOrCaveat() isCaveatExpression_OperationOrCaveat { 2158 if m != nil { 2159 return m.OperationOrCaveat 2160 } 2161 return nil 2162 } 2163 2164 func (x *CaveatExpression) GetOperation() *CaveatOperation { 2165 if x, ok := x.GetOperationOrCaveat().(*CaveatExpression_Operation); ok { 2166 return x.Operation 2167 } 2168 return nil 2169 } 2170 2171 func (x *CaveatExpression) GetCaveat() *ContextualizedCaveat { 2172 if x, ok := x.GetOperationOrCaveat().(*CaveatExpression_Caveat); ok { 2173 return x.Caveat 2174 } 2175 return nil 2176 } 2177 2178 type isCaveatExpression_OperationOrCaveat interface { 2179 isCaveatExpression_OperationOrCaveat() 2180 } 2181 2182 type CaveatExpression_Operation struct { 2183 Operation *CaveatOperation `protobuf:"bytes,1,opt,name=operation,proto3,oneof"` 2184 } 2185 2186 type CaveatExpression_Caveat struct { 2187 Caveat *ContextualizedCaveat `protobuf:"bytes,2,opt,name=caveat,proto3,oneof"` 2188 } 2189 2190 func (*CaveatExpression_Operation) isCaveatExpression_OperationOrCaveat() {} 2191 2192 func (*CaveatExpression_Caveat) isCaveatExpression_OperationOrCaveat() {} 2193 2194 type CaveatOperation struct { 2195 state protoimpl.MessageState 2196 sizeCache protoimpl.SizeCache 2197 unknownFields protoimpl.UnknownFields 2198 2199 Op CaveatOperation_Operation `protobuf:"varint,1,opt,name=op,proto3,enum=core.v1.CaveatOperation_Operation" json:"op,omitempty"` 2200 Children []*CaveatExpression `protobuf:"bytes,2,rep,name=children,proto3" json:"children,omitempty"` 2201 } 2202 2203 func (x *CaveatOperation) Reset() { 2204 *x = CaveatOperation{} 2205 if protoimpl.UnsafeEnabled { 2206 mi := &file_core_v1_core_proto_msgTypes[27] 2207 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2208 ms.StoreMessageInfo(mi) 2209 } 2210 } 2211 2212 func (x *CaveatOperation) String() string { 2213 return protoimpl.X.MessageStringOf(x) 2214 } 2215 2216 func (*CaveatOperation) ProtoMessage() {} 2217 2218 func (x *CaveatOperation) ProtoReflect() protoreflect.Message { 2219 mi := &file_core_v1_core_proto_msgTypes[27] 2220 if protoimpl.UnsafeEnabled && x != nil { 2221 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2222 if ms.LoadMessageInfo() == nil { 2223 ms.StoreMessageInfo(mi) 2224 } 2225 return ms 2226 } 2227 return mi.MessageOf(x) 2228 } 2229 2230 // Deprecated: Use CaveatOperation.ProtoReflect.Descriptor instead. 2231 func (*CaveatOperation) Descriptor() ([]byte, []int) { 2232 return file_core_v1_core_proto_rawDescGZIP(), []int{27} 2233 } 2234 2235 func (x *CaveatOperation) GetOp() CaveatOperation_Operation { 2236 if x != nil { 2237 return x.Op 2238 } 2239 return CaveatOperation_UNKNOWN 2240 } 2241 2242 func (x *CaveatOperation) GetChildren() []*CaveatExpression { 2243 if x != nil { 2244 return x.Children 2245 } 2246 return nil 2247 } 2248 2249 type AllowedRelation_PublicWildcard struct { 2250 state protoimpl.MessageState 2251 sizeCache protoimpl.SizeCache 2252 unknownFields protoimpl.UnknownFields 2253 } 2254 2255 func (x *AllowedRelation_PublicWildcard) Reset() { 2256 *x = AllowedRelation_PublicWildcard{} 2257 if protoimpl.UnsafeEnabled { 2258 mi := &file_core_v1_core_proto_msgTypes[31] 2259 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2260 ms.StoreMessageInfo(mi) 2261 } 2262 } 2263 2264 func (x *AllowedRelation_PublicWildcard) String() string { 2265 return protoimpl.X.MessageStringOf(x) 2266 } 2267 2268 func (*AllowedRelation_PublicWildcard) ProtoMessage() {} 2269 2270 func (x *AllowedRelation_PublicWildcard) ProtoReflect() protoreflect.Message { 2271 mi := &file_core_v1_core_proto_msgTypes[31] 2272 if protoimpl.UnsafeEnabled && x != nil { 2273 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2274 if ms.LoadMessageInfo() == nil { 2275 ms.StoreMessageInfo(mi) 2276 } 2277 return ms 2278 } 2279 return mi.MessageOf(x) 2280 } 2281 2282 // Deprecated: Use AllowedRelation_PublicWildcard.ProtoReflect.Descriptor instead. 2283 func (*AllowedRelation_PublicWildcard) Descriptor() ([]byte, []int) { 2284 return file_core_v1_core_proto_rawDescGZIP(), []int{19, 0} 2285 } 2286 2287 type SetOperation_Child struct { 2288 state protoimpl.MessageState 2289 sizeCache protoimpl.SizeCache 2290 unknownFields protoimpl.UnknownFields 2291 2292 // Types that are assignable to ChildType: 2293 // 2294 // *SetOperation_Child_XThis 2295 // *SetOperation_Child_ComputedUserset 2296 // *SetOperation_Child_TupleToUserset 2297 // *SetOperation_Child_UsersetRewrite 2298 // *SetOperation_Child_XNil 2299 ChildType isSetOperation_Child_ChildType `protobuf_oneof:"child_type"` 2300 SourcePosition *SourcePosition `protobuf:"bytes,5,opt,name=source_position,json=sourcePosition,proto3" json:"source_position,omitempty"` 2301 // * 2302 // operation_path (if specified) is the *unique* ID for the set operation in the permission 2303 // definition. It is a heirarchy representing the position of the operation under its parent 2304 // operation. For example, the operation path of an operation which is the third child of the 2305 // fourth top-level operation, will be `3,2`. 2306 OperationPath []uint32 `protobuf:"varint,7,rep,packed,name=operation_path,json=operationPath,proto3" json:"operation_path,omitempty"` 2307 } 2308 2309 func (x *SetOperation_Child) Reset() { 2310 *x = SetOperation_Child{} 2311 if protoimpl.UnsafeEnabled { 2312 mi := &file_core_v1_core_proto_msgTypes[32] 2313 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2314 ms.StoreMessageInfo(mi) 2315 } 2316 } 2317 2318 func (x *SetOperation_Child) String() string { 2319 return protoimpl.X.MessageStringOf(x) 2320 } 2321 2322 func (*SetOperation_Child) ProtoMessage() {} 2323 2324 func (x *SetOperation_Child) ProtoReflect() protoreflect.Message { 2325 mi := &file_core_v1_core_proto_msgTypes[32] 2326 if protoimpl.UnsafeEnabled && x != nil { 2327 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2328 if ms.LoadMessageInfo() == nil { 2329 ms.StoreMessageInfo(mi) 2330 } 2331 return ms 2332 } 2333 return mi.MessageOf(x) 2334 } 2335 2336 // Deprecated: Use SetOperation_Child.ProtoReflect.Descriptor instead. 2337 func (*SetOperation_Child) Descriptor() ([]byte, []int) { 2338 return file_core_v1_core_proto_rawDescGZIP(), []int{22, 0} 2339 } 2340 2341 func (m *SetOperation_Child) GetChildType() isSetOperation_Child_ChildType { 2342 if m != nil { 2343 return m.ChildType 2344 } 2345 return nil 2346 } 2347 2348 func (x *SetOperation_Child) GetXThis() *SetOperation_Child_This { 2349 if x, ok := x.GetChildType().(*SetOperation_Child_XThis); ok { 2350 return x.XThis 2351 } 2352 return nil 2353 } 2354 2355 func (x *SetOperation_Child) GetComputedUserset() *ComputedUserset { 2356 if x, ok := x.GetChildType().(*SetOperation_Child_ComputedUserset); ok { 2357 return x.ComputedUserset 2358 } 2359 return nil 2360 } 2361 2362 func (x *SetOperation_Child) GetTupleToUserset() *TupleToUserset { 2363 if x, ok := x.GetChildType().(*SetOperation_Child_TupleToUserset); ok { 2364 return x.TupleToUserset 2365 } 2366 return nil 2367 } 2368 2369 func (x *SetOperation_Child) GetUsersetRewrite() *UsersetRewrite { 2370 if x, ok := x.GetChildType().(*SetOperation_Child_UsersetRewrite); ok { 2371 return x.UsersetRewrite 2372 } 2373 return nil 2374 } 2375 2376 func (x *SetOperation_Child) GetXNil() *SetOperation_Child_Nil { 2377 if x, ok := x.GetChildType().(*SetOperation_Child_XNil); ok { 2378 return x.XNil 2379 } 2380 return nil 2381 } 2382 2383 func (x *SetOperation_Child) GetSourcePosition() *SourcePosition { 2384 if x != nil { 2385 return x.SourcePosition 2386 } 2387 return nil 2388 } 2389 2390 func (x *SetOperation_Child) GetOperationPath() []uint32 { 2391 if x != nil { 2392 return x.OperationPath 2393 } 2394 return nil 2395 } 2396 2397 type isSetOperation_Child_ChildType interface { 2398 isSetOperation_Child_ChildType() 2399 } 2400 2401 type SetOperation_Child_XThis struct { 2402 XThis *SetOperation_Child_This `protobuf:"bytes,1,opt,name=_this,json=This,proto3,oneof"` 2403 } 2404 2405 type SetOperation_Child_ComputedUserset struct { 2406 ComputedUserset *ComputedUserset `protobuf:"bytes,2,opt,name=computed_userset,json=computedUserset,proto3,oneof"` 2407 } 2408 2409 type SetOperation_Child_TupleToUserset struct { 2410 TupleToUserset *TupleToUserset `protobuf:"bytes,3,opt,name=tuple_to_userset,json=tupleToUserset,proto3,oneof"` 2411 } 2412 2413 type SetOperation_Child_UsersetRewrite struct { 2414 UsersetRewrite *UsersetRewrite `protobuf:"bytes,4,opt,name=userset_rewrite,json=usersetRewrite,proto3,oneof"` 2415 } 2416 2417 type SetOperation_Child_XNil struct { 2418 XNil *SetOperation_Child_Nil `protobuf:"bytes,6,opt,name=_nil,json=Nil,proto3,oneof"` 2419 } 2420 2421 func (*SetOperation_Child_XThis) isSetOperation_Child_ChildType() {} 2422 2423 func (*SetOperation_Child_ComputedUserset) isSetOperation_Child_ChildType() {} 2424 2425 func (*SetOperation_Child_TupleToUserset) isSetOperation_Child_ChildType() {} 2426 2427 func (*SetOperation_Child_UsersetRewrite) isSetOperation_Child_ChildType() {} 2428 2429 func (*SetOperation_Child_XNil) isSetOperation_Child_ChildType() {} 2430 2431 type SetOperation_Child_This struct { 2432 state protoimpl.MessageState 2433 sizeCache protoimpl.SizeCache 2434 unknownFields protoimpl.UnknownFields 2435 } 2436 2437 func (x *SetOperation_Child_This) Reset() { 2438 *x = SetOperation_Child_This{} 2439 if protoimpl.UnsafeEnabled { 2440 mi := &file_core_v1_core_proto_msgTypes[33] 2441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2442 ms.StoreMessageInfo(mi) 2443 } 2444 } 2445 2446 func (x *SetOperation_Child_This) String() string { 2447 return protoimpl.X.MessageStringOf(x) 2448 } 2449 2450 func (*SetOperation_Child_This) ProtoMessage() {} 2451 2452 func (x *SetOperation_Child_This) ProtoReflect() protoreflect.Message { 2453 mi := &file_core_v1_core_proto_msgTypes[33] 2454 if protoimpl.UnsafeEnabled && x != nil { 2455 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2456 if ms.LoadMessageInfo() == nil { 2457 ms.StoreMessageInfo(mi) 2458 } 2459 return ms 2460 } 2461 return mi.MessageOf(x) 2462 } 2463 2464 // Deprecated: Use SetOperation_Child_This.ProtoReflect.Descriptor instead. 2465 func (*SetOperation_Child_This) Descriptor() ([]byte, []int) { 2466 return file_core_v1_core_proto_rawDescGZIP(), []int{22, 0, 0} 2467 } 2468 2469 type SetOperation_Child_Nil struct { 2470 state protoimpl.MessageState 2471 sizeCache protoimpl.SizeCache 2472 unknownFields protoimpl.UnknownFields 2473 } 2474 2475 func (x *SetOperation_Child_Nil) Reset() { 2476 *x = SetOperation_Child_Nil{} 2477 if protoimpl.UnsafeEnabled { 2478 mi := &file_core_v1_core_proto_msgTypes[34] 2479 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2480 ms.StoreMessageInfo(mi) 2481 } 2482 } 2483 2484 func (x *SetOperation_Child_Nil) String() string { 2485 return protoimpl.X.MessageStringOf(x) 2486 } 2487 2488 func (*SetOperation_Child_Nil) ProtoMessage() {} 2489 2490 func (x *SetOperation_Child_Nil) ProtoReflect() protoreflect.Message { 2491 mi := &file_core_v1_core_proto_msgTypes[34] 2492 if protoimpl.UnsafeEnabled && x != nil { 2493 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2494 if ms.LoadMessageInfo() == nil { 2495 ms.StoreMessageInfo(mi) 2496 } 2497 return ms 2498 } 2499 return mi.MessageOf(x) 2500 } 2501 2502 // Deprecated: Use SetOperation_Child_Nil.ProtoReflect.Descriptor instead. 2503 func (*SetOperation_Child_Nil) Descriptor() ([]byte, []int) { 2504 return file_core_v1_core_proto_rawDescGZIP(), []int{22, 0, 1} 2505 } 2506 2507 type TupleToUserset_Tupleset struct { 2508 state protoimpl.MessageState 2509 sizeCache protoimpl.SizeCache 2510 unknownFields protoimpl.UnknownFields 2511 2512 Relation string `protobuf:"bytes,1,opt,name=relation,proto3" json:"relation,omitempty"` 2513 } 2514 2515 func (x *TupleToUserset_Tupleset) Reset() { 2516 *x = TupleToUserset_Tupleset{} 2517 if protoimpl.UnsafeEnabled { 2518 mi := &file_core_v1_core_proto_msgTypes[35] 2519 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2520 ms.StoreMessageInfo(mi) 2521 } 2522 } 2523 2524 func (x *TupleToUserset_Tupleset) String() string { 2525 return protoimpl.X.MessageStringOf(x) 2526 } 2527 2528 func (*TupleToUserset_Tupleset) ProtoMessage() {} 2529 2530 func (x *TupleToUserset_Tupleset) ProtoReflect() protoreflect.Message { 2531 mi := &file_core_v1_core_proto_msgTypes[35] 2532 if protoimpl.UnsafeEnabled && x != nil { 2533 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2534 if ms.LoadMessageInfo() == nil { 2535 ms.StoreMessageInfo(mi) 2536 } 2537 return ms 2538 } 2539 return mi.MessageOf(x) 2540 } 2541 2542 // Deprecated: Use TupleToUserset_Tupleset.ProtoReflect.Descriptor instead. 2543 func (*TupleToUserset_Tupleset) Descriptor() ([]byte, []int) { 2544 return file_core_v1_core_proto_rawDescGZIP(), []int{23, 0} 2545 } 2546 2547 func (x *TupleToUserset_Tupleset) GetRelation() string { 2548 if x != nil { 2549 return x.Relation 2550 } 2551 return "" 2552 } 2553 2554 var File_core_v1_core_proto protoreflect.FileDescriptor 2555 2556 var file_core_v1_core_proto_rawDesc = []byte{ 2557 0x0a, 0x12, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 2558 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x67, 2559 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 2560 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2561 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 2562 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 2563 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 2564 0xea, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x70, 0x6c, 2565 0x65, 0x12, 0x58, 0x0a, 0x15, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x6e, 2566 0x64, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 2567 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 2568 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 2569 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 2570 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x07, 0x73, 2571 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 2572 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 2573 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 2574 0x10, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x63, 2575 0x61, 0x76, 0x65, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 2576 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 2577 0x69, 0x7a, 0x65, 0x64, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 2578 0x01, 0x02, 0x10, 0x00, 0x52, 0x06, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x22, 0xab, 0x01, 0x0a, 2579 0x14, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 2580 0x61, 0x76, 0x65, 0x61, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 2581 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x35, 0xfa, 0x42, 0x32, 0x72, 2582 0x30, 0x28, 0x80, 0x01, 0x32, 0x2b, 0x5e, 0x28, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 2583 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x2f, 2584 0x5f, 0x7c, 0x2d, 0x5d, 0x7b, 0x30, 0x2c, 0x31, 0x32, 0x37, 0x7d, 0x29, 0x7c, 0x5c, 0x2a, 0x29, 2585 0x24, 0x52, 0x0a, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 2586 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 2587 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2588 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 2589 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xd4, 0x03, 0x0a, 0x10, 0x43, 2590 0x61, 0x76, 0x65, 0x61, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 2591 0x49, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x35, 0xfa, 2592 0x42, 0x32, 0x72, 0x30, 0x28, 0x80, 0x01, 0x32, 0x2b, 0x5e, 0x28, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 2593 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 2594 0x2d, 0x39, 0x2f, 0x5f, 0x7c, 0x2d, 0x5d, 0x7b, 0x30, 0x2c, 0x31, 0x32, 0x37, 0x7d, 0x29, 0x7c, 2595 0x5c, 0x2a, 0x29, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x15, 0x73, 0x65, 2596 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 2597 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x7a, 0x05, 2598 0x10, 0x00, 0x18, 0x80, 0x20, 0x52, 0x14, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 2599 0x64, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x0f, 0x70, 2600 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x03, 2601 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 2602 0x61, 0x76, 0x65, 0x61, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 2603 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x45, 0x6e, 2604 0x74, 0x72, 0x79, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x9a, 0x01, 0x04, 0x08, 0x01, 0x10, 0x14, 0x52, 2605 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 2606 0x2d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 2607 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 2608 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 2609 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 2610 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 2611 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2612 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2613 0x1a, 0x5f, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 2614 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 2615 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 2616 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 2617 0x76, 0x31, 0x2e, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 2618 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 2619 0x01, 0x22, 0x7d, 0x0a, 0x13, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 2620 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 2621 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 2622 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x74, 2623 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x72, 2624 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 2625 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x92, 0x01, 0x04, 2626 0x08, 0x00, 0x10, 0x01, 0x52, 0x0a, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x73, 2627 0x22, 0x91, 0x02, 0x0a, 0x11, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 2628 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 2629 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x48, 0xfa, 0x42, 0x45, 0x72, 0x43, 2630 0x28, 0x80, 0x01, 0x32, 0x3e, 0x5e, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 2631 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x31, 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 2632 0x2d, 0x39, 0x5d, 0x2f, 0x29, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 2633 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 2634 0x39, 0x5d, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x46, 2635 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 2636 0x09, 0x42, 0x29, 0xfa, 0x42, 0x26, 0x72, 0x24, 0x28, 0x80, 0x08, 0x32, 0x1f, 0x5e, 0x28, 0x28, 2637 0x5b, 0x61, 0x2d, 0x7a, 0x41, 0x2d, 0x5a, 0x30, 0x2d, 0x39, 0x2f, 0x5f, 0x7c, 0x5c, 0x2d, 0x3d, 2638 0x2b, 0x5d, 0x7b, 0x31, 0x2c, 0x7d, 0x29, 0x7c, 0x5c, 0x2a, 0x29, 0x24, 0x52, 0x08, 0x6f, 0x62, 2639 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 2640 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xfa, 0x42, 0x2d, 0x72, 0x2b, 0x28, 2641 0x40, 0x32, 0x27, 0x5e, 0x28, 0x5c, 0x2e, 0x5c, 0x2e, 0x5c, 0x2e, 0x7c, 0x5b, 0x61, 0x2d, 0x7a, 2642 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 2643 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x24, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 2644 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc9, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 2645 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x09, 0x6e, 0x61, 2646 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x48, 0xfa, 2647 0x42, 0x45, 0x72, 0x43, 0x28, 0x80, 0x01, 0x32, 0x3e, 0x5e, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 2648 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x31, 0x7d, 0x5b, 2649 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2f, 0x29, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x5b, 2650 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 0x5b, 0x61, 2651 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 2652 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 2653 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xfa, 0x42, 0x2d, 0x72, 0x2b, 0x28, 0x40, 0x32, 0x27, 0x5e, 2654 0x28, 0x5c, 0x2e, 0x5c, 0x2e, 0x5c, 0x2e, 0x7c, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x5b, 0x61, 0x2d, 2655 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 2656 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x24, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2657 0x22, 0x27, 0x0a, 0x06, 0x5a, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1d, 0x0a, 0x05, 0x74, 0x6f, 2658 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 2659 0x20, 0x01, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xda, 0x01, 0x0a, 0x13, 0x52, 0x65, 2660 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 2661 0x65, 0x12, 0x4e, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 2662 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 2663 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 2664 0x74, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 2665 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 2666 0x6e, 0x12, 0x36, 0x0a, 0x05, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2667 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 2668 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 2669 0x10, 0x01, 0x52, 0x05, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x22, 0x3b, 0x0a, 0x09, 0x4f, 0x70, 0x65, 2670 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 2671 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 2672 0x09, 0x0a, 0x05, 0x54, 0x4f, 0x55, 0x43, 0x48, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 2673 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x22, 0xa9, 0x02, 0x0a, 0x15, 0x52, 0x65, 0x6c, 0x61, 0x74, 2674 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x72, 0x65, 0x65, 0x4e, 0x6f, 0x64, 0x65, 2675 0x12, 0x4b, 0x0a, 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 2676 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 2677 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 2678 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, 2679 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 2680 0x09, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2681 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 2682 0x74, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x65, 0x61, 2683 0x66, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 2684 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 2685 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 2686 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x46, 0x0a, 2687 0x11, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 2688 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 2689 0x76, 0x31, 0x2e, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 2690 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 2691 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 2692 0x70, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 2693 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x12, 0x44, 0x0a, 0x09, 0x6f, 0x70, 2694 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 2695 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 2696 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x2e, 0x4f, 0x70, 0x65, 0x72, 2697 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2698 0x12, 0x3f, 0x0a, 0x0b, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 2699 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 2700 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x72, 0x65, 2701 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, 2702 0x73, 0x22, 0x44, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 2703 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x55, 2704 0x4e, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x53, 2705 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x58, 0x43, 0x4c, 2706 0x55, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x22, 0x8d, 0x01, 0x0a, 0x0d, 0x44, 0x69, 0x72, 0x65, 2707 0x63, 0x74, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x73, 0x75, 0x62, 2708 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 2709 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 2710 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 2711 0x46, 0x0a, 0x11, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 2712 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 2713 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 2714 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x45, 0x78, 0x70, 2715 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x44, 0x0a, 0x0e, 0x44, 0x69, 0x72, 0x65, 0x63, 2716 0x74, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x75, 0x62, 2717 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 2718 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x53, 0x75, 0x62, 0x6a, 2719 0x65, 0x63, 0x74, 0x52, 0x08, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0xb8, 0x01, 2720 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xab, 0x01, 0x0a, 0x10, 0x6d, 2721 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 2722 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 2723 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x6a, 0xfa, 0x42, 0x67, 2724 0x92, 0x01, 0x64, 0x08, 0x01, 0x22, 0x60, 0x8a, 0x01, 0x02, 0x10, 0x01, 0xa2, 0x01, 0x58, 0x08, 2725 0x01, 0x12, 0x26, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 2726 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 0x6d, 0x70, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x44, 2727 0x6f, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x74, 0x79, 0x70, 0x65, 0x2e, 2728 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x69, 2729 0x6d, 0x70, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 2730 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 2731 0x61, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x13, 0x4e, 0x61, 0x6d, 2732 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2733 0x12, 0x5c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x48, 2734 0xfa, 0x42, 0x45, 0x72, 0x43, 0x28, 0x80, 0x01, 0x32, 0x3e, 0x5e, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 2735 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 2736 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2f, 0x29, 0x2a, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 2737 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 0x5b, 2738 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 2739 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 2740 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 2741 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 2742 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 2743 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 2744 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0f, 2745 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2746 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 2747 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 2748 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9c, 2749 0x03, 0x0a, 0x08, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 2750 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x42, 0x24, 0x72, 0x22, 2751 0x28, 0x40, 0x32, 0x1e, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 2752 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 2753 0x5d, 0x24, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 2754 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 2755 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 2756 0x73, 0x65, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 2757 0x73, 0x65, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x10, 0x74, 0x79, 2758 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 2759 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 2760 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 2761 0x74, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 2762 0x2d, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 2763 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 2764 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 2765 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 2766 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 2767 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2768 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2769 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x6c, 2770 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x69, 2771 0x61, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 2772 0x13, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 2773 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x6f, 2774 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4b, 0x65, 0x79, 0x22, 0xf4, 0x03, 2775 0x0a, 0x11, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x47, 0x72, 2776 0x61, 0x70, 0x68, 0x12, 0x77, 0x0a, 0x1b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 2777 0x74, 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 2778 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 2779 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x47, 2780 0x72, 0x61, 0x70, 0x68, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 2781 0x42, 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 2782 0x72, 0x79, 0x52, 0x18, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x42, 2783 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x83, 0x01, 0x0a, 2784 0x1f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x5f, 0x62, 0x79, 0x5f, 2785 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2786 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 2787 0x2e, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x47, 0x72, 0x61, 2788 0x70, 0x68, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x42, 0x79, 2789 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 2790 0x6e, 0x74, 0x72, 0x79, 0x52, 0x1c, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2791 0x73, 0x42, 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 2792 0x6f, 0x6e, 0x1a, 0x6d, 0x0a, 0x1d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2793 0x73, 0x42, 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 2794 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2795 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 2796 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 2797 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 2798 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 2799 0x01, 0x1a, 0x71, 0x0a, 0x21, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 2800 0x42, 0x79, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 2801 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 2802 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x36, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 2803 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 2804 0x31, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 2805 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 2806 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc6, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 2807 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 2808 0x12, 0x41, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 2809 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 2810 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 2811 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 2812 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 2813 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x6a, 0x65, 2814 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 2815 0x74, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 2816 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 2817 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0f, 0x73, 0x75, 2818 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x04, 2819 0x0a, 0x16, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 2820 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 2821 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 2822 0x2e, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 2823 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 2824 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4b, 0x69, 2825 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x43, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 2826 0x65, 0x74, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 2827 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 2828 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x74, 2829 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 2830 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 2831 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 2832 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 2833 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 2834 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x72, 0x65, 2835 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x75, 2836 0x70, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2837 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x52, 2838 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7a, 0x0a, 0x1a, 0x52, 0x65, 0x61, 0x63, 0x68, 2839 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 2840 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 2841 0x4e, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x1f, 2842 0x0a, 0x1b, 0x43, 0x4f, 0x4d, 0x50, 0x55, 0x54, 0x45, 0x44, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x53, 2843 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x50, 0x4f, 0x49, 0x4e, 0x54, 0x10, 0x01, 0x12, 2844 0x22, 0x0a, 0x1e, 0x54, 0x55, 0x50, 0x4c, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x55, 2845 0x53, 0x45, 0x52, 0x53, 0x45, 0x54, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x50, 0x4f, 0x49, 0x4e, 2846 0x54, 0x10, 0x02, 0x22, 0x57, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 2847 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 2848 0x1c, 0x52, 0x45, 0x41, 0x43, 0x48, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x44, 0x49, 2849 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 2850 0x1b, 0x0a, 0x17, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 2851 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x4a, 0x04, 0x08, 0x03, 2852 0x10, 0x04, 0x22, 0x65, 0x0a, 0x0f, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 2853 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x18, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 2854 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2855 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 2856 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 2857 0x6e, 0x52, 0x16, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 2858 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xca, 0x03, 0x0a, 0x0f, 0x41, 0x6c, 2859 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 2860 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 2861 0x42, 0x48, 0xfa, 0x42, 0x45, 0x72, 0x43, 0x28, 0x80, 0x01, 0x32, 0x3e, 0x5e, 0x28, 0x5b, 0x61, 2862 0x2d, 0x7a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 2863 0x31, 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x2f, 0x29, 0x2a, 0x5b, 0x61, 0x2d, 2864 0x7a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 2865 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x24, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 2866 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x4e, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 2867 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xfa, 0x42, 0x2d, 0x72, 0x2b, 0x28, 0x40, 2868 0x32, 0x27, 0x5e, 0x28, 0x5c, 0x2e, 0x5c, 0x2e, 0x5c, 0x2e, 0x7c, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 2869 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 0x5b, 2870 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x24, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x6c, 2871 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 2872 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 2873 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 2874 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x57, 2875 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 2876 0x63, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x12, 0x40, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 2877 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 2878 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 2879 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x6f, 0x75, 2880 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0f, 0x72, 2881 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x18, 0x06, 2882 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 2883 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x52, 0x0e, 0x72, 0x65, 2884 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x1a, 0x10, 0x0a, 0x0e, 2885 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x42, 0x16, 2886 0x0a, 0x14, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x72, 0x5f, 0x77, 0x69, 2887 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x30, 0x0a, 0x0d, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 2888 0x64, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x76, 0x65, 0x61, 2889 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 2890 0x76, 0x65, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xad, 0x02, 0x0a, 0x0e, 0x55, 0x73, 0x65, 2891 0x72, 0x73, 0x65, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x75, 2892 0x6e, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x72, 2893 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 2894 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x05, 0x75, 2895 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 2896 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x72, 2897 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 2898 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x69, 2899 0x6e, 0x74, 0x65, 0x72, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x09, 0x65, 2900 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 2901 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 2902 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 2903 0x00, 0x52, 0x09, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 2904 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2905 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 2906 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 2907 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x18, 2908 0x0a, 0x11, 0x72, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 2909 0x69, 0x6f, 0x6e, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 0xc4, 0x04, 0x0a, 0x0c, 0x53, 0x65, 0x74, 2910 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x05, 0x63, 0x68, 0x69, 2911 0x6c, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 2912 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 2913 0x43, 0x68, 0x69, 0x6c, 0x64, 0x42, 0x0f, 0xfa, 0x42, 0x0c, 0x92, 0x01, 0x09, 0x08, 0x01, 0x22, 2914 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x1a, 0xef, 0x03, 2915 0x0a, 0x05, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x05, 0x5f, 0x74, 0x68, 0x69, 0x73, 2916 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 2917 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 2918 0x69, 0x6c, 0x64, 0x2e, 0x54, 0x68, 0x69, 0x73, 0x48, 0x00, 0x52, 0x04, 0x54, 0x68, 0x69, 0x73, 2919 0x12, 0x4f, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 2920 0x72, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x72, 2921 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 2922 0x72, 0x73, 0x65, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 2923 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 2924 0x74, 0x12, 0x4d, 0x0a, 0x10, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x75, 0x73, 2925 0x65, 0x72, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 2926 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x6f, 0x55, 0x73, 0x65, 2927 0x72, 0x73, 0x65, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 2928 0x52, 0x0e, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 2929 0x12, 0x4c, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x72, 2930 0x69, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 2931 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 2932 0x74, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x0e, 2933 0x75, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x52, 0x65, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x34, 2934 0x0a, 0x04, 0x5f, 0x6e, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 2935 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 2936 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x2e, 0x4e, 0x69, 0x6c, 0x48, 0x00, 0x52, 2937 0x03, 0x4e, 0x69, 0x6c, 0x12, 0x40, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 2938 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 2939 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 2940 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 2941 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 2942 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 2943 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x1a, 0x06, 0x0a, 2944 0x04, 0x54, 0x68, 0x69, 0x73, 0x1a, 0x05, 0x0a, 0x03, 0x4e, 0x69, 0x6c, 0x42, 0x11, 0x0a, 0x0a, 2945 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x03, 0xf8, 0x42, 0x01, 0x22, 2946 0xba, 0x02, 0x0a, 0x0e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x73, 2947 0x65, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x18, 0x01, 2948 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 2949 0x75, 0x70, 0x6c, 0x65, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x2e, 0x54, 0x75, 2950 0x70, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 2951 0x52, 0x08, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x4d, 0x0a, 0x10, 0x63, 0x6f, 2952 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x18, 0x02, 2953 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 2954 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x42, 0x08, 2955 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 2956 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 2957 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 2958 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 2959 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x6f, 0x75, 2960 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4f, 0x0a, 0x08, 0x54, 2961 0x75, 0x70, 0x6c, 0x65, 0x73, 0x65, 0x74, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 2962 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x42, 0x24, 0x72, 0x22, 2963 0x28, 0x40, 0x32, 0x1e, 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 2964 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 2965 0x5d, 0x24, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x02, 0x0a, 2966 0x0f, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 2967 0x12, 0x41, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 2968 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 2969 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x65, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 2970 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x82, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x6f, 0x62, 0x6a, 2971 0x65, 0x63, 0x74, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2972 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xfa, 0x42, 0x24, 0x72, 0x22, 0x28, 0x40, 0x32, 0x1e, 2973 0x5e, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 2974 0x31, 0x2c, 0x36, 0x32, 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x24, 0x52, 0x08, 2975 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 2976 0x63, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 2977 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 2978 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 2979 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x34, 0x0a, 0x06, 0x4f, 0x62, 2980 0x6a, 0x65, 0x63, 0x74, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x55, 0x50, 0x4c, 0x45, 0x5f, 0x4f, 0x42, 2981 0x4a, 0x45, 0x43, 0x54, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x55, 0x50, 0x4c, 0x45, 0x5f, 2982 0x55, 0x53, 0x45, 0x52, 0x53, 0x45, 0x54, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x01, 2983 0x22, 0x8a, 0x01, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 2984 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x18, 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x6e, 0x64, 0x65, 2985 0x78, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 2986 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x15, 0x7a, 0x65, 0x72, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 2987 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x1c, 2988 0x7a, 0x65, 0x72, 0x6f, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 2989 0x75, 0x6d, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 2990 0x28, 0x04, 0x52, 0x19, 0x7a, 0x65, 0x72, 0x6f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x43, 2991 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9c, 0x01, 2992 0x0a, 0x10, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 2993 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2994 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 2995 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 2996 0x00, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x06, 2997 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 2998 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, 2999 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x06, 0x63, 3000 0x61, 0x76, 0x65, 0x61, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 3001 0x6f, 0x6e, 0x5f, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x22, 0xb0, 0x01, 0x0a, 3002 0x0f, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3003 0x12, 0x32, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 3004 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x4f, 0x70, 0x65, 3005 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 3006 0x52, 0x02, 0x6f, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 3007 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 3008 0x2e, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 3009 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x22, 0x32, 0x0a, 0x09, 0x4f, 3010 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 3011 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x07, 0x0a, 3012 0x03, 0x41, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x4f, 0x54, 0x10, 0x03, 0x42, 3013 0x8a, 0x01, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x42, 3014 0x09, 0x43, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x33, 0x67, 0x69, 3015 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 3016 0x2f, 0x73, 0x70, 0x69, 0x63, 0x65, 0x64, 0x62, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 3017 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x72, 0x65, 0x76, 3018 0x31, 0xa2, 0x02, 0x03, 0x43, 0x58, 0x58, 0xaa, 0x02, 0x07, 0x43, 0x6f, 0x72, 0x65, 0x2e, 0x56, 3019 0x31, 0xca, 0x02, 0x07, 0x43, 0x6f, 0x72, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x13, 0x43, 0x6f, 3020 0x72, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 3021 0x61, 0xea, 0x02, 0x08, 0x43, 0x6f, 0x72, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 3022 0x6f, 0x74, 0x6f, 0x33, 3023 } 3024 3025 var ( 3026 file_core_v1_core_proto_rawDescOnce sync.Once 3027 file_core_v1_core_proto_rawDescData = file_core_v1_core_proto_rawDesc 3028 ) 3029 3030 func file_core_v1_core_proto_rawDescGZIP() []byte { 3031 file_core_v1_core_proto_rawDescOnce.Do(func() { 3032 file_core_v1_core_proto_rawDescData = protoimpl.X.CompressGZIP(file_core_v1_core_proto_rawDescData) 3033 }) 3034 return file_core_v1_core_proto_rawDescData 3035 } 3036 3037 var file_core_v1_core_proto_enumTypes = make([]protoimpl.EnumInfo, 6) 3038 var file_core_v1_core_proto_msgTypes = make([]protoimpl.MessageInfo, 36) 3039 var file_core_v1_core_proto_goTypes = []interface{}{ 3040 (RelationTupleUpdate_Operation)(0), // 0: core.v1.RelationTupleUpdate.Operation 3041 (SetOperationUserset_Operation)(0), // 1: core.v1.SetOperationUserset.Operation 3042 (ReachabilityEntrypoint_ReachabilityEntrypointKind)(0), // 2: core.v1.ReachabilityEntrypoint.ReachabilityEntrypointKind 3043 (ReachabilityEntrypoint_EntrypointResultStatus)(0), // 3: core.v1.ReachabilityEntrypoint.EntrypointResultStatus 3044 (ComputedUserset_Object)(0), // 4: core.v1.ComputedUserset.Object 3045 (CaveatOperation_Operation)(0), // 5: core.v1.CaveatOperation.Operation 3046 (*RelationTuple)(nil), // 6: core.v1.RelationTuple 3047 (*ContextualizedCaveat)(nil), // 7: core.v1.ContextualizedCaveat 3048 (*CaveatDefinition)(nil), // 8: core.v1.CaveatDefinition 3049 (*CaveatTypeReference)(nil), // 9: core.v1.CaveatTypeReference 3050 (*ObjectAndRelation)(nil), // 10: core.v1.ObjectAndRelation 3051 (*RelationReference)(nil), // 11: core.v1.RelationReference 3052 (*Zookie)(nil), // 12: core.v1.Zookie 3053 (*RelationTupleUpdate)(nil), // 13: core.v1.RelationTupleUpdate 3054 (*RelationTupleTreeNode)(nil), // 14: core.v1.RelationTupleTreeNode 3055 (*SetOperationUserset)(nil), // 15: core.v1.SetOperationUserset 3056 (*DirectSubject)(nil), // 16: core.v1.DirectSubject 3057 (*DirectSubjects)(nil), // 17: core.v1.DirectSubjects 3058 (*Metadata)(nil), // 18: core.v1.Metadata 3059 (*NamespaceDefinition)(nil), // 19: core.v1.NamespaceDefinition 3060 (*Relation)(nil), // 20: core.v1.Relation 3061 (*ReachabilityGraph)(nil), // 21: core.v1.ReachabilityGraph 3062 (*ReachabilityEntrypoints)(nil), // 22: core.v1.ReachabilityEntrypoints 3063 (*ReachabilityEntrypoint)(nil), // 23: core.v1.ReachabilityEntrypoint 3064 (*TypeInformation)(nil), // 24: core.v1.TypeInformation 3065 (*AllowedRelation)(nil), // 25: core.v1.AllowedRelation 3066 (*AllowedCaveat)(nil), // 26: core.v1.AllowedCaveat 3067 (*UsersetRewrite)(nil), // 27: core.v1.UsersetRewrite 3068 (*SetOperation)(nil), // 28: core.v1.SetOperation 3069 (*TupleToUserset)(nil), // 29: core.v1.TupleToUserset 3070 (*ComputedUserset)(nil), // 30: core.v1.ComputedUserset 3071 (*SourcePosition)(nil), // 31: core.v1.SourcePosition 3072 (*CaveatExpression)(nil), // 32: core.v1.CaveatExpression 3073 (*CaveatOperation)(nil), // 33: core.v1.CaveatOperation 3074 nil, // 34: core.v1.CaveatDefinition.ParameterTypesEntry 3075 nil, // 35: core.v1.ReachabilityGraph.EntrypointsBySubjectTypeEntry 3076 nil, // 36: core.v1.ReachabilityGraph.EntrypointsBySubjectRelationEntry 3077 (*AllowedRelation_PublicWildcard)(nil), // 37: core.v1.AllowedRelation.PublicWildcard 3078 (*SetOperation_Child)(nil), // 38: core.v1.SetOperation.Child 3079 (*SetOperation_Child_This)(nil), // 39: core.v1.SetOperation.Child.This 3080 (*SetOperation_Child_Nil)(nil), // 40: core.v1.SetOperation.Child.Nil 3081 (*TupleToUserset_Tupleset)(nil), // 41: core.v1.TupleToUserset.Tupleset 3082 (*structpb.Struct)(nil), // 42: google.protobuf.Struct 3083 (*anypb.Any)(nil), // 43: google.protobuf.Any 3084 } 3085 var file_core_v1_core_proto_depIdxs = []int32{ 3086 10, // 0: core.v1.RelationTuple.resource_and_relation:type_name -> core.v1.ObjectAndRelation 3087 10, // 1: core.v1.RelationTuple.subject:type_name -> core.v1.ObjectAndRelation 3088 7, // 2: core.v1.RelationTuple.caveat:type_name -> core.v1.ContextualizedCaveat 3089 42, // 3: core.v1.ContextualizedCaveat.context:type_name -> google.protobuf.Struct 3090 34, // 4: core.v1.CaveatDefinition.parameter_types:type_name -> core.v1.CaveatDefinition.ParameterTypesEntry 3091 18, // 5: core.v1.CaveatDefinition.metadata:type_name -> core.v1.Metadata 3092 31, // 6: core.v1.CaveatDefinition.source_position:type_name -> core.v1.SourcePosition 3093 9, // 7: core.v1.CaveatTypeReference.child_types:type_name -> core.v1.CaveatTypeReference 3094 0, // 8: core.v1.RelationTupleUpdate.operation:type_name -> core.v1.RelationTupleUpdate.Operation 3095 6, // 9: core.v1.RelationTupleUpdate.tuple:type_name -> core.v1.RelationTuple 3096 15, // 10: core.v1.RelationTupleTreeNode.intermediate_node:type_name -> core.v1.SetOperationUserset 3097 17, // 11: core.v1.RelationTupleTreeNode.leaf_node:type_name -> core.v1.DirectSubjects 3098 10, // 12: core.v1.RelationTupleTreeNode.expanded:type_name -> core.v1.ObjectAndRelation 3099 32, // 13: core.v1.RelationTupleTreeNode.caveat_expression:type_name -> core.v1.CaveatExpression 3100 1, // 14: core.v1.SetOperationUserset.operation:type_name -> core.v1.SetOperationUserset.Operation 3101 14, // 15: core.v1.SetOperationUserset.child_nodes:type_name -> core.v1.RelationTupleTreeNode 3102 10, // 16: core.v1.DirectSubject.subject:type_name -> core.v1.ObjectAndRelation 3103 32, // 17: core.v1.DirectSubject.caveat_expression:type_name -> core.v1.CaveatExpression 3104 16, // 18: core.v1.DirectSubjects.subjects:type_name -> core.v1.DirectSubject 3105 43, // 19: core.v1.Metadata.metadata_message:type_name -> google.protobuf.Any 3106 20, // 20: core.v1.NamespaceDefinition.relation:type_name -> core.v1.Relation 3107 18, // 21: core.v1.NamespaceDefinition.metadata:type_name -> core.v1.Metadata 3108 31, // 22: core.v1.NamespaceDefinition.source_position:type_name -> core.v1.SourcePosition 3109 27, // 23: core.v1.Relation.userset_rewrite:type_name -> core.v1.UsersetRewrite 3110 24, // 24: core.v1.Relation.type_information:type_name -> core.v1.TypeInformation 3111 18, // 25: core.v1.Relation.metadata:type_name -> core.v1.Metadata 3112 31, // 26: core.v1.Relation.source_position:type_name -> core.v1.SourcePosition 3113 35, // 27: core.v1.ReachabilityGraph.entrypoints_by_subject_type:type_name -> core.v1.ReachabilityGraph.EntrypointsBySubjectTypeEntry 3114 36, // 28: core.v1.ReachabilityGraph.entrypoints_by_subject_relation:type_name -> core.v1.ReachabilityGraph.EntrypointsBySubjectRelationEntry 3115 23, // 29: core.v1.ReachabilityEntrypoints.entrypoints:type_name -> core.v1.ReachabilityEntrypoint 3116 11, // 30: core.v1.ReachabilityEntrypoints.subject_relation:type_name -> core.v1.RelationReference 3117 2, // 31: core.v1.ReachabilityEntrypoint.kind:type_name -> core.v1.ReachabilityEntrypoint.ReachabilityEntrypointKind 3118 11, // 32: core.v1.ReachabilityEntrypoint.target_relation:type_name -> core.v1.RelationReference 3119 3, // 33: core.v1.ReachabilityEntrypoint.result_status:type_name -> core.v1.ReachabilityEntrypoint.EntrypointResultStatus 3120 25, // 34: core.v1.TypeInformation.allowed_direct_relations:type_name -> core.v1.AllowedRelation 3121 37, // 35: core.v1.AllowedRelation.public_wildcard:type_name -> core.v1.AllowedRelation.PublicWildcard 3122 31, // 36: core.v1.AllowedRelation.source_position:type_name -> core.v1.SourcePosition 3123 26, // 37: core.v1.AllowedRelation.required_caveat:type_name -> core.v1.AllowedCaveat 3124 28, // 38: core.v1.UsersetRewrite.union:type_name -> core.v1.SetOperation 3125 28, // 39: core.v1.UsersetRewrite.intersection:type_name -> core.v1.SetOperation 3126 28, // 40: core.v1.UsersetRewrite.exclusion:type_name -> core.v1.SetOperation 3127 31, // 41: core.v1.UsersetRewrite.source_position:type_name -> core.v1.SourcePosition 3128 38, // 42: core.v1.SetOperation.child:type_name -> core.v1.SetOperation.Child 3129 41, // 43: core.v1.TupleToUserset.tupleset:type_name -> core.v1.TupleToUserset.Tupleset 3130 30, // 44: core.v1.TupleToUserset.computed_userset:type_name -> core.v1.ComputedUserset 3131 31, // 45: core.v1.TupleToUserset.source_position:type_name -> core.v1.SourcePosition 3132 4, // 46: core.v1.ComputedUserset.object:type_name -> core.v1.ComputedUserset.Object 3133 31, // 47: core.v1.ComputedUserset.source_position:type_name -> core.v1.SourcePosition 3134 33, // 48: core.v1.CaveatExpression.operation:type_name -> core.v1.CaveatOperation 3135 7, // 49: core.v1.CaveatExpression.caveat:type_name -> core.v1.ContextualizedCaveat 3136 5, // 50: core.v1.CaveatOperation.op:type_name -> core.v1.CaveatOperation.Operation 3137 32, // 51: core.v1.CaveatOperation.children:type_name -> core.v1.CaveatExpression 3138 9, // 52: core.v1.CaveatDefinition.ParameterTypesEntry.value:type_name -> core.v1.CaveatTypeReference 3139 22, // 53: core.v1.ReachabilityGraph.EntrypointsBySubjectTypeEntry.value:type_name -> core.v1.ReachabilityEntrypoints 3140 22, // 54: core.v1.ReachabilityGraph.EntrypointsBySubjectRelationEntry.value:type_name -> core.v1.ReachabilityEntrypoints 3141 39, // 55: core.v1.SetOperation.Child._this:type_name -> core.v1.SetOperation.Child.This 3142 30, // 56: core.v1.SetOperation.Child.computed_userset:type_name -> core.v1.ComputedUserset 3143 29, // 57: core.v1.SetOperation.Child.tuple_to_userset:type_name -> core.v1.TupleToUserset 3144 27, // 58: core.v1.SetOperation.Child.userset_rewrite:type_name -> core.v1.UsersetRewrite 3145 40, // 59: core.v1.SetOperation.Child._nil:type_name -> core.v1.SetOperation.Child.Nil 3146 31, // 60: core.v1.SetOperation.Child.source_position:type_name -> core.v1.SourcePosition 3147 61, // [61:61] is the sub-list for method output_type 3148 61, // [61:61] is the sub-list for method input_type 3149 61, // [61:61] is the sub-list for extension type_name 3150 61, // [61:61] is the sub-list for extension extendee 3151 0, // [0:61] is the sub-list for field type_name 3152 } 3153 3154 func init() { file_core_v1_core_proto_init() } 3155 func file_core_v1_core_proto_init() { 3156 if File_core_v1_core_proto != nil { 3157 return 3158 } 3159 if !protoimpl.UnsafeEnabled { 3160 file_core_v1_core_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 3161 switch v := v.(*RelationTuple); i { 3162 case 0: 3163 return &v.state 3164 case 1: 3165 return &v.sizeCache 3166 case 2: 3167 return &v.unknownFields 3168 default: 3169 return nil 3170 } 3171 } 3172 file_core_v1_core_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 3173 switch v := v.(*ContextualizedCaveat); i { 3174 case 0: 3175 return &v.state 3176 case 1: 3177 return &v.sizeCache 3178 case 2: 3179 return &v.unknownFields 3180 default: 3181 return nil 3182 } 3183 } 3184 file_core_v1_core_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 3185 switch v := v.(*CaveatDefinition); i { 3186 case 0: 3187 return &v.state 3188 case 1: 3189 return &v.sizeCache 3190 case 2: 3191 return &v.unknownFields 3192 default: 3193 return nil 3194 } 3195 } 3196 file_core_v1_core_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 3197 switch v := v.(*CaveatTypeReference); i { 3198 case 0: 3199 return &v.state 3200 case 1: 3201 return &v.sizeCache 3202 case 2: 3203 return &v.unknownFields 3204 default: 3205 return nil 3206 } 3207 } 3208 file_core_v1_core_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 3209 switch v := v.(*ObjectAndRelation); i { 3210 case 0: 3211 return &v.state 3212 case 1: 3213 return &v.sizeCache 3214 case 2: 3215 return &v.unknownFields 3216 default: 3217 return nil 3218 } 3219 } 3220 file_core_v1_core_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 3221 switch v := v.(*RelationReference); i { 3222 case 0: 3223 return &v.state 3224 case 1: 3225 return &v.sizeCache 3226 case 2: 3227 return &v.unknownFields 3228 default: 3229 return nil 3230 } 3231 } 3232 file_core_v1_core_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 3233 switch v := v.(*Zookie); i { 3234 case 0: 3235 return &v.state 3236 case 1: 3237 return &v.sizeCache 3238 case 2: 3239 return &v.unknownFields 3240 default: 3241 return nil 3242 } 3243 } 3244 file_core_v1_core_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 3245 switch v := v.(*RelationTupleUpdate); i { 3246 case 0: 3247 return &v.state 3248 case 1: 3249 return &v.sizeCache 3250 case 2: 3251 return &v.unknownFields 3252 default: 3253 return nil 3254 } 3255 } 3256 file_core_v1_core_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 3257 switch v := v.(*RelationTupleTreeNode); i { 3258 case 0: 3259 return &v.state 3260 case 1: 3261 return &v.sizeCache 3262 case 2: 3263 return &v.unknownFields 3264 default: 3265 return nil 3266 } 3267 } 3268 file_core_v1_core_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 3269 switch v := v.(*SetOperationUserset); i { 3270 case 0: 3271 return &v.state 3272 case 1: 3273 return &v.sizeCache 3274 case 2: 3275 return &v.unknownFields 3276 default: 3277 return nil 3278 } 3279 } 3280 file_core_v1_core_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 3281 switch v := v.(*DirectSubject); i { 3282 case 0: 3283 return &v.state 3284 case 1: 3285 return &v.sizeCache 3286 case 2: 3287 return &v.unknownFields 3288 default: 3289 return nil 3290 } 3291 } 3292 file_core_v1_core_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 3293 switch v := v.(*DirectSubjects); i { 3294 case 0: 3295 return &v.state 3296 case 1: 3297 return &v.sizeCache 3298 case 2: 3299 return &v.unknownFields 3300 default: 3301 return nil 3302 } 3303 } 3304 file_core_v1_core_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 3305 switch v := v.(*Metadata); i { 3306 case 0: 3307 return &v.state 3308 case 1: 3309 return &v.sizeCache 3310 case 2: 3311 return &v.unknownFields 3312 default: 3313 return nil 3314 } 3315 } 3316 file_core_v1_core_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 3317 switch v := v.(*NamespaceDefinition); i { 3318 case 0: 3319 return &v.state 3320 case 1: 3321 return &v.sizeCache 3322 case 2: 3323 return &v.unknownFields 3324 default: 3325 return nil 3326 } 3327 } 3328 file_core_v1_core_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 3329 switch v := v.(*Relation); i { 3330 case 0: 3331 return &v.state 3332 case 1: 3333 return &v.sizeCache 3334 case 2: 3335 return &v.unknownFields 3336 default: 3337 return nil 3338 } 3339 } 3340 file_core_v1_core_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 3341 switch v := v.(*ReachabilityGraph); i { 3342 case 0: 3343 return &v.state 3344 case 1: 3345 return &v.sizeCache 3346 case 2: 3347 return &v.unknownFields 3348 default: 3349 return nil 3350 } 3351 } 3352 file_core_v1_core_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 3353 switch v := v.(*ReachabilityEntrypoints); i { 3354 case 0: 3355 return &v.state 3356 case 1: 3357 return &v.sizeCache 3358 case 2: 3359 return &v.unknownFields 3360 default: 3361 return nil 3362 } 3363 } 3364 file_core_v1_core_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 3365 switch v := v.(*ReachabilityEntrypoint); i { 3366 case 0: 3367 return &v.state 3368 case 1: 3369 return &v.sizeCache 3370 case 2: 3371 return &v.unknownFields 3372 default: 3373 return nil 3374 } 3375 } 3376 file_core_v1_core_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 3377 switch v := v.(*TypeInformation); i { 3378 case 0: 3379 return &v.state 3380 case 1: 3381 return &v.sizeCache 3382 case 2: 3383 return &v.unknownFields 3384 default: 3385 return nil 3386 } 3387 } 3388 file_core_v1_core_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 3389 switch v := v.(*AllowedRelation); i { 3390 case 0: 3391 return &v.state 3392 case 1: 3393 return &v.sizeCache 3394 case 2: 3395 return &v.unknownFields 3396 default: 3397 return nil 3398 } 3399 } 3400 file_core_v1_core_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 3401 switch v := v.(*AllowedCaveat); i { 3402 case 0: 3403 return &v.state 3404 case 1: 3405 return &v.sizeCache 3406 case 2: 3407 return &v.unknownFields 3408 default: 3409 return nil 3410 } 3411 } 3412 file_core_v1_core_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 3413 switch v := v.(*UsersetRewrite); i { 3414 case 0: 3415 return &v.state 3416 case 1: 3417 return &v.sizeCache 3418 case 2: 3419 return &v.unknownFields 3420 default: 3421 return nil 3422 } 3423 } 3424 file_core_v1_core_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 3425 switch v := v.(*SetOperation); i { 3426 case 0: 3427 return &v.state 3428 case 1: 3429 return &v.sizeCache 3430 case 2: 3431 return &v.unknownFields 3432 default: 3433 return nil 3434 } 3435 } 3436 file_core_v1_core_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 3437 switch v := v.(*TupleToUserset); i { 3438 case 0: 3439 return &v.state 3440 case 1: 3441 return &v.sizeCache 3442 case 2: 3443 return &v.unknownFields 3444 default: 3445 return nil 3446 } 3447 } 3448 file_core_v1_core_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 3449 switch v := v.(*ComputedUserset); i { 3450 case 0: 3451 return &v.state 3452 case 1: 3453 return &v.sizeCache 3454 case 2: 3455 return &v.unknownFields 3456 default: 3457 return nil 3458 } 3459 } 3460 file_core_v1_core_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 3461 switch v := v.(*SourcePosition); i { 3462 case 0: 3463 return &v.state 3464 case 1: 3465 return &v.sizeCache 3466 case 2: 3467 return &v.unknownFields 3468 default: 3469 return nil 3470 } 3471 } 3472 file_core_v1_core_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { 3473 switch v := v.(*CaveatExpression); i { 3474 case 0: 3475 return &v.state 3476 case 1: 3477 return &v.sizeCache 3478 case 2: 3479 return &v.unknownFields 3480 default: 3481 return nil 3482 } 3483 } 3484 file_core_v1_core_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 3485 switch v := v.(*CaveatOperation); i { 3486 case 0: 3487 return &v.state 3488 case 1: 3489 return &v.sizeCache 3490 case 2: 3491 return &v.unknownFields 3492 default: 3493 return nil 3494 } 3495 } 3496 file_core_v1_core_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { 3497 switch v := v.(*AllowedRelation_PublicWildcard); i { 3498 case 0: 3499 return &v.state 3500 case 1: 3501 return &v.sizeCache 3502 case 2: 3503 return &v.unknownFields 3504 default: 3505 return nil 3506 } 3507 } 3508 file_core_v1_core_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { 3509 switch v := v.(*SetOperation_Child); i { 3510 case 0: 3511 return &v.state 3512 case 1: 3513 return &v.sizeCache 3514 case 2: 3515 return &v.unknownFields 3516 default: 3517 return nil 3518 } 3519 } 3520 file_core_v1_core_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { 3521 switch v := v.(*SetOperation_Child_This); i { 3522 case 0: 3523 return &v.state 3524 case 1: 3525 return &v.sizeCache 3526 case 2: 3527 return &v.unknownFields 3528 default: 3529 return nil 3530 } 3531 } 3532 file_core_v1_core_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { 3533 switch v := v.(*SetOperation_Child_Nil); i { 3534 case 0: 3535 return &v.state 3536 case 1: 3537 return &v.sizeCache 3538 case 2: 3539 return &v.unknownFields 3540 default: 3541 return nil 3542 } 3543 } 3544 file_core_v1_core_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { 3545 switch v := v.(*TupleToUserset_Tupleset); i { 3546 case 0: 3547 return &v.state 3548 case 1: 3549 return &v.sizeCache 3550 case 2: 3551 return &v.unknownFields 3552 default: 3553 return nil 3554 } 3555 } 3556 } 3557 file_core_v1_core_proto_msgTypes[8].OneofWrappers = []interface{}{ 3558 (*RelationTupleTreeNode_IntermediateNode)(nil), 3559 (*RelationTupleTreeNode_LeafNode)(nil), 3560 } 3561 file_core_v1_core_proto_msgTypes[19].OneofWrappers = []interface{}{ 3562 (*AllowedRelation_Relation)(nil), 3563 (*AllowedRelation_PublicWildcard_)(nil), 3564 } 3565 file_core_v1_core_proto_msgTypes[21].OneofWrappers = []interface{}{ 3566 (*UsersetRewrite_Union)(nil), 3567 (*UsersetRewrite_Intersection)(nil), 3568 (*UsersetRewrite_Exclusion)(nil), 3569 } 3570 file_core_v1_core_proto_msgTypes[26].OneofWrappers = []interface{}{ 3571 (*CaveatExpression_Operation)(nil), 3572 (*CaveatExpression_Caveat)(nil), 3573 } 3574 file_core_v1_core_proto_msgTypes[32].OneofWrappers = []interface{}{ 3575 (*SetOperation_Child_XThis)(nil), 3576 (*SetOperation_Child_ComputedUserset)(nil), 3577 (*SetOperation_Child_TupleToUserset)(nil), 3578 (*SetOperation_Child_UsersetRewrite)(nil), 3579 (*SetOperation_Child_XNil)(nil), 3580 } 3581 type x struct{} 3582 out := protoimpl.TypeBuilder{ 3583 File: protoimpl.DescBuilder{ 3584 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 3585 RawDescriptor: file_core_v1_core_proto_rawDesc, 3586 NumEnums: 6, 3587 NumMessages: 36, 3588 NumExtensions: 0, 3589 NumServices: 0, 3590 }, 3591 GoTypes: file_core_v1_core_proto_goTypes, 3592 DependencyIndexes: file_core_v1_core_proto_depIdxs, 3593 EnumInfos: file_core_v1_core_proto_enumTypes, 3594 MessageInfos: file_core_v1_core_proto_msgTypes, 3595 }.Build() 3596 File_core_v1_core_proto = out.File 3597 file_core_v1_core_proto_rawDesc = nil 3598 file_core_v1_core_proto_goTypes = nil 3599 file_core_v1_core_proto_depIdxs = nil 3600 }