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  }