diff --git a/magefiles/gen.go b/magefiles/gen.go index ce39b53..928169b 100644 --- a/magefiles/gen.go +++ b/magefiles/gen.go @@ -24,7 +24,7 @@ func (g Gen) All() error { const ( ProtoPath = "proto/authzed/api" BufRepository = "buf.build/authzed/api" - BufTag = "80f6ef8af583b1a4de4ab7957e7f0a6e6ddf2904" + BufTag = "81d767dd7dc1566ebe956a0fabe05254605482d8" ) // Proto runs proto codegen diff --git a/proto/apidocs.swagger.json b/proto/apidocs.swagger.json index 447db73..885a640 100644 --- a/proto/apidocs.swagger.json +++ b/proto/apidocs.swagger.json @@ -45,6 +45,39 @@ "application/json" ], "paths": { + "/v1/experimental/countrelationships": { + "post": { + "summary": "EXPERIMENTAL: CountRelationships returns the count of relationships for *pre-registered* filter.", + "operationId": "ExperimentalService_ExperimentalCountRelationships", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ExperimentalCountRelationshipsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1ExperimentalCountRelationshipsRequest" + } + } + ], + "tags": [ + "ExperimentalService" + ] + } + }, "/v1/experimental/diffschema": { "post": { "summary": "EXPERIMENTAL: DiffSchema is an API that allows clients to request the difference between the\nspecified schema and the schema stored in SpiceDB. This is useful for clients that need to\nintrospect the schema of a SpiceDB instance.", @@ -211,6 +244,39 @@ ] } }, + "/v1/experimental/registerrelationshipcounter": { + "post": { + "summary": "EXPERIMENTAL: RegisterRelationshipCounter registers a new filter for counting relationships. A filter must be registered before\na count can be requested.", + "operationId": "ExperimentalService_ExperimentalRegisterRelationshipCounter", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ExperimentalRegisterRelationshipCounterResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1ExperimentalRegisterRelationshipCounterRequest" + } + } + ], + "tags": [ + "ExperimentalService" + ] + } + }, "/v1/experimental/relationships/bulkexport": { "post": { "summary": "BulkExportRelationships is the fastest path available to exporting\nrelationships from the server. It is resumable, and will return results\nin an order determined by the server.", @@ -289,6 +355,39 @@ ] } }, + "/v1/experimental/unregisterrelationshipcounter": { + "post": { + "summary": "EXPERIMENTAL: UnregisterRelationshipCounter unregisters an existing filter for counting relationships.", + "operationId": "ExperimentalService_ExperimentalUnregisterRelationshipCounter", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ExperimentalUnregisterRelationshipCounterResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1ExperimentalUnregisterRelationshipCounterRequest" + } + } + ], + "tags": [ + "ExperimentalService" + ] + } + }, "/v1/permissions/check": { "post": { "summary": "CheckPermission determines for a given resource whether a subject computes\nto having a permission or is a direct member of a particular relation.", @@ -1937,6 +2036,32 @@ } } }, + "v1ExperimentalCountRelationshipsRequest": { + "type": "object", + "properties": { + "consistency": { + "$ref": "#/definitions/v1Consistency", + "description": "consistency defines the consistency level for the count operation. If the\nrequested consistency is fully consistent or represents a zedtoken that is\nnot stored in the system, the count will be performed synchronously, which\ncan be *quite slow* for large datasets." + }, + "relationshipFilter": { + "$ref": "#/definitions/v1RelationshipFilter", + "description": "relationship_filter defines the filter to be applied to the relationships\nto be counted." + } + } + }, + "v1ExperimentalCountRelationshipsResponse": { + "type": "object", + "properties": { + "readAt": { + "$ref": "#/definitions/v1ZedToken", + "title": "read_at is the ZedToken at which the relationship count was performed" + }, + "relationshipCount": { + "type": "string", + "format": "uint64" + } + } + }, "v1ExperimentalDependentRelationsRequest": { "type": "object", "properties": { @@ -2035,6 +2160,29 @@ } } }, + "v1ExperimentalRegisterRelationshipCounterRequest": { + "type": "object", + "properties": { + "relationshipFilter": { + "$ref": "#/definitions/v1RelationshipFilter", + "description": "relationship_filter defines the filter to be applied to the relationships\nto be counted." + } + } + }, + "v1ExperimentalRegisterRelationshipCounterResponse": { + "type": "object" + }, + "v1ExperimentalUnregisterRelationshipCounterRequest": { + "type": "object", + "properties": { + "relationshipFilter": { + "$ref": "#/definitions/v1RelationshipFilter" + } + } + }, + "v1ExperimentalUnregisterRelationshipCounterResponse": { + "type": "object" + }, "v1LookupPermissionship": { "type": "string", "enum": [ diff --git a/proto/authzed/api/v0/zz_generated.version.go b/proto/authzed/api/v0/zz_generated.version.go index abea808..aacfc47 100644 --- a/proto/authzed/api/v0/zz_generated.version.go +++ b/proto/authzed/api/v0/zz_generated.version.go @@ -2,5 +2,5 @@ package v0 const ( BufRepository = "buf.build/authzed/api" - BufTag = "80f6ef8af583b1a4de4ab7957e7f0a6e6ddf2904" + BufTag = "81d767dd7dc1566ebe956a0fabe05254605482d8" ) diff --git a/proto/authzed/api/v1/error_reason.pb.go b/proto/authzed/api/v1/error_reason.pb.go index 1ecc6fa..fb0df2b 100644 --- a/proto/authzed/api/v1/error_reason.pb.go +++ b/proto/authzed/api/v1/error_reason.pb.go @@ -356,6 +356,26 @@ const ( // "metadata": {} // } ErrorReason_ERROR_REASON_EMPTY_PRECONDITION ErrorReason = 25 + // The request failed because the filter was already registered. + // + // Example of an ErrorInfo: + // + // { + // "reason": "ERROR_REASON_FILTER_ALREADY_REGISTERED", + // "domain": "authzed.com", + // "metadata": { ... filter fields ... } + // } + ErrorReason_ERROR_REASON_FILTER_ALREADY_REGISTERED ErrorReason = 26 + // The request failed because the filter was not registered. + // + // Example of an ErrorInfo: + // + // { + // "reason": "ERROR_REASON_FILTER_NOT_REGISTERED", + // "domain": "authzed.com", + // "metadata": { ... filter fields ... } + // } + ErrorReason_ERROR_REASON_FILTER_NOT_REGISTERED ErrorReason = 27 ) // Enum value maps for ErrorReason. @@ -387,6 +407,8 @@ var ( 23: "ERROR_REASON_INVALID_FILTER", 24: "ERROR_REASON_INMEMORY_TOO_MANY_CONCURRENT_UPDATES", 25: "ERROR_REASON_EMPTY_PRECONDITION", + 26: "ERROR_REASON_FILTER_ALREADY_REGISTERED", + 27: "ERROR_REASON_FILTER_NOT_REGISTERED", } ErrorReason_value = map[string]int32{ "ERROR_REASON_UNSPECIFIED": 0, @@ -415,6 +437,8 @@ var ( "ERROR_REASON_INVALID_FILTER": 23, "ERROR_REASON_INMEMORY_TOO_MANY_CONCURRENT_UPDATES": 24, "ERROR_REASON_EMPTY_PRECONDITION": 25, + "ERROR_REASON_FILTER_ALREADY_REGISTERED": 26, + "ERROR_REASON_FILTER_NOT_REGISTERED": 27, } ) @@ -451,7 +475,7 @@ var file_authzed_api_v1_error_reason_proto_rawDesc = []byte{ 0x0a, 0x21, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2a, 0xf4, 0x08, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, + 0x2e, 0x76, 0x31, 0x2a, 0xc8, 0x09, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, @@ -522,12 +546,18 @@ var file_authzed_api_v1_error_reason_proto_rawDesc = []byte{ 0x5f, 0x43, 0x4f, 0x4e, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x18, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x5f, 0x50, 0x52, 0x45, 0x43, - 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x19, 0x42, 0x4a, 0x0a, 0x12, 0x63, 0x6f, - 0x6d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x50, 0x01, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, - 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2d, 0x67, - 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x19, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, + 0x52, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, + 0x45, 0x52, 0x45, 0x44, 0x10, 0x1a, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, + 0x54, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x45, 0x44, 0x10, 0x1b, 0x42, 0x4a, + 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x65, 0x64, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x75, 0x74, 0x68, + 0x7a, 0x65, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/proto/authzed/api/v1/experimental_service.pb.go b/proto/authzed/api/v1/experimental_service.pb.go index 4c74db4..f882e26 100644 --- a/proto/authzed/api/v1/experimental_service.pb.go +++ b/proto/authzed/api/v1/experimental_service.pb.go @@ -24,6 +24,295 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type ExperimentalRegisterRelationshipCounterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // relationship_filter defines the filter to be applied to the relationships + // to be counted. + RelationshipFilter *RelationshipFilter `protobuf:"bytes,1,opt,name=relationship_filter,json=relationshipFilter,proto3" json:"relationship_filter,omitempty"` +} + +func (x *ExperimentalRegisterRelationshipCounterRequest) Reset() { + *x = ExperimentalRegisterRelationshipCounterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExperimentalRegisterRelationshipCounterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExperimentalRegisterRelationshipCounterRequest) ProtoMessage() {} + +func (x *ExperimentalRegisterRelationshipCounterRequest) ProtoReflect() protoreflect.Message { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExperimentalRegisterRelationshipCounterRequest.ProtoReflect.Descriptor instead. +func (*ExperimentalRegisterRelationshipCounterRequest) Descriptor() ([]byte, []int) { + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{0} +} + +func (x *ExperimentalRegisterRelationshipCounterRequest) GetRelationshipFilter() *RelationshipFilter { + if x != nil { + return x.RelationshipFilter + } + return nil +} + +type ExperimentalRegisterRelationshipCounterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ExperimentalRegisterRelationshipCounterResponse) Reset() { + *x = ExperimentalRegisterRelationshipCounterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExperimentalRegisterRelationshipCounterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExperimentalRegisterRelationshipCounterResponse) ProtoMessage() {} + +func (x *ExperimentalRegisterRelationshipCounterResponse) ProtoReflect() protoreflect.Message { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExperimentalRegisterRelationshipCounterResponse.ProtoReflect.Descriptor instead. +func (*ExperimentalRegisterRelationshipCounterResponse) Descriptor() ([]byte, []int) { + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{1} +} + +type ExperimentalCountRelationshipsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // consistency defines the consistency level for the count operation. If the + // requested consistency is fully consistent or represents a zedtoken that is + // not stored in the system, the count will be performed synchronously, which + // can be *quite slow* for large datasets. + Consistency *Consistency `protobuf:"bytes,1,opt,name=consistency,proto3" json:"consistency,omitempty"` + // relationship_filter defines the filter to be applied to the relationships + // to be counted. + RelationshipFilter *RelationshipFilter `protobuf:"bytes,2,opt,name=relationship_filter,json=relationshipFilter,proto3" json:"relationship_filter,omitempty"` +} + +func (x *ExperimentalCountRelationshipsRequest) Reset() { + *x = ExperimentalCountRelationshipsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExperimentalCountRelationshipsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExperimentalCountRelationshipsRequest) ProtoMessage() {} + +func (x *ExperimentalCountRelationshipsRequest) ProtoReflect() protoreflect.Message { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExperimentalCountRelationshipsRequest.ProtoReflect.Descriptor instead. +func (*ExperimentalCountRelationshipsRequest) Descriptor() ([]byte, []int) { + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{2} +} + +func (x *ExperimentalCountRelationshipsRequest) GetConsistency() *Consistency { + if x != nil { + return x.Consistency + } + return nil +} + +func (x *ExperimentalCountRelationshipsRequest) GetRelationshipFilter() *RelationshipFilter { + if x != nil { + return x.RelationshipFilter + } + return nil +} + +type ExperimentalCountRelationshipsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // read_at is the ZedToken at which the relationship count was performed + ReadAt *ZedToken `protobuf:"bytes,1,opt,name=read_at,json=readAt,proto3" json:"read_at,omitempty"` + RelationshipCount uint64 `protobuf:"varint,2,opt,name=relationship_count,json=relationshipCount,proto3" json:"relationship_count,omitempty"` +} + +func (x *ExperimentalCountRelationshipsResponse) Reset() { + *x = ExperimentalCountRelationshipsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExperimentalCountRelationshipsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExperimentalCountRelationshipsResponse) ProtoMessage() {} + +func (x *ExperimentalCountRelationshipsResponse) ProtoReflect() protoreflect.Message { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExperimentalCountRelationshipsResponse.ProtoReflect.Descriptor instead. +func (*ExperimentalCountRelationshipsResponse) Descriptor() ([]byte, []int) { + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{3} +} + +func (x *ExperimentalCountRelationshipsResponse) GetReadAt() *ZedToken { + if x != nil { + return x.ReadAt + } + return nil +} + +func (x *ExperimentalCountRelationshipsResponse) GetRelationshipCount() uint64 { + if x != nil { + return x.RelationshipCount + } + return 0 +} + +type ExperimentalUnregisterRelationshipCounterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RelationshipFilter *RelationshipFilter `protobuf:"bytes,1,opt,name=relationship_filter,json=relationshipFilter,proto3" json:"relationship_filter,omitempty"` +} + +func (x *ExperimentalUnregisterRelationshipCounterRequest) Reset() { + *x = ExperimentalUnregisterRelationshipCounterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExperimentalUnregisterRelationshipCounterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExperimentalUnregisterRelationshipCounterRequest) ProtoMessage() {} + +func (x *ExperimentalUnregisterRelationshipCounterRequest) ProtoReflect() protoreflect.Message { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExperimentalUnregisterRelationshipCounterRequest.ProtoReflect.Descriptor instead. +func (*ExperimentalUnregisterRelationshipCounterRequest) Descriptor() ([]byte, []int) { + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{4} +} + +func (x *ExperimentalUnregisterRelationshipCounterRequest) GetRelationshipFilter() *RelationshipFilter { + if x != nil { + return x.RelationshipFilter + } + return nil +} + +type ExperimentalUnregisterRelationshipCounterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ExperimentalUnregisterRelationshipCounterResponse) Reset() { + *x = ExperimentalUnregisterRelationshipCounterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExperimentalUnregisterRelationshipCounterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExperimentalUnregisterRelationshipCounterResponse) ProtoMessage() {} + +func (x *ExperimentalUnregisterRelationshipCounterResponse) ProtoReflect() protoreflect.Message { + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExperimentalUnregisterRelationshipCounterResponse.ProtoReflect.Descriptor instead. +func (*ExperimentalUnregisterRelationshipCounterResponse) Descriptor() ([]byte, []int) { + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{5} +} + // NOTE: Deprecated now that BulkCheckPermission has been promoted to the stable API as "CheckBulkPermission". type BulkCheckPermissionRequest struct { state protoimpl.MessageState @@ -38,7 +327,7 @@ type BulkCheckPermissionRequest struct { func (x *BulkCheckPermissionRequest) Reset() { *x = BulkCheckPermissionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[0] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -51,7 +340,7 @@ func (x *BulkCheckPermissionRequest) String() string { func (*BulkCheckPermissionRequest) ProtoMessage() {} func (x *BulkCheckPermissionRequest) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[0] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -64,7 +353,7 @@ func (x *BulkCheckPermissionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkCheckPermissionRequest.ProtoReflect.Descriptor instead. func (*BulkCheckPermissionRequest) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{0} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{6} } func (x *BulkCheckPermissionRequest) GetConsistency() *Consistency { @@ -96,7 +385,7 @@ type BulkCheckPermissionRequestItem struct { func (x *BulkCheckPermissionRequestItem) Reset() { *x = BulkCheckPermissionRequestItem{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[1] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -109,7 +398,7 @@ func (x *BulkCheckPermissionRequestItem) String() string { func (*BulkCheckPermissionRequestItem) ProtoMessage() {} func (x *BulkCheckPermissionRequestItem) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[1] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -122,7 +411,7 @@ func (x *BulkCheckPermissionRequestItem) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkCheckPermissionRequestItem.ProtoReflect.Descriptor instead. func (*BulkCheckPermissionRequestItem) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{1} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{7} } func (x *BulkCheckPermissionRequestItem) GetResource() *ObjectReference { @@ -165,7 +454,7 @@ type BulkCheckPermissionResponse struct { func (x *BulkCheckPermissionResponse) Reset() { *x = BulkCheckPermissionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[2] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -178,7 +467,7 @@ func (x *BulkCheckPermissionResponse) String() string { func (*BulkCheckPermissionResponse) ProtoMessage() {} func (x *BulkCheckPermissionResponse) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[2] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -191,7 +480,7 @@ func (x *BulkCheckPermissionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkCheckPermissionResponse.ProtoReflect.Descriptor instead. func (*BulkCheckPermissionResponse) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{2} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{8} } func (x *BulkCheckPermissionResponse) GetCheckedAt() *ZedToken { @@ -224,7 +513,7 @@ type BulkCheckPermissionPair struct { func (x *BulkCheckPermissionPair) Reset() { *x = BulkCheckPermissionPair{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[3] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -237,7 +526,7 @@ func (x *BulkCheckPermissionPair) String() string { func (*BulkCheckPermissionPair) ProtoMessage() {} func (x *BulkCheckPermissionPair) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[3] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -250,7 +539,7 @@ func (x *BulkCheckPermissionPair) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkCheckPermissionPair.ProtoReflect.Descriptor instead. func (*BulkCheckPermissionPair) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{3} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{9} } func (x *BulkCheckPermissionPair) GetRequest() *BulkCheckPermissionRequestItem { @@ -309,7 +598,7 @@ type BulkCheckPermissionResponseItem struct { func (x *BulkCheckPermissionResponseItem) Reset() { *x = BulkCheckPermissionResponseItem{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[4] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -322,7 +611,7 @@ func (x *BulkCheckPermissionResponseItem) String() string { func (*BulkCheckPermissionResponseItem) ProtoMessage() {} func (x *BulkCheckPermissionResponseItem) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[4] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -335,7 +624,7 @@ func (x *BulkCheckPermissionResponseItem) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkCheckPermissionResponseItem.ProtoReflect.Descriptor instead. func (*BulkCheckPermissionResponseItem) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{4} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{10} } func (x *BulkCheckPermissionResponseItem) GetPermissionship() CheckPermissionResponse_Permissionship { @@ -367,7 +656,7 @@ type BulkImportRelationshipsRequest struct { func (x *BulkImportRelationshipsRequest) Reset() { *x = BulkImportRelationshipsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[5] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -380,7 +669,7 @@ func (x *BulkImportRelationshipsRequest) String() string { func (*BulkImportRelationshipsRequest) ProtoMessage() {} func (x *BulkImportRelationshipsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[5] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -393,7 +682,7 @@ func (x *BulkImportRelationshipsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkImportRelationshipsRequest.ProtoReflect.Descriptor instead. func (*BulkImportRelationshipsRequest) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{5} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{11} } func (x *BulkImportRelationshipsRequest) GetRelationships() []*Relationship { @@ -416,7 +705,7 @@ type BulkImportRelationshipsResponse struct { func (x *BulkImportRelationshipsResponse) Reset() { *x = BulkImportRelationshipsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[6] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -429,7 +718,7 @@ func (x *BulkImportRelationshipsResponse) String() string { func (*BulkImportRelationshipsResponse) ProtoMessage() {} func (x *BulkImportRelationshipsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[6] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -442,7 +731,7 @@ func (x *BulkImportRelationshipsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkImportRelationshipsResponse.ProtoReflect.Descriptor instead. func (*BulkImportRelationshipsResponse) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{6} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{12} } func (x *BulkImportRelationshipsResponse) GetNumLoaded() uint64 { @@ -477,7 +766,7 @@ type BulkExportRelationshipsRequest struct { func (x *BulkExportRelationshipsRequest) Reset() { *x = BulkExportRelationshipsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[7] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -490,7 +779,7 @@ func (x *BulkExportRelationshipsRequest) String() string { func (*BulkExportRelationshipsRequest) ProtoMessage() {} func (x *BulkExportRelationshipsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[7] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -503,7 +792,7 @@ func (x *BulkExportRelationshipsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkExportRelationshipsRequest.ProtoReflect.Descriptor instead. func (*BulkExportRelationshipsRequest) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{7} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{13} } func (x *BulkExportRelationshipsRequest) GetConsistency() *Consistency { @@ -550,7 +839,7 @@ type BulkExportRelationshipsResponse struct { func (x *BulkExportRelationshipsResponse) Reset() { *x = BulkExportRelationshipsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[8] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -563,7 +852,7 @@ func (x *BulkExportRelationshipsResponse) String() string { func (*BulkExportRelationshipsResponse) ProtoMessage() {} func (x *BulkExportRelationshipsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[8] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -576,7 +865,7 @@ func (x *BulkExportRelationshipsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use BulkExportRelationshipsResponse.ProtoReflect.Descriptor instead. func (*BulkExportRelationshipsResponse) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{8} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{14} } func (x *BulkExportRelationshipsResponse) GetAfterResultCursor() *Cursor { @@ -607,7 +896,7 @@ type ExperimentalReflectSchemaRequest struct { func (x *ExperimentalReflectSchemaRequest) Reset() { *x = ExperimentalReflectSchemaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[9] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -620,7 +909,7 @@ func (x *ExperimentalReflectSchemaRequest) String() string { func (*ExperimentalReflectSchemaRequest) ProtoMessage() {} func (x *ExperimentalReflectSchemaRequest) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[9] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -633,7 +922,7 @@ func (x *ExperimentalReflectSchemaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ExperimentalReflectSchemaRequest.ProtoReflect.Descriptor instead. func (*ExperimentalReflectSchemaRequest) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{9} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{15} } func (x *ExperimentalReflectSchemaRequest) GetConsistency() *Consistency { @@ -666,7 +955,7 @@ type ExperimentalReflectSchemaResponse struct { func (x *ExperimentalReflectSchemaResponse) Reset() { *x = ExperimentalReflectSchemaResponse{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[10] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -679,7 +968,7 @@ func (x *ExperimentalReflectSchemaResponse) String() string { func (*ExperimentalReflectSchemaResponse) ProtoMessage() {} func (x *ExperimentalReflectSchemaResponse) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[10] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -692,7 +981,7 @@ func (x *ExperimentalReflectSchemaResponse) ProtoReflect() protoreflect.Message // Deprecated: Use ExperimentalReflectSchemaResponse.ProtoReflect.Descriptor instead. func (*ExperimentalReflectSchemaResponse) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{10} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{16} } func (x *ExperimentalReflectSchemaResponse) GetDefinitions() []*ExpDefinition { @@ -735,7 +1024,7 @@ type ExpSchemaFilter struct { func (x *ExpSchemaFilter) Reset() { *x = ExpSchemaFilter{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[11] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -748,7 +1037,7 @@ func (x *ExpSchemaFilter) String() string { func (*ExpSchemaFilter) ProtoMessage() {} func (x *ExpSchemaFilter) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[11] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -761,7 +1050,7 @@ func (x *ExpSchemaFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpSchemaFilter.ProtoReflect.Descriptor instead. func (*ExpSchemaFilter) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{11} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{17} } func (x *ExpSchemaFilter) GetOptionalDefinitionNameFilter() string { @@ -809,7 +1098,7 @@ type ExpDefinition struct { func (x *ExpDefinition) Reset() { *x = ExpDefinition{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[12] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -822,7 +1111,7 @@ func (x *ExpDefinition) String() string { func (*ExpDefinition) ProtoMessage() {} func (x *ExpDefinition) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[12] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -835,7 +1124,7 @@ func (x *ExpDefinition) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpDefinition.ProtoReflect.Descriptor instead. func (*ExpDefinition) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{12} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{18} } func (x *ExpDefinition) GetName() string { @@ -883,7 +1172,7 @@ type ExpCaveat struct { func (x *ExpCaveat) Reset() { *x = ExpCaveat{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[13] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -896,7 +1185,7 @@ func (x *ExpCaveat) String() string { func (*ExpCaveat) ProtoMessage() {} func (x *ExpCaveat) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[13] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -909,7 +1198,7 @@ func (x *ExpCaveat) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpCaveat.ProtoReflect.Descriptor instead. func (*ExpCaveat) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{13} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{19} } func (x *ExpCaveat) GetName() string { @@ -956,7 +1245,7 @@ type ExpCaveatParameter struct { func (x *ExpCaveatParameter) Reset() { *x = ExpCaveatParameter{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[14] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -969,7 +1258,7 @@ func (x *ExpCaveatParameter) String() string { func (*ExpCaveatParameter) ProtoMessage() {} func (x *ExpCaveatParameter) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[14] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -982,7 +1271,7 @@ func (x *ExpCaveatParameter) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpCaveatParameter.ProtoReflect.Descriptor instead. func (*ExpCaveatParameter) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{14} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{20} } func (x *ExpCaveatParameter) GetName() string { @@ -1021,7 +1310,7 @@ type ExpRelation struct { func (x *ExpRelation) Reset() { *x = ExpRelation{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[15] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1034,7 +1323,7 @@ func (x *ExpRelation) String() string { func (*ExpRelation) ProtoMessage() {} func (x *ExpRelation) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[15] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1047,7 +1336,7 @@ func (x *ExpRelation) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpRelation.ProtoReflect.Descriptor instead. func (*ExpRelation) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{15} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{21} } func (x *ExpRelation) GetName() string { @@ -1099,7 +1388,7 @@ type ExpTypeReference struct { func (x *ExpTypeReference) Reset() { *x = ExpTypeReference{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[16] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1112,7 +1401,7 @@ func (x *ExpTypeReference) String() string { func (*ExpTypeReference) ProtoMessage() {} func (x *ExpTypeReference) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[16] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1125,7 +1414,7 @@ func (x *ExpTypeReference) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpTypeReference.ProtoReflect.Descriptor instead. func (*ExpTypeReference) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{16} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{22} } func (x *ExpTypeReference) GetSubjectDefinitionName() string { @@ -1211,7 +1500,7 @@ type ExpPermission struct { func (x *ExpPermission) Reset() { *x = ExpPermission{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[17] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1224,7 +1513,7 @@ func (x *ExpPermission) String() string { func (*ExpPermission) ProtoMessage() {} func (x *ExpPermission) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[17] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1237,7 +1526,7 @@ func (x *ExpPermission) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpPermission.ProtoReflect.Descriptor instead. func (*ExpPermission) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{17} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{23} } func (x *ExpPermission) GetName() string { @@ -1278,7 +1567,7 @@ type ExperimentalComputablePermissionsRequest struct { func (x *ExperimentalComputablePermissionsRequest) Reset() { *x = ExperimentalComputablePermissionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[18] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1291,7 +1580,7 @@ func (x *ExperimentalComputablePermissionsRequest) String() string { func (*ExperimentalComputablePermissionsRequest) ProtoMessage() {} func (x *ExperimentalComputablePermissionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[18] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1304,7 +1593,7 @@ func (x *ExperimentalComputablePermissionsRequest) ProtoReflect() protoreflect.M // Deprecated: Use ExperimentalComputablePermissionsRequest.ProtoReflect.Descriptor instead. func (*ExperimentalComputablePermissionsRequest) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{18} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{24} } func (x *ExperimentalComputablePermissionsRequest) GetConsistency() *Consistency { @@ -1349,7 +1638,7 @@ type ExpRelationReference struct { func (x *ExpRelationReference) Reset() { *x = ExpRelationReference{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[19] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1362,7 +1651,7 @@ func (x *ExpRelationReference) String() string { func (*ExpRelationReference) ProtoMessage() {} func (x *ExpRelationReference) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[19] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1375,7 +1664,7 @@ func (x *ExpRelationReference) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpRelationReference.ProtoReflect.Descriptor instead. func (*ExpRelationReference) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{19} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{25} } func (x *ExpRelationReference) GetDefinitionName() string { @@ -1412,7 +1701,7 @@ type ExperimentalComputablePermissionsResponse struct { func (x *ExperimentalComputablePermissionsResponse) Reset() { *x = ExperimentalComputablePermissionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[20] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1425,7 +1714,7 @@ func (x *ExperimentalComputablePermissionsResponse) String() string { func (*ExperimentalComputablePermissionsResponse) ProtoMessage() {} func (x *ExperimentalComputablePermissionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[20] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1438,7 +1727,7 @@ func (x *ExperimentalComputablePermissionsResponse) ProtoReflect() protoreflect. // Deprecated: Use ExperimentalComputablePermissionsResponse.ProtoReflect.Descriptor instead. func (*ExperimentalComputablePermissionsResponse) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{20} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{26} } func (x *ExperimentalComputablePermissionsResponse) GetPermissions() []*ExpRelationReference { @@ -1468,7 +1757,7 @@ type ExperimentalDependentRelationsRequest struct { func (x *ExperimentalDependentRelationsRequest) Reset() { *x = ExperimentalDependentRelationsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[21] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1481,7 +1770,7 @@ func (x *ExperimentalDependentRelationsRequest) String() string { func (*ExperimentalDependentRelationsRequest) ProtoMessage() {} func (x *ExperimentalDependentRelationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[21] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1494,7 +1783,7 @@ func (x *ExperimentalDependentRelationsRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use ExperimentalDependentRelationsRequest.ProtoReflect.Descriptor instead. func (*ExperimentalDependentRelationsRequest) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{21} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{27} } func (x *ExperimentalDependentRelationsRequest) GetConsistency() *Consistency { @@ -1531,7 +1820,7 @@ type ExperimentalDependentRelationsResponse struct { func (x *ExperimentalDependentRelationsResponse) Reset() { *x = ExperimentalDependentRelationsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[22] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1544,7 +1833,7 @@ func (x *ExperimentalDependentRelationsResponse) String() string { func (*ExperimentalDependentRelationsResponse) ProtoMessage() {} func (x *ExperimentalDependentRelationsResponse) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[22] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1557,7 +1846,7 @@ func (x *ExperimentalDependentRelationsResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use ExperimentalDependentRelationsResponse.ProtoReflect.Descriptor instead. func (*ExperimentalDependentRelationsResponse) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{22} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{28} } func (x *ExperimentalDependentRelationsResponse) GetRelations() []*ExpRelationReference { @@ -1586,7 +1875,7 @@ type ExperimentalDiffSchemaRequest struct { func (x *ExperimentalDiffSchemaRequest) Reset() { *x = ExperimentalDiffSchemaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[23] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1599,7 +1888,7 @@ func (x *ExperimentalDiffSchemaRequest) String() string { func (*ExperimentalDiffSchemaRequest) ProtoMessage() {} func (x *ExperimentalDiffSchemaRequest) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[23] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1612,7 +1901,7 @@ func (x *ExperimentalDiffSchemaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ExperimentalDiffSchemaRequest.ProtoReflect.Descriptor instead. func (*ExperimentalDiffSchemaRequest) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{23} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{29} } func (x *ExperimentalDiffSchemaRequest) GetConsistency() *Consistency { @@ -1642,7 +1931,7 @@ type ExperimentalDiffSchemaResponse struct { func (x *ExperimentalDiffSchemaResponse) Reset() { *x = ExperimentalDiffSchemaResponse{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[24] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1655,7 +1944,7 @@ func (x *ExperimentalDiffSchemaResponse) String() string { func (*ExperimentalDiffSchemaResponse) ProtoMessage() {} func (x *ExperimentalDiffSchemaResponse) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[24] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1668,7 +1957,7 @@ func (x *ExperimentalDiffSchemaResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ExperimentalDiffSchemaResponse.ProtoReflect.Descriptor instead. func (*ExperimentalDiffSchemaResponse) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{24} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{30} } func (x *ExperimentalDiffSchemaResponse) GetDiffs() []*ExpSchemaDiff { @@ -1697,7 +1986,7 @@ type ExpRelationSubjectTypeChange struct { func (x *ExpRelationSubjectTypeChange) Reset() { *x = ExpRelationSubjectTypeChange{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[25] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1710,7 +1999,7 @@ func (x *ExpRelationSubjectTypeChange) String() string { func (*ExpRelationSubjectTypeChange) ProtoMessage() {} func (x *ExpRelationSubjectTypeChange) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[25] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1723,7 +2012,7 @@ func (x *ExpRelationSubjectTypeChange) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpRelationSubjectTypeChange.ProtoReflect.Descriptor instead. func (*ExpRelationSubjectTypeChange) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{25} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{31} } func (x *ExpRelationSubjectTypeChange) GetRelation() *ExpRelation { @@ -1752,7 +2041,7 @@ type ExpCaveatParameterTypeChange struct { func (x *ExpCaveatParameterTypeChange) Reset() { *x = ExpCaveatParameterTypeChange{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[26] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1765,7 +2054,7 @@ func (x *ExpCaveatParameterTypeChange) String() string { func (*ExpCaveatParameterTypeChange) ProtoMessage() {} func (x *ExpCaveatParameterTypeChange) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[26] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1778,7 +2067,7 @@ func (x *ExpCaveatParameterTypeChange) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpCaveatParameterTypeChange.ProtoReflect.Descriptor instead. func (*ExpCaveatParameterTypeChange) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{26} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{32} } func (x *ExpCaveatParameterTypeChange) GetParameter() *ExpCaveatParameter { @@ -1828,7 +2117,7 @@ type ExpSchemaDiff struct { func (x *ExpSchemaDiff) Reset() { *x = ExpSchemaDiff{} if protoimpl.UnsafeEnabled { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[27] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1841,7 +2130,7 @@ func (x *ExpSchemaDiff) String() string { func (*ExpSchemaDiff) ProtoMessage() {} func (x *ExpSchemaDiff) ProtoReflect() protoreflect.Message { - mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[27] + mi := &file_authzed_api_v1_experimental_service_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1854,7 +2143,7 @@ func (x *ExpSchemaDiff) ProtoReflect() protoreflect.Message { // Deprecated: Use ExpSchemaDiff.ProtoReflect.Descriptor instead. func (*ExpSchemaDiff) Descriptor() ([]byte, []int) { - return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{27} + return file_authzed_api_v1_experimental_service_proto_rawDescGZIP(), []int{33} } func (m *ExpSchemaDiff) GetDiff() isExpSchemaDiff_Diff { @@ -2132,230 +2421,312 @@ var file_authzed_api_v1_experimental_service_proto_rawDesc = []byte{ 0x65, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x27, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb2, 0x01, - 0x0a, 0x1a, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0b, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8f, 0x01, + 0x0a, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, + 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x5d, 0x0a, 0x13, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, + 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x12, 0x72, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, + 0x31, 0x0a, 0x2f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x68, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x25, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0b, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x55, 0x0a, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x0f, 0xfa, 0x42, 0x0a, 0x92, - 0x01, 0x07, 0x22, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x18, 0x01, 0x52, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x22, 0xb6, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x45, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x5d, 0x0a, 0x13, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, + 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x45, + 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x06, 0x72, 0x65, 0x61, 0x64, + 0x41, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, + 0x69, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x91, 0x01, 0x0a, 0x30, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x6c, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5d, 0x0a, 0x13, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, + 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, + 0x01, 0x52, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x33, 0x0a, 0x31, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x1a, 0x42, + 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x55, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, + 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x0f, 0xfa, 0x42, 0x0a, 0x92, 0x01, 0x07, 0x22, + 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x18, 0x01, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, + 0xb6, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x45, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, + 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xfa, + 0x42, 0x27, 0x72, 0x25, 0x28, 0x40, 0x32, 0x21, 0x5e, 0x28, 0x5b, 0x61, 0x2d, 0x7a, 0x5d, 0x5b, + 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, 0x7d, 0x5b, 0x61, + 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, - 0x10, 0x01, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0a, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x2a, 0xfa, 0x42, 0x27, 0x72, 0x25, 0x28, 0x40, 0x32, 0x21, 0x5e, 0x28, 0x5b, 0x61, 0x2d, - 0x7a, 0x5d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5f, 0x5d, 0x7b, 0x31, 0x2c, 0x36, 0x32, - 0x7d, 0x5b, 0x61, 0x2d, 0x7a, 0x30, 0x2d, 0x39, 0x5d, 0x29, 0x3f, 0x24, 0x52, 0x0a, 0x70, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0xfa, 0x42, 0x05, - 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3b, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, - 0x10, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xae, 0x01, 0x0a, 0x1b, - 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x18, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x5a, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, - 0x02, 0x10, 0x00, 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4c, - 0x0a, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x10, 0x01, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x00, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xae, 0x01, 0x0a, 0x1b, 0x42, 0x75, 0x6c, + 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x65, + 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x00, + 0x52, 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x74, 0x12, 0x4c, 0x0a, 0x05, 0x70, + 0x61, 0x69, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x69, 0x72, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x92, 0x01, 0x07, 0x22, 0x05, 0x8a, 0x01, 0x02, + 0x10, 0x01, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0xe2, 0x01, 0x0a, 0x17, 0x42, 0x75, + 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x69, 0x72, 0x12, 0x48, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x45, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x92, 0x01, 0x07, 0x22, 0x05, - 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0xe2, 0x01, 0x0a, - 0x17, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x12, 0x48, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x48, 0x00, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xea, 0x01, 0x0a, 0x1f, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x6a, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x68, 0x69, 0x70, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, - 0x00, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, - 0x70, 0x12, 0x5b, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x76, - 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x00, 0x52, 0x11, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x73, - 0x0a, 0x1e, 0x42, 0x75, 0x6c, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x51, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x68, 0x69, 0x70, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x92, 0x01, 0x07, 0x22, 0x05, 0x8a, - 0x01, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, - 0x69, 0x70, 0x73, 0x22, 0x40, 0x0a, 0x1f, 0x42, 0x75, 0x6c, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x48, 0x00, + 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, + 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xea, + 0x01, 0x0a, 0x1f, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x6a, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x68, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x68, + 0x69, 0x70, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x82, 0x01, 0x04, 0x10, 0x01, 0x20, 0x00, 0x52, 0x0e, + 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x12, 0x5b, + 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x00, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, + 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x73, 0x0a, 0x1e, 0x42, + 0x75, 0x6c, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, + 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, + 0x69, 0x70, 0x42, 0x0d, 0xfa, 0x42, 0x0a, 0x92, 0x01, 0x07, 0x22, 0x05, 0x8a, 0x01, 0x02, 0x10, + 0x01, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, + 0x22, 0x40, 0x0a, 0x1f, 0x42, 0x75, 0x6c, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x4c, 0x6f, 0x61, 0x64, + 0x65, 0x64, 0x22, 0xb6, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x5f, 0x6c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x75, 0x6d, 0x4c, - 0x6f, 0x61, 0x64, 0x65, 0x64, 0x22, 0xb6, 0x02, 0x0a, 0x1e, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x2a, 0x02, 0x28, 0x00, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3f, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2e, 0x0a, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x2a, 0x02, 0x28, 0x00, 0x52, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3f, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x64, 0x0a, 0x1c, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, - 0x70, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x0e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, + 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x64, 0x0a, 0x1c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x1a, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xad, 0x01, 0x0a, 0x1f, + 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x46, 0x0a, 0x13, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, + 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, + 0x72, 0x73, 0x6f, 0x72, 0x52, 0x11, 0x61, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x52, 0x1a, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xad, - 0x01, 0x0a, 0x1f, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x46, 0x0a, 0x13, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x5f, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x11, 0x61, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0d, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x52, - 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x22, 0xad, - 0x01, 0x0a, 0x20, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, - 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x12, 0x4a, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, - 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0xcc, - 0x01, 0x0a, 0x21, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, - 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, - 0x74, 0x52, 0x07, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x65, 0x64, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x64, 0x41, 0x74, 0x22, 0xa1, 0x02, - 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x12, 0x45, 0x0a, 0x1f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x1b, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x1d, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x1f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x1c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0b, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9d, 0x01, - 0x0a, 0x09, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, - 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0x0a, - 0x12, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, - 0x61, 0x76, 0x65, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x45, 0x78, - 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, - 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x75, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x61, - 0x76, 0x65, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x12, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x11, 0x69, 0x73, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x75, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, - 0x12, 0x69, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x77, 0x69, 0x6c, 0x64, 0x63, - 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x73, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x42, 0x09, 0x0a, - 0x07, 0x74, 0x79, 0x70, 0x65, 0x72, 0x65, 0x66, 0x22, 0x73, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x52, 0x0d, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x20, + 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x6c, + 0x65, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, + 0x4a, 0x0a, 0x10, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0xcc, 0x01, 0x0a, 0x21, + 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x6c, + 0x65, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x52, 0x07, + 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x65, 0x64, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x64, 0x41, 0x74, 0x22, 0xa1, 0x02, 0x0a, 0x0f, 0x45, + 0x78, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x45, + 0x0a, 0x1f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x1b, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x5f, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x18, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x1d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1a, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x1f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x1c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xb9, + 0x01, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x39, + 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, + 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x0b, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x78, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x70, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9d, 0x01, 0x0a, 0x09, 0x45, + 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, + 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, + 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0x0a, 0x12, 0x45, 0x78, + 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x76, 0x65, + 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x73, 0x75, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x10, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, - 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xfe, 0x01, - 0x0a, 0x28, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, - 0x6d, 0x70, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, + 0x0a, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x76, 0x65, 0x61, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x30, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x5f, + 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x11, 0x69, 0x73, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x69, 0x73, + 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x10, 0x69, 0x73, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x74, 0x79, + 0x70, 0x65, 0x72, 0x65, 0x66, 0x22, 0x73, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x50, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x28, 0x45, + 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x1f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1c, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x89, 0x01, 0x0a, 0x14, + 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, + 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x29, 0x45, 0x78, 0x70, 0x65, + 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x5a, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x64, 0x41, 0x74, + 0x22, 0xb8, 0x01, 0x0a, 0x25, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, @@ -2363,284 +2734,290 @@ var file_authzed_api_v1_experimental_service_proto_rawDesc = []byte{ 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x1f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x1c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x89, - 0x01, 0x0a, 0x14, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, - 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, 0x0a, 0x29, 0x45, - 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, - 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x26, + 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, + 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x65, 0x64, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x64, 0x41, 0x74, 0x22, 0x8b, 0x01, + 0x0a, 0x1d, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x69, + 0x66, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2b, + 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x61, + 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x88, 0x01, 0x0a, 0x1e, + 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x69, 0x66, 0x66, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, + 0x0a, 0x05, 0x64, 0x69, 0x66, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x5a, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, - 0x64, 0x41, 0x74, 0x22, 0xb8, 0x01, 0x0a, 0x25, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, - 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x52, - 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, - 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9f, - 0x01, 0x0a, 0x26, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, - 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, - 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x78, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x69, 0x66, 0x66, 0x52, 0x05, 0x64, 0x69, + 0x66, 0x66, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, + 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, + 0x72, 0x65, 0x61, 0x64, 0x41, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x1c, 0x45, 0x78, 0x70, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x52, 0x0a, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x73, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x5a, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x64, 0x41, 0x74, - 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x44, 0x69, 0x66, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x5f, - 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x88, - 0x01, 0x0a, 0x1e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, - 0x69, 0x66, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x33, 0x0a, 0x05, 0x64, 0x69, 0x66, 0x66, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x78, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x69, 0x66, 0x66, 0x52, - 0x05, 0x64, 0x69, 0x66, 0x66, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, - 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x5a, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x64, 0x41, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x1c, 0x45, 0x78, - 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x72, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, + 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x1c, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, + 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, + 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa0, 0x0d, 0x0a, + 0x0d, 0x45, 0x78, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x69, 0x66, 0x66, 0x12, 0x4a, + 0x0a, 0x10, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x12, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x1e, 0x64, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x63, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x1b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x6f, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x12, 0x44, 0x0a, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x10, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x12, 0x5e, 0x0a, 0x1c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x63, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, + 0x6f, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x12, 0x6d, 0x0a, 0x1b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x18, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, + 0x71, 0x0a, 0x1d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1a, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, - 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x73, - 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x52, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x75, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x1c, 0x45, 0x78, 0x70, 0x43, - 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, - 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, - 0xa0, 0x0d, 0x0a, 0x0d, 0x45, 0x78, 0x70, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x69, 0x66, - 0x66, 0x12, 0x4a, 0x0a, 0x10, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x4e, 0x0a, - 0x12, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x64, 0x0a, - 0x1e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x63, 0x5f, + 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x70, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x4e, + 0x0a, 0x12, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x64, + 0x0a, 0x1e, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x63, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x17, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x3e, 0x0a, + 0x0c, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x48, 0x00, + 0x52, 0x0b, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x42, 0x0a, + 0x0e, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, + 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x64, 0x12, 0x58, 0x0a, 0x1a, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x64, 0x6f, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1b, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x0e, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, - 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x10, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x1c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x64, 0x6f, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x19, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x64, 0x12, 0x6d, 0x0a, 0x1b, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x61, 0x64, 0x64, - 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x18, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x41, 0x64, 0x64, - 0x65, 0x64, 0x12, 0x71, 0x0a, 0x1d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, - 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x52, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1a, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x4a, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x78, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x0f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x65, - 0x64, 0x12, 0x4e, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x70, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x64, 0x12, 0x64, 0x0a, 0x1e, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x64, 0x6f, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x1b, 0x70, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x57, 0x0a, 0x17, 0x70, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x50, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x15, 0x70, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x70, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, - 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x65, 0x64, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, - 0x74, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x41, 0x64, 0x64, 0x65, 0x64, - 0x12, 0x42, 0x0a, 0x0e, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, + 0x48, 0x00, 0x52, 0x17, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x4b, 0x0a, 0x13, 0x63, + 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, - 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x1a, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x64, - 0x6f, 0x63, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x45, 0x78, 0x70, + 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x16, 0x63, 0x61, 0x76, 0x65, + 0x61, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, - 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x17, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x44, 0x6f, 0x63, - 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x4b, - 0x0a, 0x13, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, - 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x48, 0x00, 0x52, 0x11, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, - 0x45, 0x78, 0x70, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x5a, 0x0a, 0x16, 0x63, - 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, + 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x14, + 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x18, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x16, 0x63, 0x61, + 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x1d, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, - 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, - 0x00, 0x52, 0x14, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x41, 0x64, 0x64, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x18, 0x63, 0x61, 0x76, 0x65, 0x61, - 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x43, 0x61, - 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, - 0x16, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x1d, 0x63, 0x61, 0x76, 0x65, 0x61, - 0x74, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x45, 0x78, 0x70, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1a, - 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x69, - 0x66, 0x66, 0x32, 0x94, 0x0a, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb2, 0x01, 0x0a, 0x17, 0x42, - 0x75, 0x6c, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, 0x2e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, - 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x49, 0x6d, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, - 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, - 0x70, 0x73, 0x2f, 0x62, 0x75, 0x6c, 0x6b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x28, 0x01, 0x12, - 0xb2, 0x01, 0x0a, 0x17, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, 0x2e, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, - 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, - 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, - 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x2f, 0x62, 0x75, 0x6c, 0x6b, 0x65, 0x78, 0x70, 0x6f, - 0x72, 0x74, 0x30, 0x01, 0x12, 0xae, 0x01, 0x0a, 0x13, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, - 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, - 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, - 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, - 0x61, 0x6c, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x62, - 0x75, 0x6c, 0x6b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x88, 0x02, 0x01, 0x12, 0xab, 0x01, 0x0a, 0x19, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x12, 0x30, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x1a, 0x63, 0x61, 0x76, + 0x65, 0x61, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x69, 0x66, 0x66, 0x32, + 0xaa, 0x0f, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb2, 0x01, 0x0a, 0x17, 0x42, 0x75, 0x6c, 0x6b, + 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, + 0x69, 0x70, 0x73, 0x12, 0x2e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, + 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x2f, + 0x62, 0x75, 0x6c, 0x6b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x28, 0x01, 0x12, 0xb2, 0x01, 0x0a, + 0x17, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, 0x2e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, + 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x68, 0x69, 0x70, 0x73, 0x2f, 0x62, 0x75, 0x6c, 0x6b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x30, + 0x01, 0x12, 0xae, 0x01, 0x0a, 0x13, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, 0x30, 0x2f, + 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, + 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x62, 0x75, 0x6c, 0x6b, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x88, + 0x02, 0x01, 0x12, 0xab, 0x01, 0x0a, 0x19, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, - 0x3a, 0x01, 0x2a, 0x22, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x73, 0x63, 0x68, - 0x65, 0x6d, 0x61, 0x12, 0xcc, 0x01, 0x0a, 0x21, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, + 0x12, 0x30, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, + 0x66, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, + 0x22, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x6c, 0x2f, 0x72, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x12, 0xcc, 0x01, 0x0a, 0x21, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x39, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, + 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0xc2, 0x01, 0x0a, 0x1e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x35, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, - 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x65, - 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x70, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0xc2, 0x01, 0x0a, 0x1e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, - 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a, 0x22, - 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x64, 0x65, - 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x16, 0x45, 0x78, 0x70, 0x65, - 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x69, 0x66, 0x66, 0x53, 0x63, 0x68, 0x65, - 0x6d, 0x61, 0x12, 0x2d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, 0x2a, 0x22, 0x26, 0x2f, 0x76, + 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x70, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x64, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x16, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x69, 0x66, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, + 0x2d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x69, 0x66, + 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, 0x69, 0x66, 0x66, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x65, + 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x64, 0x69, 0x66, 0x66, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0xe3, 0x01, 0x0a, 0x27, 0x45, 0x78, 0x70, 0x65, 0x72, + 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x3e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x68, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, - 0x44, 0x69, 0x66, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x44, - 0x69, 0x66, 0x66, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x3a, 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x76, - 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x64, - 0x69, 0x66, 0x66, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x4a, 0x0a, 0x12, 0x63, 0x6f, 0x6d, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x50, - 0x01, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, - 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2d, 0x67, 0x6f, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x68, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x3a, 0x01, 0x2a, 0x22, 0x2c, + 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, + 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x68, 0x69, 0x70, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0xbf, 0x01, 0x0a, + 0x1e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, + 0x35, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x3a, 0x01, 0x2a, 0x22, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x65, + 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x12, 0xeb, + 0x01, 0x0a, 0x29, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x55, + 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x68, 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x40, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, + 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, + 0x69, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x22, 0x2e, 0x2f, 0x76, + 0x31, 0x2f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x2f, 0x75, + 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x68, 0x69, 0x70, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x4a, 0x0a, 0x12, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x76, 0x31, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, + 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, + 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2655,126 +3032,143 @@ func file_authzed_api_v1_experimental_service_proto_rawDescGZIP() []byte { return file_authzed_api_v1_experimental_service_proto_rawDescData } -var file_authzed_api_v1_experimental_service_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_authzed_api_v1_experimental_service_proto_msgTypes = make([]protoimpl.MessageInfo, 34) var file_authzed_api_v1_experimental_service_proto_goTypes = []interface{}{ - (*BulkCheckPermissionRequest)(nil), // 0: authzed.api.v1.BulkCheckPermissionRequest - (*BulkCheckPermissionRequestItem)(nil), // 1: authzed.api.v1.BulkCheckPermissionRequestItem - (*BulkCheckPermissionResponse)(nil), // 2: authzed.api.v1.BulkCheckPermissionResponse - (*BulkCheckPermissionPair)(nil), // 3: authzed.api.v1.BulkCheckPermissionPair - (*BulkCheckPermissionResponseItem)(nil), // 4: authzed.api.v1.BulkCheckPermissionResponseItem - (*BulkImportRelationshipsRequest)(nil), // 5: authzed.api.v1.BulkImportRelationshipsRequest - (*BulkImportRelationshipsResponse)(nil), // 6: authzed.api.v1.BulkImportRelationshipsResponse - (*BulkExportRelationshipsRequest)(nil), // 7: authzed.api.v1.BulkExportRelationshipsRequest - (*BulkExportRelationshipsResponse)(nil), // 8: authzed.api.v1.BulkExportRelationshipsResponse - (*ExperimentalReflectSchemaRequest)(nil), // 9: authzed.api.v1.ExperimentalReflectSchemaRequest - (*ExperimentalReflectSchemaResponse)(nil), // 10: authzed.api.v1.ExperimentalReflectSchemaResponse - (*ExpSchemaFilter)(nil), // 11: authzed.api.v1.ExpSchemaFilter - (*ExpDefinition)(nil), // 12: authzed.api.v1.ExpDefinition - (*ExpCaveat)(nil), // 13: authzed.api.v1.ExpCaveat - (*ExpCaveatParameter)(nil), // 14: authzed.api.v1.ExpCaveatParameter - (*ExpRelation)(nil), // 15: authzed.api.v1.ExpRelation - (*ExpTypeReference)(nil), // 16: authzed.api.v1.ExpTypeReference - (*ExpPermission)(nil), // 17: authzed.api.v1.ExpPermission - (*ExperimentalComputablePermissionsRequest)(nil), // 18: authzed.api.v1.ExperimentalComputablePermissionsRequest - (*ExpRelationReference)(nil), // 19: authzed.api.v1.ExpRelationReference - (*ExperimentalComputablePermissionsResponse)(nil), // 20: authzed.api.v1.ExperimentalComputablePermissionsResponse - (*ExperimentalDependentRelationsRequest)(nil), // 21: authzed.api.v1.ExperimentalDependentRelationsRequest - (*ExperimentalDependentRelationsResponse)(nil), // 22: authzed.api.v1.ExperimentalDependentRelationsResponse - (*ExperimentalDiffSchemaRequest)(nil), // 23: authzed.api.v1.ExperimentalDiffSchemaRequest - (*ExperimentalDiffSchemaResponse)(nil), // 24: authzed.api.v1.ExperimentalDiffSchemaResponse - (*ExpRelationSubjectTypeChange)(nil), // 25: authzed.api.v1.ExpRelationSubjectTypeChange - (*ExpCaveatParameterTypeChange)(nil), // 26: authzed.api.v1.ExpCaveatParameterTypeChange - (*ExpSchemaDiff)(nil), // 27: authzed.api.v1.ExpSchemaDiff - (*Consistency)(nil), // 28: authzed.api.v1.Consistency - (*ObjectReference)(nil), // 29: authzed.api.v1.ObjectReference - (*SubjectReference)(nil), // 30: authzed.api.v1.SubjectReference - (*structpb.Struct)(nil), // 31: google.protobuf.Struct - (*ZedToken)(nil), // 32: authzed.api.v1.ZedToken - (*status.Status)(nil), // 33: google.rpc.Status - (CheckPermissionResponse_Permissionship)(0), // 34: authzed.api.v1.CheckPermissionResponse.Permissionship - (*PartialCaveatInfo)(nil), // 35: authzed.api.v1.PartialCaveatInfo - (*Relationship)(nil), // 36: authzed.api.v1.Relationship - (*Cursor)(nil), // 37: authzed.api.v1.Cursor - (*RelationshipFilter)(nil), // 38: authzed.api.v1.RelationshipFilter + (*ExperimentalRegisterRelationshipCounterRequest)(nil), // 0: authzed.api.v1.ExperimentalRegisterRelationshipCounterRequest + (*ExperimentalRegisterRelationshipCounterResponse)(nil), // 1: authzed.api.v1.ExperimentalRegisterRelationshipCounterResponse + (*ExperimentalCountRelationshipsRequest)(nil), // 2: authzed.api.v1.ExperimentalCountRelationshipsRequest + (*ExperimentalCountRelationshipsResponse)(nil), // 3: authzed.api.v1.ExperimentalCountRelationshipsResponse + (*ExperimentalUnregisterRelationshipCounterRequest)(nil), // 4: authzed.api.v1.ExperimentalUnregisterRelationshipCounterRequest + (*ExperimentalUnregisterRelationshipCounterResponse)(nil), // 5: authzed.api.v1.ExperimentalUnregisterRelationshipCounterResponse + (*BulkCheckPermissionRequest)(nil), // 6: authzed.api.v1.BulkCheckPermissionRequest + (*BulkCheckPermissionRequestItem)(nil), // 7: authzed.api.v1.BulkCheckPermissionRequestItem + (*BulkCheckPermissionResponse)(nil), // 8: authzed.api.v1.BulkCheckPermissionResponse + (*BulkCheckPermissionPair)(nil), // 9: authzed.api.v1.BulkCheckPermissionPair + (*BulkCheckPermissionResponseItem)(nil), // 10: authzed.api.v1.BulkCheckPermissionResponseItem + (*BulkImportRelationshipsRequest)(nil), // 11: authzed.api.v1.BulkImportRelationshipsRequest + (*BulkImportRelationshipsResponse)(nil), // 12: authzed.api.v1.BulkImportRelationshipsResponse + (*BulkExportRelationshipsRequest)(nil), // 13: authzed.api.v1.BulkExportRelationshipsRequest + (*BulkExportRelationshipsResponse)(nil), // 14: authzed.api.v1.BulkExportRelationshipsResponse + (*ExperimentalReflectSchemaRequest)(nil), // 15: authzed.api.v1.ExperimentalReflectSchemaRequest + (*ExperimentalReflectSchemaResponse)(nil), // 16: authzed.api.v1.ExperimentalReflectSchemaResponse + (*ExpSchemaFilter)(nil), // 17: authzed.api.v1.ExpSchemaFilter + (*ExpDefinition)(nil), // 18: authzed.api.v1.ExpDefinition + (*ExpCaveat)(nil), // 19: authzed.api.v1.ExpCaveat + (*ExpCaveatParameter)(nil), // 20: authzed.api.v1.ExpCaveatParameter + (*ExpRelation)(nil), // 21: authzed.api.v1.ExpRelation + (*ExpTypeReference)(nil), // 22: authzed.api.v1.ExpTypeReference + (*ExpPermission)(nil), // 23: authzed.api.v1.ExpPermission + (*ExperimentalComputablePermissionsRequest)(nil), // 24: authzed.api.v1.ExperimentalComputablePermissionsRequest + (*ExpRelationReference)(nil), // 25: authzed.api.v1.ExpRelationReference + (*ExperimentalComputablePermissionsResponse)(nil), // 26: authzed.api.v1.ExperimentalComputablePermissionsResponse + (*ExperimentalDependentRelationsRequest)(nil), // 27: authzed.api.v1.ExperimentalDependentRelationsRequest + (*ExperimentalDependentRelationsResponse)(nil), // 28: authzed.api.v1.ExperimentalDependentRelationsResponse + (*ExperimentalDiffSchemaRequest)(nil), // 29: authzed.api.v1.ExperimentalDiffSchemaRequest + (*ExperimentalDiffSchemaResponse)(nil), // 30: authzed.api.v1.ExperimentalDiffSchemaResponse + (*ExpRelationSubjectTypeChange)(nil), // 31: authzed.api.v1.ExpRelationSubjectTypeChange + (*ExpCaveatParameterTypeChange)(nil), // 32: authzed.api.v1.ExpCaveatParameterTypeChange + (*ExpSchemaDiff)(nil), // 33: authzed.api.v1.ExpSchemaDiff + (*RelationshipFilter)(nil), // 34: authzed.api.v1.RelationshipFilter + (*Consistency)(nil), // 35: authzed.api.v1.Consistency + (*ZedToken)(nil), // 36: authzed.api.v1.ZedToken + (*ObjectReference)(nil), // 37: authzed.api.v1.ObjectReference + (*SubjectReference)(nil), // 38: authzed.api.v1.SubjectReference + (*structpb.Struct)(nil), // 39: google.protobuf.Struct + (*status.Status)(nil), // 40: google.rpc.Status + (CheckPermissionResponse_Permissionship)(0), // 41: authzed.api.v1.CheckPermissionResponse.Permissionship + (*PartialCaveatInfo)(nil), // 42: authzed.api.v1.PartialCaveatInfo + (*Relationship)(nil), // 43: authzed.api.v1.Relationship + (*Cursor)(nil), // 44: authzed.api.v1.Cursor } var file_authzed_api_v1_experimental_service_proto_depIdxs = []int32{ - 28, // 0: authzed.api.v1.BulkCheckPermissionRequest.consistency:type_name -> authzed.api.v1.Consistency - 1, // 1: authzed.api.v1.BulkCheckPermissionRequest.items:type_name -> authzed.api.v1.BulkCheckPermissionRequestItem - 29, // 2: authzed.api.v1.BulkCheckPermissionRequestItem.resource:type_name -> authzed.api.v1.ObjectReference - 30, // 3: authzed.api.v1.BulkCheckPermissionRequestItem.subject:type_name -> authzed.api.v1.SubjectReference - 31, // 4: authzed.api.v1.BulkCheckPermissionRequestItem.context:type_name -> google.protobuf.Struct - 32, // 5: authzed.api.v1.BulkCheckPermissionResponse.checked_at:type_name -> authzed.api.v1.ZedToken - 3, // 6: authzed.api.v1.BulkCheckPermissionResponse.pairs:type_name -> authzed.api.v1.BulkCheckPermissionPair - 1, // 7: authzed.api.v1.BulkCheckPermissionPair.request:type_name -> authzed.api.v1.BulkCheckPermissionRequestItem - 4, // 8: authzed.api.v1.BulkCheckPermissionPair.item:type_name -> authzed.api.v1.BulkCheckPermissionResponseItem - 33, // 9: authzed.api.v1.BulkCheckPermissionPair.error:type_name -> google.rpc.Status - 34, // 10: authzed.api.v1.BulkCheckPermissionResponseItem.permissionship:type_name -> authzed.api.v1.CheckPermissionResponse.Permissionship - 35, // 11: authzed.api.v1.BulkCheckPermissionResponseItem.partial_caveat_info:type_name -> authzed.api.v1.PartialCaveatInfo - 36, // 12: authzed.api.v1.BulkImportRelationshipsRequest.relationships:type_name -> authzed.api.v1.Relationship - 28, // 13: authzed.api.v1.BulkExportRelationshipsRequest.consistency:type_name -> authzed.api.v1.Consistency - 37, // 14: authzed.api.v1.BulkExportRelationshipsRequest.optional_cursor:type_name -> authzed.api.v1.Cursor - 38, // 15: authzed.api.v1.BulkExportRelationshipsRequest.optional_relationship_filter:type_name -> authzed.api.v1.RelationshipFilter - 37, // 16: authzed.api.v1.BulkExportRelationshipsResponse.after_result_cursor:type_name -> authzed.api.v1.Cursor - 36, // 17: authzed.api.v1.BulkExportRelationshipsResponse.relationships:type_name -> authzed.api.v1.Relationship - 28, // 18: authzed.api.v1.ExperimentalReflectSchemaRequest.consistency:type_name -> authzed.api.v1.Consistency - 11, // 19: authzed.api.v1.ExperimentalReflectSchemaRequest.optional_filters:type_name -> authzed.api.v1.ExpSchemaFilter - 12, // 20: authzed.api.v1.ExperimentalReflectSchemaResponse.definitions:type_name -> authzed.api.v1.ExpDefinition - 13, // 21: authzed.api.v1.ExperimentalReflectSchemaResponse.caveats:type_name -> authzed.api.v1.ExpCaveat - 32, // 22: authzed.api.v1.ExperimentalReflectSchemaResponse.read_at:type_name -> authzed.api.v1.ZedToken - 15, // 23: authzed.api.v1.ExpDefinition.relations:type_name -> authzed.api.v1.ExpRelation - 17, // 24: authzed.api.v1.ExpDefinition.permissions:type_name -> authzed.api.v1.ExpPermission - 14, // 25: authzed.api.v1.ExpCaveat.parameters:type_name -> authzed.api.v1.ExpCaveatParameter - 16, // 26: authzed.api.v1.ExpRelation.subject_types:type_name -> authzed.api.v1.ExpTypeReference - 28, // 27: authzed.api.v1.ExperimentalComputablePermissionsRequest.consistency:type_name -> authzed.api.v1.Consistency - 19, // 28: authzed.api.v1.ExperimentalComputablePermissionsResponse.permissions:type_name -> authzed.api.v1.ExpRelationReference - 32, // 29: authzed.api.v1.ExperimentalComputablePermissionsResponse.read_at:type_name -> authzed.api.v1.ZedToken - 28, // 30: authzed.api.v1.ExperimentalDependentRelationsRequest.consistency:type_name -> authzed.api.v1.Consistency - 19, // 31: authzed.api.v1.ExperimentalDependentRelationsResponse.relations:type_name -> authzed.api.v1.ExpRelationReference - 32, // 32: authzed.api.v1.ExperimentalDependentRelationsResponse.read_at:type_name -> authzed.api.v1.ZedToken - 28, // 33: authzed.api.v1.ExperimentalDiffSchemaRequest.consistency:type_name -> authzed.api.v1.Consistency - 27, // 34: authzed.api.v1.ExperimentalDiffSchemaResponse.diffs:type_name -> authzed.api.v1.ExpSchemaDiff - 32, // 35: authzed.api.v1.ExperimentalDiffSchemaResponse.read_at:type_name -> authzed.api.v1.ZedToken - 15, // 36: authzed.api.v1.ExpRelationSubjectTypeChange.relation:type_name -> authzed.api.v1.ExpRelation - 16, // 37: authzed.api.v1.ExpRelationSubjectTypeChange.changed_subject_type:type_name -> authzed.api.v1.ExpTypeReference - 14, // 38: authzed.api.v1.ExpCaveatParameterTypeChange.parameter:type_name -> authzed.api.v1.ExpCaveatParameter - 12, // 39: authzed.api.v1.ExpSchemaDiff.definition_added:type_name -> authzed.api.v1.ExpDefinition - 12, // 40: authzed.api.v1.ExpSchemaDiff.definition_removed:type_name -> authzed.api.v1.ExpDefinition - 12, // 41: authzed.api.v1.ExpSchemaDiff.definition_doc_comment_changed:type_name -> authzed.api.v1.ExpDefinition - 15, // 42: authzed.api.v1.ExpSchemaDiff.relation_added:type_name -> authzed.api.v1.ExpRelation - 15, // 43: authzed.api.v1.ExpSchemaDiff.relation_removed:type_name -> authzed.api.v1.ExpRelation - 15, // 44: authzed.api.v1.ExpSchemaDiff.relation_doc_comment_changed:type_name -> authzed.api.v1.ExpRelation - 25, // 45: authzed.api.v1.ExpSchemaDiff.relation_subject_type_added:type_name -> authzed.api.v1.ExpRelationSubjectTypeChange - 25, // 46: authzed.api.v1.ExpSchemaDiff.relation_subject_type_removed:type_name -> authzed.api.v1.ExpRelationSubjectTypeChange - 17, // 47: authzed.api.v1.ExpSchemaDiff.permission_added:type_name -> authzed.api.v1.ExpPermission - 17, // 48: authzed.api.v1.ExpSchemaDiff.permission_removed:type_name -> authzed.api.v1.ExpPermission - 17, // 49: authzed.api.v1.ExpSchemaDiff.permission_doc_comment_changed:type_name -> authzed.api.v1.ExpPermission - 17, // 50: authzed.api.v1.ExpSchemaDiff.permission_expr_changed:type_name -> authzed.api.v1.ExpPermission - 13, // 51: authzed.api.v1.ExpSchemaDiff.caveat_added:type_name -> authzed.api.v1.ExpCaveat - 13, // 52: authzed.api.v1.ExpSchemaDiff.caveat_removed:type_name -> authzed.api.v1.ExpCaveat - 13, // 53: authzed.api.v1.ExpSchemaDiff.caveat_doc_comment_changed:type_name -> authzed.api.v1.ExpCaveat - 13, // 54: authzed.api.v1.ExpSchemaDiff.caveat_expr_changed:type_name -> authzed.api.v1.ExpCaveat - 14, // 55: authzed.api.v1.ExpSchemaDiff.caveat_parameter_added:type_name -> authzed.api.v1.ExpCaveatParameter - 14, // 56: authzed.api.v1.ExpSchemaDiff.caveat_parameter_removed:type_name -> authzed.api.v1.ExpCaveatParameter - 26, // 57: authzed.api.v1.ExpSchemaDiff.caveat_parameter_type_changed:type_name -> authzed.api.v1.ExpCaveatParameterTypeChange - 5, // 58: authzed.api.v1.ExperimentalService.BulkImportRelationships:input_type -> authzed.api.v1.BulkImportRelationshipsRequest - 7, // 59: authzed.api.v1.ExperimentalService.BulkExportRelationships:input_type -> authzed.api.v1.BulkExportRelationshipsRequest - 0, // 60: authzed.api.v1.ExperimentalService.BulkCheckPermission:input_type -> authzed.api.v1.BulkCheckPermissionRequest - 9, // 61: authzed.api.v1.ExperimentalService.ExperimentalReflectSchema:input_type -> authzed.api.v1.ExperimentalReflectSchemaRequest - 18, // 62: authzed.api.v1.ExperimentalService.ExperimentalComputablePermissions:input_type -> authzed.api.v1.ExperimentalComputablePermissionsRequest - 21, // 63: authzed.api.v1.ExperimentalService.ExperimentalDependentRelations:input_type -> authzed.api.v1.ExperimentalDependentRelationsRequest - 23, // 64: authzed.api.v1.ExperimentalService.ExperimentalDiffSchema:input_type -> authzed.api.v1.ExperimentalDiffSchemaRequest - 6, // 65: authzed.api.v1.ExperimentalService.BulkImportRelationships:output_type -> authzed.api.v1.BulkImportRelationshipsResponse - 8, // 66: authzed.api.v1.ExperimentalService.BulkExportRelationships:output_type -> authzed.api.v1.BulkExportRelationshipsResponse - 2, // 67: authzed.api.v1.ExperimentalService.BulkCheckPermission:output_type -> authzed.api.v1.BulkCheckPermissionResponse - 10, // 68: authzed.api.v1.ExperimentalService.ExperimentalReflectSchema:output_type -> authzed.api.v1.ExperimentalReflectSchemaResponse - 20, // 69: authzed.api.v1.ExperimentalService.ExperimentalComputablePermissions:output_type -> authzed.api.v1.ExperimentalComputablePermissionsResponse - 22, // 70: authzed.api.v1.ExperimentalService.ExperimentalDependentRelations:output_type -> authzed.api.v1.ExperimentalDependentRelationsResponse - 24, // 71: authzed.api.v1.ExperimentalService.ExperimentalDiffSchema:output_type -> authzed.api.v1.ExperimentalDiffSchemaResponse - 65, // [65:72] is the sub-list for method output_type - 58, // [58:65] is the sub-list for method input_type - 58, // [58:58] is the sub-list for extension type_name - 58, // [58:58] is the sub-list for extension extendee - 0, // [0:58] is the sub-list for field type_name + 34, // 0: authzed.api.v1.ExperimentalRegisterRelationshipCounterRequest.relationship_filter:type_name -> authzed.api.v1.RelationshipFilter + 35, // 1: authzed.api.v1.ExperimentalCountRelationshipsRequest.consistency:type_name -> authzed.api.v1.Consistency + 34, // 2: authzed.api.v1.ExperimentalCountRelationshipsRequest.relationship_filter:type_name -> authzed.api.v1.RelationshipFilter + 36, // 3: authzed.api.v1.ExperimentalCountRelationshipsResponse.read_at:type_name -> authzed.api.v1.ZedToken + 34, // 4: authzed.api.v1.ExperimentalUnregisterRelationshipCounterRequest.relationship_filter:type_name -> authzed.api.v1.RelationshipFilter + 35, // 5: authzed.api.v1.BulkCheckPermissionRequest.consistency:type_name -> authzed.api.v1.Consistency + 7, // 6: authzed.api.v1.BulkCheckPermissionRequest.items:type_name -> authzed.api.v1.BulkCheckPermissionRequestItem + 37, // 7: authzed.api.v1.BulkCheckPermissionRequestItem.resource:type_name -> authzed.api.v1.ObjectReference + 38, // 8: authzed.api.v1.BulkCheckPermissionRequestItem.subject:type_name -> authzed.api.v1.SubjectReference + 39, // 9: authzed.api.v1.BulkCheckPermissionRequestItem.context:type_name -> google.protobuf.Struct + 36, // 10: authzed.api.v1.BulkCheckPermissionResponse.checked_at:type_name -> authzed.api.v1.ZedToken + 9, // 11: authzed.api.v1.BulkCheckPermissionResponse.pairs:type_name -> authzed.api.v1.BulkCheckPermissionPair + 7, // 12: authzed.api.v1.BulkCheckPermissionPair.request:type_name -> authzed.api.v1.BulkCheckPermissionRequestItem + 10, // 13: authzed.api.v1.BulkCheckPermissionPair.item:type_name -> authzed.api.v1.BulkCheckPermissionResponseItem + 40, // 14: authzed.api.v1.BulkCheckPermissionPair.error:type_name -> google.rpc.Status + 41, // 15: authzed.api.v1.BulkCheckPermissionResponseItem.permissionship:type_name -> authzed.api.v1.CheckPermissionResponse.Permissionship + 42, // 16: authzed.api.v1.BulkCheckPermissionResponseItem.partial_caveat_info:type_name -> authzed.api.v1.PartialCaveatInfo + 43, // 17: authzed.api.v1.BulkImportRelationshipsRequest.relationships:type_name -> authzed.api.v1.Relationship + 35, // 18: authzed.api.v1.BulkExportRelationshipsRequest.consistency:type_name -> authzed.api.v1.Consistency + 44, // 19: authzed.api.v1.BulkExportRelationshipsRequest.optional_cursor:type_name -> authzed.api.v1.Cursor + 34, // 20: authzed.api.v1.BulkExportRelationshipsRequest.optional_relationship_filter:type_name -> authzed.api.v1.RelationshipFilter + 44, // 21: authzed.api.v1.BulkExportRelationshipsResponse.after_result_cursor:type_name -> authzed.api.v1.Cursor + 43, // 22: authzed.api.v1.BulkExportRelationshipsResponse.relationships:type_name -> authzed.api.v1.Relationship + 35, // 23: authzed.api.v1.ExperimentalReflectSchemaRequest.consistency:type_name -> authzed.api.v1.Consistency + 17, // 24: authzed.api.v1.ExperimentalReflectSchemaRequest.optional_filters:type_name -> authzed.api.v1.ExpSchemaFilter + 18, // 25: authzed.api.v1.ExperimentalReflectSchemaResponse.definitions:type_name -> authzed.api.v1.ExpDefinition + 19, // 26: authzed.api.v1.ExperimentalReflectSchemaResponse.caveats:type_name -> authzed.api.v1.ExpCaveat + 36, // 27: authzed.api.v1.ExperimentalReflectSchemaResponse.read_at:type_name -> authzed.api.v1.ZedToken + 21, // 28: authzed.api.v1.ExpDefinition.relations:type_name -> authzed.api.v1.ExpRelation + 23, // 29: authzed.api.v1.ExpDefinition.permissions:type_name -> authzed.api.v1.ExpPermission + 20, // 30: authzed.api.v1.ExpCaveat.parameters:type_name -> authzed.api.v1.ExpCaveatParameter + 22, // 31: authzed.api.v1.ExpRelation.subject_types:type_name -> authzed.api.v1.ExpTypeReference + 35, // 32: authzed.api.v1.ExperimentalComputablePermissionsRequest.consistency:type_name -> authzed.api.v1.Consistency + 25, // 33: authzed.api.v1.ExperimentalComputablePermissionsResponse.permissions:type_name -> authzed.api.v1.ExpRelationReference + 36, // 34: authzed.api.v1.ExperimentalComputablePermissionsResponse.read_at:type_name -> authzed.api.v1.ZedToken + 35, // 35: authzed.api.v1.ExperimentalDependentRelationsRequest.consistency:type_name -> authzed.api.v1.Consistency + 25, // 36: authzed.api.v1.ExperimentalDependentRelationsResponse.relations:type_name -> authzed.api.v1.ExpRelationReference + 36, // 37: authzed.api.v1.ExperimentalDependentRelationsResponse.read_at:type_name -> authzed.api.v1.ZedToken + 35, // 38: authzed.api.v1.ExperimentalDiffSchemaRequest.consistency:type_name -> authzed.api.v1.Consistency + 33, // 39: authzed.api.v1.ExperimentalDiffSchemaResponse.diffs:type_name -> authzed.api.v1.ExpSchemaDiff + 36, // 40: authzed.api.v1.ExperimentalDiffSchemaResponse.read_at:type_name -> authzed.api.v1.ZedToken + 21, // 41: authzed.api.v1.ExpRelationSubjectTypeChange.relation:type_name -> authzed.api.v1.ExpRelation + 22, // 42: authzed.api.v1.ExpRelationSubjectTypeChange.changed_subject_type:type_name -> authzed.api.v1.ExpTypeReference + 20, // 43: authzed.api.v1.ExpCaveatParameterTypeChange.parameter:type_name -> authzed.api.v1.ExpCaveatParameter + 18, // 44: authzed.api.v1.ExpSchemaDiff.definition_added:type_name -> authzed.api.v1.ExpDefinition + 18, // 45: authzed.api.v1.ExpSchemaDiff.definition_removed:type_name -> authzed.api.v1.ExpDefinition + 18, // 46: authzed.api.v1.ExpSchemaDiff.definition_doc_comment_changed:type_name -> authzed.api.v1.ExpDefinition + 21, // 47: authzed.api.v1.ExpSchemaDiff.relation_added:type_name -> authzed.api.v1.ExpRelation + 21, // 48: authzed.api.v1.ExpSchemaDiff.relation_removed:type_name -> authzed.api.v1.ExpRelation + 21, // 49: authzed.api.v1.ExpSchemaDiff.relation_doc_comment_changed:type_name -> authzed.api.v1.ExpRelation + 31, // 50: authzed.api.v1.ExpSchemaDiff.relation_subject_type_added:type_name -> authzed.api.v1.ExpRelationSubjectTypeChange + 31, // 51: authzed.api.v1.ExpSchemaDiff.relation_subject_type_removed:type_name -> authzed.api.v1.ExpRelationSubjectTypeChange + 23, // 52: authzed.api.v1.ExpSchemaDiff.permission_added:type_name -> authzed.api.v1.ExpPermission + 23, // 53: authzed.api.v1.ExpSchemaDiff.permission_removed:type_name -> authzed.api.v1.ExpPermission + 23, // 54: authzed.api.v1.ExpSchemaDiff.permission_doc_comment_changed:type_name -> authzed.api.v1.ExpPermission + 23, // 55: authzed.api.v1.ExpSchemaDiff.permission_expr_changed:type_name -> authzed.api.v1.ExpPermission + 19, // 56: authzed.api.v1.ExpSchemaDiff.caveat_added:type_name -> authzed.api.v1.ExpCaveat + 19, // 57: authzed.api.v1.ExpSchemaDiff.caveat_removed:type_name -> authzed.api.v1.ExpCaveat + 19, // 58: authzed.api.v1.ExpSchemaDiff.caveat_doc_comment_changed:type_name -> authzed.api.v1.ExpCaveat + 19, // 59: authzed.api.v1.ExpSchemaDiff.caveat_expr_changed:type_name -> authzed.api.v1.ExpCaveat + 20, // 60: authzed.api.v1.ExpSchemaDiff.caveat_parameter_added:type_name -> authzed.api.v1.ExpCaveatParameter + 20, // 61: authzed.api.v1.ExpSchemaDiff.caveat_parameter_removed:type_name -> authzed.api.v1.ExpCaveatParameter + 32, // 62: authzed.api.v1.ExpSchemaDiff.caveat_parameter_type_changed:type_name -> authzed.api.v1.ExpCaveatParameterTypeChange + 11, // 63: authzed.api.v1.ExperimentalService.BulkImportRelationships:input_type -> authzed.api.v1.BulkImportRelationshipsRequest + 13, // 64: authzed.api.v1.ExperimentalService.BulkExportRelationships:input_type -> authzed.api.v1.BulkExportRelationshipsRequest + 6, // 65: authzed.api.v1.ExperimentalService.BulkCheckPermission:input_type -> authzed.api.v1.BulkCheckPermissionRequest + 15, // 66: authzed.api.v1.ExperimentalService.ExperimentalReflectSchema:input_type -> authzed.api.v1.ExperimentalReflectSchemaRequest + 24, // 67: authzed.api.v1.ExperimentalService.ExperimentalComputablePermissions:input_type -> authzed.api.v1.ExperimentalComputablePermissionsRequest + 27, // 68: authzed.api.v1.ExperimentalService.ExperimentalDependentRelations:input_type -> authzed.api.v1.ExperimentalDependentRelationsRequest + 29, // 69: authzed.api.v1.ExperimentalService.ExperimentalDiffSchema:input_type -> authzed.api.v1.ExperimentalDiffSchemaRequest + 0, // 70: authzed.api.v1.ExperimentalService.ExperimentalRegisterRelationshipCounter:input_type -> authzed.api.v1.ExperimentalRegisterRelationshipCounterRequest + 2, // 71: authzed.api.v1.ExperimentalService.ExperimentalCountRelationships:input_type -> authzed.api.v1.ExperimentalCountRelationshipsRequest + 4, // 72: authzed.api.v1.ExperimentalService.ExperimentalUnregisterRelationshipCounter:input_type -> authzed.api.v1.ExperimentalUnregisterRelationshipCounterRequest + 12, // 73: authzed.api.v1.ExperimentalService.BulkImportRelationships:output_type -> authzed.api.v1.BulkImportRelationshipsResponse + 14, // 74: authzed.api.v1.ExperimentalService.BulkExportRelationships:output_type -> authzed.api.v1.BulkExportRelationshipsResponse + 8, // 75: authzed.api.v1.ExperimentalService.BulkCheckPermission:output_type -> authzed.api.v1.BulkCheckPermissionResponse + 16, // 76: authzed.api.v1.ExperimentalService.ExperimentalReflectSchema:output_type -> authzed.api.v1.ExperimentalReflectSchemaResponse + 26, // 77: authzed.api.v1.ExperimentalService.ExperimentalComputablePermissions:output_type -> authzed.api.v1.ExperimentalComputablePermissionsResponse + 28, // 78: authzed.api.v1.ExperimentalService.ExperimentalDependentRelations:output_type -> authzed.api.v1.ExperimentalDependentRelationsResponse + 30, // 79: authzed.api.v1.ExperimentalService.ExperimentalDiffSchema:output_type -> authzed.api.v1.ExperimentalDiffSchemaResponse + 1, // 80: authzed.api.v1.ExperimentalService.ExperimentalRegisterRelationshipCounter:output_type -> authzed.api.v1.ExperimentalRegisterRelationshipCounterResponse + 3, // 81: authzed.api.v1.ExperimentalService.ExperimentalCountRelationships:output_type -> authzed.api.v1.ExperimentalCountRelationshipsResponse + 5, // 82: authzed.api.v1.ExperimentalService.ExperimentalUnregisterRelationshipCounter:output_type -> authzed.api.v1.ExperimentalUnregisterRelationshipCounterResponse + 73, // [73:83] is the sub-list for method output_type + 63, // [63:73] is the sub-list for method input_type + 63, // [63:63] is the sub-list for extension type_name + 63, // [63:63] is the sub-list for extension extendee + 0, // [0:63] is the sub-list for field type_name } func init() { file_authzed_api_v1_experimental_service_proto_init() } @@ -2786,7 +3180,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { file_authzed_api_v1_permission_service_proto_init() if !protoimpl.UnsafeEnabled { file_authzed_api_v1_experimental_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkCheckPermissionRequest); i { + switch v := v.(*ExperimentalRegisterRelationshipCounterRequest); i { case 0: return &v.state case 1: @@ -2798,7 +3192,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkCheckPermissionRequestItem); i { + switch v := v.(*ExperimentalRegisterRelationshipCounterResponse); i { case 0: return &v.state case 1: @@ -2810,7 +3204,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkCheckPermissionResponse); i { + switch v := v.(*ExperimentalCountRelationshipsRequest); i { case 0: return &v.state case 1: @@ -2822,7 +3216,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkCheckPermissionPair); i { + switch v := v.(*ExperimentalCountRelationshipsResponse); i { case 0: return &v.state case 1: @@ -2834,7 +3228,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkCheckPermissionResponseItem); i { + switch v := v.(*ExperimentalUnregisterRelationshipCounterRequest); i { case 0: return &v.state case 1: @@ -2846,7 +3240,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkImportRelationshipsRequest); i { + switch v := v.(*ExperimentalUnregisterRelationshipCounterResponse); i { case 0: return &v.state case 1: @@ -2858,7 +3252,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkImportRelationshipsResponse); i { + switch v := v.(*BulkCheckPermissionRequest); i { case 0: return &v.state case 1: @@ -2870,7 +3264,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkExportRelationshipsRequest); i { + switch v := v.(*BulkCheckPermissionRequestItem); i { case 0: return &v.state case 1: @@ -2882,7 +3276,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkExportRelationshipsResponse); i { + switch v := v.(*BulkCheckPermissionResponse); i { case 0: return &v.state case 1: @@ -2894,7 +3288,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExperimentalReflectSchemaRequest); i { + switch v := v.(*BulkCheckPermissionPair); i { case 0: return &v.state case 1: @@ -2906,7 +3300,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExperimentalReflectSchemaResponse); i { + switch v := v.(*BulkCheckPermissionResponseItem); i { case 0: return &v.state case 1: @@ -2918,7 +3312,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpSchemaFilter); i { + switch v := v.(*BulkImportRelationshipsRequest); i { case 0: return &v.state case 1: @@ -2930,7 +3324,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpDefinition); i { + switch v := v.(*BulkImportRelationshipsResponse); i { case 0: return &v.state case 1: @@ -2942,7 +3336,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpCaveat); i { + switch v := v.(*BulkExportRelationshipsRequest); i { case 0: return &v.state case 1: @@ -2954,7 +3348,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpCaveatParameter); i { + switch v := v.(*BulkExportRelationshipsResponse); i { case 0: return &v.state case 1: @@ -2966,7 +3360,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpRelation); i { + switch v := v.(*ExperimentalReflectSchemaRequest); i { case 0: return &v.state case 1: @@ -2978,7 +3372,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpTypeReference); i { + switch v := v.(*ExperimentalReflectSchemaResponse); i { case 0: return &v.state case 1: @@ -2990,7 +3384,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpPermission); i { + switch v := v.(*ExpSchemaFilter); i { case 0: return &v.state case 1: @@ -3002,7 +3396,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExperimentalComputablePermissionsRequest); i { + switch v := v.(*ExpDefinition); i { case 0: return &v.state case 1: @@ -3014,7 +3408,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpRelationReference); i { + switch v := v.(*ExpCaveat); i { case 0: return &v.state case 1: @@ -3026,7 +3420,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExperimentalComputablePermissionsResponse); i { + switch v := v.(*ExpCaveatParameter); i { case 0: return &v.state case 1: @@ -3038,7 +3432,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExperimentalDependentRelationsRequest); i { + switch v := v.(*ExpRelation); i { case 0: return &v.state case 1: @@ -3050,7 +3444,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExperimentalDependentRelationsResponse); i { + switch v := v.(*ExpTypeReference); i { case 0: return &v.state case 1: @@ -3062,7 +3456,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExperimentalDiffSchemaRequest); i { + switch v := v.(*ExpPermission); i { case 0: return &v.state case 1: @@ -3074,7 +3468,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExperimentalDiffSchemaResponse); i { + switch v := v.(*ExperimentalComputablePermissionsRequest); i { case 0: return &v.state case 1: @@ -3086,7 +3480,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpRelationSubjectTypeChange); i { + switch v := v.(*ExpRelationReference); i { case 0: return &v.state case 1: @@ -3098,7 +3492,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExpCaveatParameterTypeChange); i { + switch v := v.(*ExperimentalComputablePermissionsResponse); i { case 0: return &v.state case 1: @@ -3110,6 +3504,78 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } file_authzed_api_v1_experimental_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExperimentalDependentRelationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_authzed_api_v1_experimental_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExperimentalDependentRelationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_authzed_api_v1_experimental_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExperimentalDiffSchemaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_authzed_api_v1_experimental_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExperimentalDiffSchemaResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_authzed_api_v1_experimental_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExpRelationSubjectTypeChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_authzed_api_v1_experimental_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExpCaveatParameterTypeChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_authzed_api_v1_experimental_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExpSchemaDiff); i { case 0: return &v.state @@ -3122,16 +3588,16 @@ func file_authzed_api_v1_experimental_service_proto_init() { } } } - file_authzed_api_v1_experimental_service_proto_msgTypes[3].OneofWrappers = []interface{}{ + file_authzed_api_v1_experimental_service_proto_msgTypes[9].OneofWrappers = []interface{}{ (*BulkCheckPermissionPair_Item)(nil), (*BulkCheckPermissionPair_Error)(nil), } - file_authzed_api_v1_experimental_service_proto_msgTypes[16].OneofWrappers = []interface{}{ + file_authzed_api_v1_experimental_service_proto_msgTypes[22].OneofWrappers = []interface{}{ (*ExpTypeReference_IsTerminalSubject)(nil), (*ExpTypeReference_OptionalRelationName)(nil), (*ExpTypeReference_IsPublicWildcard)(nil), } - file_authzed_api_v1_experimental_service_proto_msgTypes[27].OneofWrappers = []interface{}{ + file_authzed_api_v1_experimental_service_proto_msgTypes[33].OneofWrappers = []interface{}{ (*ExpSchemaDiff_DefinitionAdded)(nil), (*ExpSchemaDiff_DefinitionRemoved)(nil), (*ExpSchemaDiff_DefinitionDocCommentChanged)(nil), @@ -3158,7 +3624,7 @@ func file_authzed_api_v1_experimental_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_authzed_api_v1_experimental_service_proto_rawDesc, NumEnums: 0, - NumMessages: 28, + NumMessages: 34, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/authzed/api/v1/experimental_service.pb.gw.go b/proto/authzed/api/v1/experimental_service.pb.gw.go index 679f45b..ceb7adf 100644 --- a/proto/authzed/api/v1/experimental_service.pb.gw.go +++ b/proto/authzed/api/v1/experimental_service.pb.gw.go @@ -226,6 +226,84 @@ func local_request_ExperimentalService_ExperimentalDiffSchema_0(ctx context.Cont } +func request_ExperimentalService_ExperimentalRegisterRelationshipCounter_0(ctx context.Context, marshaler runtime.Marshaler, client ExperimentalServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExperimentalRegisterRelationshipCounterRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ExperimentalRegisterRelationshipCounter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ExperimentalService_ExperimentalRegisterRelationshipCounter_0(ctx context.Context, marshaler runtime.Marshaler, server ExperimentalServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExperimentalRegisterRelationshipCounterRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ExperimentalRegisterRelationshipCounter(ctx, &protoReq) + return msg, metadata, err + +} + +func request_ExperimentalService_ExperimentalCountRelationships_0(ctx context.Context, marshaler runtime.Marshaler, client ExperimentalServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExperimentalCountRelationshipsRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ExperimentalCountRelationships(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ExperimentalService_ExperimentalCountRelationships_0(ctx context.Context, marshaler runtime.Marshaler, server ExperimentalServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExperimentalCountRelationshipsRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ExperimentalCountRelationships(ctx, &protoReq) + return msg, metadata, err + +} + +func request_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0(ctx context.Context, marshaler runtime.Marshaler, client ExperimentalServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExperimentalUnregisterRelationshipCounterRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ExperimentalUnregisterRelationshipCounter(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0(ctx context.Context, marshaler runtime.Marshaler, server ExperimentalServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ExperimentalUnregisterRelationshipCounterRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ExperimentalUnregisterRelationshipCounter(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterExperimentalServiceHandlerServer registers the http handlers for service ExperimentalService to "mux". // UnaryRPC :call ExperimentalServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -371,6 +449,81 @@ func RegisterExperimentalServiceHandlerServer(ctx context.Context, mux *runtime. }) + mux.Handle("POST", pattern_ExperimentalService_ExperimentalRegisterRelationshipCounter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/authzed.api.v1.ExperimentalService/ExperimentalRegisterRelationshipCounter", runtime.WithHTTPPathPattern("/v1/experimental/registerrelationshipcounter")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ExperimentalService_ExperimentalRegisterRelationshipCounter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExperimentalService_ExperimentalRegisterRelationshipCounter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ExperimentalService_ExperimentalCountRelationships_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/authzed.api.v1.ExperimentalService/ExperimentalCountRelationships", runtime.WithHTTPPathPattern("/v1/experimental/countrelationships")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ExperimentalService_ExperimentalCountRelationships_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExperimentalService_ExperimentalCountRelationships_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/authzed.api.v1.ExperimentalService/ExperimentalUnregisterRelationshipCounter", runtime.WithHTTPPathPattern("/v1/experimental/unregisterrelationshipcounter")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -566,6 +719,72 @@ func RegisterExperimentalServiceHandlerClient(ctx context.Context, mux *runtime. }) + mux.Handle("POST", pattern_ExperimentalService_ExperimentalRegisterRelationshipCounter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/authzed.api.v1.ExperimentalService/ExperimentalRegisterRelationshipCounter", runtime.WithHTTPPathPattern("/v1/experimental/registerrelationshipcounter")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ExperimentalService_ExperimentalRegisterRelationshipCounter_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExperimentalService_ExperimentalRegisterRelationshipCounter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ExperimentalService_ExperimentalCountRelationships_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/authzed.api.v1.ExperimentalService/ExperimentalCountRelationships", runtime.WithHTTPPathPattern("/v1/experimental/countrelationships")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ExperimentalService_ExperimentalCountRelationships_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExperimentalService_ExperimentalCountRelationships_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/authzed.api.v1.ExperimentalService/ExperimentalUnregisterRelationshipCounter", runtime.WithHTTPPathPattern("/v1/experimental/unregisterrelationshipcounter")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -583,6 +802,12 @@ var ( pattern_ExperimentalService_ExperimentalDependentRelations_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "experimental", "permissions", "dependent"}, "")) pattern_ExperimentalService_ExperimentalDiffSchema_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "experimental", "diffschema"}, "")) + + pattern_ExperimentalService_ExperimentalRegisterRelationshipCounter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "experimental", "registerrelationshipcounter"}, "")) + + pattern_ExperimentalService_ExperimentalCountRelationships_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "experimental", "countrelationships"}, "")) + + pattern_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "experimental", "unregisterrelationshipcounter"}, "")) ) var ( @@ -599,4 +824,10 @@ var ( forward_ExperimentalService_ExperimentalDependentRelations_0 = runtime.ForwardResponseMessage forward_ExperimentalService_ExperimentalDiffSchema_0 = runtime.ForwardResponseMessage + + forward_ExperimentalService_ExperimentalRegisterRelationshipCounter_0 = runtime.ForwardResponseMessage + + forward_ExperimentalService_ExperimentalCountRelationships_0 = runtime.ForwardResponseMessage + + forward_ExperimentalService_ExperimentalUnregisterRelationshipCounter_0 = runtime.ForwardResponseMessage ) diff --git a/proto/authzed/api/v1/experimental_service.pb.validate.go b/proto/authzed/api/v1/experimental_service.pb.validate.go index 4f98901..c64da7f 100644 --- a/proto/authzed/api/v1/experimental_service.pb.validate.go +++ b/proto/authzed/api/v1/experimental_service.pb.validate.go @@ -35,6 +35,854 @@ var ( _ = sort.Sort ) +// Validate checks the field values on +// ExperimentalRegisterRelationshipCounterRequest with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *ExperimentalRegisterRelationshipCounterRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// ExperimentalRegisterRelationshipCounterRequest with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in +// ExperimentalRegisterRelationshipCounterRequestMultiError, or nil if none found. +func (m *ExperimentalRegisterRelationshipCounterRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ExperimentalRegisterRelationshipCounterRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetRelationshipFilter() == nil { + err := ExperimentalRegisterRelationshipCounterRequestValidationError{ + field: "RelationshipFilter", + reason: "value is required", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRelationshipFilter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ExperimentalRegisterRelationshipCounterRequestValidationError{ + field: "RelationshipFilter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ExperimentalRegisterRelationshipCounterRequestValidationError{ + field: "RelationshipFilter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRelationshipFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExperimentalRegisterRelationshipCounterRequestValidationError{ + field: "RelationshipFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return ExperimentalRegisterRelationshipCounterRequestMultiError(errors) + } + + return nil +} + +// ExperimentalRegisterRelationshipCounterRequestMultiError is an error +// wrapping multiple validation errors returned by +// ExperimentalRegisterRelationshipCounterRequest.ValidateAll() if the +// designated constraints aren't met. +type ExperimentalRegisterRelationshipCounterRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExperimentalRegisterRelationshipCounterRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExperimentalRegisterRelationshipCounterRequestMultiError) AllErrors() []error { return m } + +// ExperimentalRegisterRelationshipCounterRequestValidationError is the +// validation error returned by +// ExperimentalRegisterRelationshipCounterRequest.Validate if the designated +// constraints aren't met. +type ExperimentalRegisterRelationshipCounterRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExperimentalRegisterRelationshipCounterRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExperimentalRegisterRelationshipCounterRequestValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e ExperimentalRegisterRelationshipCounterRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExperimentalRegisterRelationshipCounterRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExperimentalRegisterRelationshipCounterRequestValidationError) ErrorName() string { + return "ExperimentalRegisterRelationshipCounterRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ExperimentalRegisterRelationshipCounterRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExperimentalRegisterRelationshipCounterRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExperimentalRegisterRelationshipCounterRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExperimentalRegisterRelationshipCounterRequestValidationError{} + +// Validate checks the field values on +// ExperimentalRegisterRelationshipCounterResponse with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *ExperimentalRegisterRelationshipCounterResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// ExperimentalRegisterRelationshipCounterResponse with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in +// ExperimentalRegisterRelationshipCounterResponseMultiError, or nil if none found. +func (m *ExperimentalRegisterRelationshipCounterResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ExperimentalRegisterRelationshipCounterResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ExperimentalRegisterRelationshipCounterResponseMultiError(errors) + } + + return nil +} + +// ExperimentalRegisterRelationshipCounterResponseMultiError is an error +// wrapping multiple validation errors returned by +// ExperimentalRegisterRelationshipCounterResponse.ValidateAll() if the +// designated constraints aren't met. +type ExperimentalRegisterRelationshipCounterResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExperimentalRegisterRelationshipCounterResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExperimentalRegisterRelationshipCounterResponseMultiError) AllErrors() []error { return m } + +// ExperimentalRegisterRelationshipCounterResponseValidationError is the +// validation error returned by +// ExperimentalRegisterRelationshipCounterResponse.Validate if the designated +// constraints aren't met. +type ExperimentalRegisterRelationshipCounterResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExperimentalRegisterRelationshipCounterResponseValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e ExperimentalRegisterRelationshipCounterResponseValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e ExperimentalRegisterRelationshipCounterResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExperimentalRegisterRelationshipCounterResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExperimentalRegisterRelationshipCounterResponseValidationError) ErrorName() string { + return "ExperimentalRegisterRelationshipCounterResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ExperimentalRegisterRelationshipCounterResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExperimentalRegisterRelationshipCounterResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExperimentalRegisterRelationshipCounterResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExperimentalRegisterRelationshipCounterResponseValidationError{} + +// Validate checks the field values on ExperimentalCountRelationshipsRequest +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *ExperimentalCountRelationshipsRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on ExperimentalCountRelationshipsRequest +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// ExperimentalCountRelationshipsRequestMultiError, or nil if none found. +func (m *ExperimentalCountRelationshipsRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ExperimentalCountRelationshipsRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetConsistency()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ExperimentalCountRelationshipsRequestValidationError{ + field: "Consistency", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ExperimentalCountRelationshipsRequestValidationError{ + field: "Consistency", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetConsistency()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExperimentalCountRelationshipsRequestValidationError{ + field: "Consistency", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if m.GetRelationshipFilter() == nil { + err := ExperimentalCountRelationshipsRequestValidationError{ + field: "RelationshipFilter", + reason: "value is required", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRelationshipFilter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ExperimentalCountRelationshipsRequestValidationError{ + field: "RelationshipFilter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ExperimentalCountRelationshipsRequestValidationError{ + field: "RelationshipFilter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRelationshipFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExperimentalCountRelationshipsRequestValidationError{ + field: "RelationshipFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return ExperimentalCountRelationshipsRequestMultiError(errors) + } + + return nil +} + +// ExperimentalCountRelationshipsRequestMultiError is an error wrapping +// multiple validation errors returned by +// ExperimentalCountRelationshipsRequest.ValidateAll() if the designated +// constraints aren't met. +type ExperimentalCountRelationshipsRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExperimentalCountRelationshipsRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExperimentalCountRelationshipsRequestMultiError) AllErrors() []error { return m } + +// ExperimentalCountRelationshipsRequestValidationError is the validation error +// returned by ExperimentalCountRelationshipsRequest.Validate if the +// designated constraints aren't met. +type ExperimentalCountRelationshipsRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExperimentalCountRelationshipsRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExperimentalCountRelationshipsRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExperimentalCountRelationshipsRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExperimentalCountRelationshipsRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExperimentalCountRelationshipsRequestValidationError) ErrorName() string { + return "ExperimentalCountRelationshipsRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ExperimentalCountRelationshipsRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExperimentalCountRelationshipsRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExperimentalCountRelationshipsRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExperimentalCountRelationshipsRequestValidationError{} + +// Validate checks the field values on ExperimentalCountRelationshipsResponse +// with the rules defined in the proto definition for this message. If any +// rules are violated, the first error encountered is returned, or nil if +// there are no violations. +func (m *ExperimentalCountRelationshipsResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// ExperimentalCountRelationshipsResponse with the rules defined in the proto +// definition for this message. If any rules are violated, the result is a +// list of violation errors wrapped in +// ExperimentalCountRelationshipsResponseMultiError, or nil if none found. +func (m *ExperimentalCountRelationshipsResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ExperimentalCountRelationshipsResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetReadAt() == nil { + err := ExperimentalCountRelationshipsResponseValidationError{ + field: "ReadAt", + reason: "value is required", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetReadAt()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ExperimentalCountRelationshipsResponseValidationError{ + field: "ReadAt", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ExperimentalCountRelationshipsResponseValidationError{ + field: "ReadAt", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetReadAt()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExperimentalCountRelationshipsResponseValidationError{ + field: "ReadAt", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for RelationshipCount + + if len(errors) > 0 { + return ExperimentalCountRelationshipsResponseMultiError(errors) + } + + return nil +} + +// ExperimentalCountRelationshipsResponseMultiError is an error wrapping +// multiple validation errors returned by +// ExperimentalCountRelationshipsResponse.ValidateAll() if the designated +// constraints aren't met. +type ExperimentalCountRelationshipsResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExperimentalCountRelationshipsResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExperimentalCountRelationshipsResponseMultiError) AllErrors() []error { return m } + +// ExperimentalCountRelationshipsResponseValidationError is the validation +// error returned by ExperimentalCountRelationshipsResponse.Validate if the +// designated constraints aren't met. +type ExperimentalCountRelationshipsResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExperimentalCountRelationshipsResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e ExperimentalCountRelationshipsResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e ExperimentalCountRelationshipsResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e ExperimentalCountRelationshipsResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExperimentalCountRelationshipsResponseValidationError) ErrorName() string { + return "ExperimentalCountRelationshipsResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ExperimentalCountRelationshipsResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExperimentalCountRelationshipsResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExperimentalCountRelationshipsResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExperimentalCountRelationshipsResponseValidationError{} + +// Validate checks the field values on +// ExperimentalUnregisterRelationshipCounterRequest with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *ExperimentalUnregisterRelationshipCounterRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// ExperimentalUnregisterRelationshipCounterRequest with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in +// ExperimentalUnregisterRelationshipCounterRequestMultiError, or nil if none found. +func (m *ExperimentalUnregisterRelationshipCounterRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *ExperimentalUnregisterRelationshipCounterRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if m.GetRelationshipFilter() == nil { + err := ExperimentalUnregisterRelationshipCounterRequestValidationError{ + field: "RelationshipFilter", + reason: "value is required", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetRelationshipFilter()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, ExperimentalUnregisterRelationshipCounterRequestValidationError{ + field: "RelationshipFilter", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, ExperimentalUnregisterRelationshipCounterRequestValidationError{ + field: "RelationshipFilter", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetRelationshipFilter()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return ExperimentalUnregisterRelationshipCounterRequestValidationError{ + field: "RelationshipFilter", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return ExperimentalUnregisterRelationshipCounterRequestMultiError(errors) + } + + return nil +} + +// ExperimentalUnregisterRelationshipCounterRequestMultiError is an error +// wrapping multiple validation errors returned by +// ExperimentalUnregisterRelationshipCounterRequest.ValidateAll() if the +// designated constraints aren't met. +type ExperimentalUnregisterRelationshipCounterRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExperimentalUnregisterRelationshipCounterRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExperimentalUnregisterRelationshipCounterRequestMultiError) AllErrors() []error { return m } + +// ExperimentalUnregisterRelationshipCounterRequestValidationError is the +// validation error returned by +// ExperimentalUnregisterRelationshipCounterRequest.Validate if the designated +// constraints aren't met. +type ExperimentalUnregisterRelationshipCounterRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExperimentalUnregisterRelationshipCounterRequestValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e ExperimentalUnregisterRelationshipCounterRequestValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e ExperimentalUnregisterRelationshipCounterRequestValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e ExperimentalUnregisterRelationshipCounterRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExperimentalUnregisterRelationshipCounterRequestValidationError) ErrorName() string { + return "ExperimentalUnregisterRelationshipCounterRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e ExperimentalUnregisterRelationshipCounterRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExperimentalUnregisterRelationshipCounterRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExperimentalUnregisterRelationshipCounterRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExperimentalUnregisterRelationshipCounterRequestValidationError{} + +// Validate checks the field values on +// ExperimentalUnregisterRelationshipCounterResponse with the rules defined in +// the proto definition for this message. If any rules are violated, the first +// error encountered is returned, or nil if there are no violations. +func (m *ExperimentalUnregisterRelationshipCounterResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on +// ExperimentalUnregisterRelationshipCounterResponse with the rules defined in +// the proto definition for this message. If any rules are violated, the +// result is a list of violation errors wrapped in +// ExperimentalUnregisterRelationshipCounterResponseMultiError, or nil if none found. +func (m *ExperimentalUnregisterRelationshipCounterResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *ExperimentalUnregisterRelationshipCounterResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if len(errors) > 0 { + return ExperimentalUnregisterRelationshipCounterResponseMultiError(errors) + } + + return nil +} + +// ExperimentalUnregisterRelationshipCounterResponseMultiError is an error +// wrapping multiple validation errors returned by +// ExperimentalUnregisterRelationshipCounterResponse.ValidateAll() if the +// designated constraints aren't met. +type ExperimentalUnregisterRelationshipCounterResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m ExperimentalUnregisterRelationshipCounterResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m ExperimentalUnregisterRelationshipCounterResponseMultiError) AllErrors() []error { return m } + +// ExperimentalUnregisterRelationshipCounterResponseValidationError is the +// validation error returned by +// ExperimentalUnregisterRelationshipCounterResponse.Validate if the +// designated constraints aren't met. +type ExperimentalUnregisterRelationshipCounterResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e ExperimentalUnregisterRelationshipCounterResponseValidationError) Field() string { + return e.field +} + +// Reason function returns reason value. +func (e ExperimentalUnregisterRelationshipCounterResponseValidationError) Reason() string { + return e.reason +} + +// Cause function returns cause value. +func (e ExperimentalUnregisterRelationshipCounterResponseValidationError) Cause() error { + return e.cause +} + +// Key function returns key value. +func (e ExperimentalUnregisterRelationshipCounterResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e ExperimentalUnregisterRelationshipCounterResponseValidationError) ErrorName() string { + return "ExperimentalUnregisterRelationshipCounterResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e ExperimentalUnregisterRelationshipCounterResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sExperimentalUnregisterRelationshipCounterResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = ExperimentalUnregisterRelationshipCounterResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = ExperimentalUnregisterRelationshipCounterResponseValidationError{} + // Validate checks the field values on BulkCheckPermissionRequest with the // rules defined in the proto definition for this message. If any rules are // violated, the first error encountered is returned, or nil if there are no violations. diff --git a/proto/authzed/api/v1/experimental_service_grpc.pb.go b/proto/authzed/api/v1/experimental_service_grpc.pb.go index 76bd431..a671d10 100644 --- a/proto/authzed/api/v1/experimental_service_grpc.pb.go +++ b/proto/authzed/api/v1/experimental_service_grpc.pb.go @@ -19,13 +19,16 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - ExperimentalService_BulkImportRelationships_FullMethodName = "/authzed.api.v1.ExperimentalService/BulkImportRelationships" - ExperimentalService_BulkExportRelationships_FullMethodName = "/authzed.api.v1.ExperimentalService/BulkExportRelationships" - ExperimentalService_BulkCheckPermission_FullMethodName = "/authzed.api.v1.ExperimentalService/BulkCheckPermission" - ExperimentalService_ExperimentalReflectSchema_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalReflectSchema" - ExperimentalService_ExperimentalComputablePermissions_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalComputablePermissions" - ExperimentalService_ExperimentalDependentRelations_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalDependentRelations" - ExperimentalService_ExperimentalDiffSchema_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalDiffSchema" + ExperimentalService_BulkImportRelationships_FullMethodName = "/authzed.api.v1.ExperimentalService/BulkImportRelationships" + ExperimentalService_BulkExportRelationships_FullMethodName = "/authzed.api.v1.ExperimentalService/BulkExportRelationships" + ExperimentalService_BulkCheckPermission_FullMethodName = "/authzed.api.v1.ExperimentalService/BulkCheckPermission" + ExperimentalService_ExperimentalReflectSchema_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalReflectSchema" + ExperimentalService_ExperimentalComputablePermissions_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalComputablePermissions" + ExperimentalService_ExperimentalDependentRelations_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalDependentRelations" + ExperimentalService_ExperimentalDiffSchema_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalDiffSchema" + ExperimentalService_ExperimentalRegisterRelationshipCounter_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalRegisterRelationshipCounter" + ExperimentalService_ExperimentalCountRelationships_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalCountRelationships" + ExperimentalService_ExperimentalUnregisterRelationshipCounter_FullMethodName = "/authzed.api.v1.ExperimentalService/ExperimentalUnregisterRelationshipCounter" ) // ExperimentalServiceClient is the client API for ExperimentalService service. @@ -66,6 +69,13 @@ type ExperimentalServiceClient interface { // specified schema and the schema stored in SpiceDB. This is useful for clients that need to // introspect the schema of a SpiceDB instance. ExperimentalDiffSchema(ctx context.Context, in *ExperimentalDiffSchemaRequest, opts ...grpc.CallOption) (*ExperimentalDiffSchemaResponse, error) + // EXPERIMENTAL: RegisterRelationshipCounter registers a new filter for counting relationships. A filter must be registered before + // a count can be requested. + ExperimentalRegisterRelationshipCounter(ctx context.Context, in *ExperimentalRegisterRelationshipCounterRequest, opts ...grpc.CallOption) (*ExperimentalRegisterRelationshipCounterResponse, error) + // EXPERIMENTAL: CountRelationships returns the count of relationships for *pre-registered* filter. + ExperimentalCountRelationships(ctx context.Context, in *ExperimentalCountRelationshipsRequest, opts ...grpc.CallOption) (*ExperimentalCountRelationshipsResponse, error) + // EXPERIMENTAL: UnregisterRelationshipCounter unregisters an existing filter for counting relationships. + ExperimentalUnregisterRelationshipCounter(ctx context.Context, in *ExperimentalUnregisterRelationshipCounterRequest, opts ...grpc.CallOption) (*ExperimentalUnregisterRelationshipCounterResponse, error) } type experimentalServiceClient struct { @@ -188,6 +198,33 @@ func (c *experimentalServiceClient) ExperimentalDiffSchema(ctx context.Context, return out, nil } +func (c *experimentalServiceClient) ExperimentalRegisterRelationshipCounter(ctx context.Context, in *ExperimentalRegisterRelationshipCounterRequest, opts ...grpc.CallOption) (*ExperimentalRegisterRelationshipCounterResponse, error) { + out := new(ExperimentalRegisterRelationshipCounterResponse) + err := c.cc.Invoke(ctx, ExperimentalService_ExperimentalRegisterRelationshipCounter_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *experimentalServiceClient) ExperimentalCountRelationships(ctx context.Context, in *ExperimentalCountRelationshipsRequest, opts ...grpc.CallOption) (*ExperimentalCountRelationshipsResponse, error) { + out := new(ExperimentalCountRelationshipsResponse) + err := c.cc.Invoke(ctx, ExperimentalService_ExperimentalCountRelationships_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *experimentalServiceClient) ExperimentalUnregisterRelationshipCounter(ctx context.Context, in *ExperimentalUnregisterRelationshipCounterRequest, opts ...grpc.CallOption) (*ExperimentalUnregisterRelationshipCounterResponse, error) { + out := new(ExperimentalUnregisterRelationshipCounterResponse) + err := c.cc.Invoke(ctx, ExperimentalService_ExperimentalUnregisterRelationshipCounter_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ExperimentalServiceServer is the server API for ExperimentalService service. // All implementations must embed UnimplementedExperimentalServiceServer // for forward compatibility @@ -226,6 +263,13 @@ type ExperimentalServiceServer interface { // specified schema and the schema stored in SpiceDB. This is useful for clients that need to // introspect the schema of a SpiceDB instance. ExperimentalDiffSchema(context.Context, *ExperimentalDiffSchemaRequest) (*ExperimentalDiffSchemaResponse, error) + // EXPERIMENTAL: RegisterRelationshipCounter registers a new filter for counting relationships. A filter must be registered before + // a count can be requested. + ExperimentalRegisterRelationshipCounter(context.Context, *ExperimentalRegisterRelationshipCounterRequest) (*ExperimentalRegisterRelationshipCounterResponse, error) + // EXPERIMENTAL: CountRelationships returns the count of relationships for *pre-registered* filter. + ExperimentalCountRelationships(context.Context, *ExperimentalCountRelationshipsRequest) (*ExperimentalCountRelationshipsResponse, error) + // EXPERIMENTAL: UnregisterRelationshipCounter unregisters an existing filter for counting relationships. + ExperimentalUnregisterRelationshipCounter(context.Context, *ExperimentalUnregisterRelationshipCounterRequest) (*ExperimentalUnregisterRelationshipCounterResponse, error) mustEmbedUnimplementedExperimentalServiceServer() } @@ -254,6 +298,15 @@ func (UnimplementedExperimentalServiceServer) ExperimentalDependentRelations(con func (UnimplementedExperimentalServiceServer) ExperimentalDiffSchema(context.Context, *ExperimentalDiffSchemaRequest) (*ExperimentalDiffSchemaResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ExperimentalDiffSchema not implemented") } +func (UnimplementedExperimentalServiceServer) ExperimentalRegisterRelationshipCounter(context.Context, *ExperimentalRegisterRelationshipCounterRequest) (*ExperimentalRegisterRelationshipCounterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ExperimentalRegisterRelationshipCounter not implemented") +} +func (UnimplementedExperimentalServiceServer) ExperimentalCountRelationships(context.Context, *ExperimentalCountRelationshipsRequest) (*ExperimentalCountRelationshipsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ExperimentalCountRelationships not implemented") +} +func (UnimplementedExperimentalServiceServer) ExperimentalUnregisterRelationshipCounter(context.Context, *ExperimentalUnregisterRelationshipCounterRequest) (*ExperimentalUnregisterRelationshipCounterResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ExperimentalUnregisterRelationshipCounter not implemented") +} func (UnimplementedExperimentalServiceServer) mustEmbedUnimplementedExperimentalServiceServer() {} // UnsafeExperimentalServiceServer may be embedded to opt out of forward compatibility for this service. @@ -404,6 +457,60 @@ func _ExperimentalService_ExperimentalDiffSchema_Handler(srv interface{}, ctx co return interceptor(ctx, in, info, handler) } +func _ExperimentalService_ExperimentalRegisterRelationshipCounter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExperimentalRegisterRelationshipCounterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExperimentalServiceServer).ExperimentalRegisterRelationshipCounter(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ExperimentalService_ExperimentalRegisterRelationshipCounter_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExperimentalServiceServer).ExperimentalRegisterRelationshipCounter(ctx, req.(*ExperimentalRegisterRelationshipCounterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ExperimentalService_ExperimentalCountRelationships_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExperimentalCountRelationshipsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExperimentalServiceServer).ExperimentalCountRelationships(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ExperimentalService_ExperimentalCountRelationships_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExperimentalServiceServer).ExperimentalCountRelationships(ctx, req.(*ExperimentalCountRelationshipsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ExperimentalService_ExperimentalUnregisterRelationshipCounter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ExperimentalUnregisterRelationshipCounterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExperimentalServiceServer).ExperimentalUnregisterRelationshipCounter(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ExperimentalService_ExperimentalUnregisterRelationshipCounter_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExperimentalServiceServer).ExperimentalUnregisterRelationshipCounter(ctx, req.(*ExperimentalUnregisterRelationshipCounterRequest)) + } + return interceptor(ctx, in, info, handler) +} + // ExperimentalService_ServiceDesc is the grpc.ServiceDesc for ExperimentalService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -431,6 +538,18 @@ var ExperimentalService_ServiceDesc = grpc.ServiceDesc{ MethodName: "ExperimentalDiffSchema", Handler: _ExperimentalService_ExperimentalDiffSchema_Handler, }, + { + MethodName: "ExperimentalRegisterRelationshipCounter", + Handler: _ExperimentalService_ExperimentalRegisterRelationshipCounter_Handler, + }, + { + MethodName: "ExperimentalCountRelationships", + Handler: _ExperimentalService_ExperimentalCountRelationships_Handler, + }, + { + MethodName: "ExperimentalUnregisterRelationshipCounter", + Handler: _ExperimentalService_ExperimentalUnregisterRelationshipCounter_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/proto/authzed/api/v1/experimental_service_vtproto.pb.go b/proto/authzed/api/v1/experimental_service_vtproto.pb.go index 02d6e1b..be16e51 100644 --- a/proto/authzed/api/v1/experimental_service_vtproto.pb.go +++ b/proto/authzed/api/v1/experimental_service_vtproto.pb.go @@ -22,6 +22,108 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +func (m *ExperimentalRegisterRelationshipCounterRequest) CloneVT() *ExperimentalRegisterRelationshipCounterRequest { + if m == nil { + return (*ExperimentalRegisterRelationshipCounterRequest)(nil) + } + r := new(ExperimentalRegisterRelationshipCounterRequest) + r.RelationshipFilter = m.RelationshipFilter.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExperimentalRegisterRelationshipCounterRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ExperimentalRegisterRelationshipCounterResponse) CloneVT() *ExperimentalRegisterRelationshipCounterResponse { + if m == nil { + return (*ExperimentalRegisterRelationshipCounterResponse)(nil) + } + r := new(ExperimentalRegisterRelationshipCounterResponse) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExperimentalRegisterRelationshipCounterResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ExperimentalCountRelationshipsRequest) CloneVT() *ExperimentalCountRelationshipsRequest { + if m == nil { + return (*ExperimentalCountRelationshipsRequest)(nil) + } + r := new(ExperimentalCountRelationshipsRequest) + r.Consistency = m.Consistency.CloneVT() + r.RelationshipFilter = m.RelationshipFilter.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExperimentalCountRelationshipsRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ExperimentalCountRelationshipsResponse) CloneVT() *ExperimentalCountRelationshipsResponse { + if m == nil { + return (*ExperimentalCountRelationshipsResponse)(nil) + } + r := new(ExperimentalCountRelationshipsResponse) + r.ReadAt = m.ReadAt.CloneVT() + r.RelationshipCount = m.RelationshipCount + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExperimentalCountRelationshipsResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ExperimentalUnregisterRelationshipCounterRequest) CloneVT() *ExperimentalUnregisterRelationshipCounterRequest { + if m == nil { + return (*ExperimentalUnregisterRelationshipCounterRequest)(nil) + } + r := new(ExperimentalUnregisterRelationshipCounterRequest) + r.RelationshipFilter = m.RelationshipFilter.CloneVT() + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExperimentalUnregisterRelationshipCounterRequest) CloneMessageVT() proto.Message { + return m.CloneVT() +} + +func (m *ExperimentalUnregisterRelationshipCounterResponse) CloneVT() *ExperimentalUnregisterRelationshipCounterResponse { + if m == nil { + return (*ExperimentalUnregisterRelationshipCounterResponse)(nil) + } + r := new(ExperimentalUnregisterRelationshipCounterResponse) + if len(m.unknownFields) > 0 { + r.unknownFields = make([]byte, len(m.unknownFields)) + copy(r.unknownFields, m.unknownFields) + } + return r +} + +func (m *ExperimentalUnregisterRelationshipCounterResponse) CloneMessageVT() proto.Message { + return m.CloneVT() +} + func (m *BulkCheckPermissionRequest) CloneVT() *BulkCheckPermissionRequest { if m == nil { return (*BulkCheckPermissionRequest)(nil) @@ -859,6 +961,120 @@ func (m *ExpSchemaDiff_CaveatParameterTypeChanged) CloneVT() isExpSchemaDiff_Dif return r } +func (this *ExperimentalRegisterRelationshipCounterRequest) EqualVT(that *ExperimentalRegisterRelationshipCounterRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.RelationshipFilter.EqualVT(that.RelationshipFilter) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExperimentalRegisterRelationshipCounterRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExperimentalRegisterRelationshipCounterRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ExperimentalRegisterRelationshipCounterResponse) EqualVT(that *ExperimentalRegisterRelationshipCounterResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExperimentalRegisterRelationshipCounterResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExperimentalRegisterRelationshipCounterResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ExperimentalCountRelationshipsRequest) EqualVT(that *ExperimentalCountRelationshipsRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.Consistency.EqualVT(that.Consistency) { + return false + } + if !this.RelationshipFilter.EqualVT(that.RelationshipFilter) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExperimentalCountRelationshipsRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExperimentalCountRelationshipsRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ExperimentalCountRelationshipsResponse) EqualVT(that *ExperimentalCountRelationshipsResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.ReadAt.EqualVT(that.ReadAt) { + return false + } + if this.RelationshipCount != that.RelationshipCount { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExperimentalCountRelationshipsResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExperimentalCountRelationshipsResponse) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ExperimentalUnregisterRelationshipCounterRequest) EqualVT(that *ExperimentalUnregisterRelationshipCounterRequest) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + if !this.RelationshipFilter.EqualVT(that.RelationshipFilter) { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExperimentalUnregisterRelationshipCounterRequest) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExperimentalUnregisterRelationshipCounterRequest) + if !ok { + return false + } + return this.EqualVT(that) +} +func (this *ExperimentalUnregisterRelationshipCounterResponse) EqualVT(that *ExperimentalUnregisterRelationshipCounterResponse) bool { + if this == that { + return true + } else if this == nil || that == nil { + return false + } + return string(this.unknownFields) == string(that.unknownFields) +} + +func (this *ExperimentalUnregisterRelationshipCounterResponse) EqualMessageVT(thatMsg proto.Message) bool { + that, ok := thatMsg.(*ExperimentalUnregisterRelationshipCounterResponse) + if !ok { + return false + } + return this.EqualVT(that) +} func (this *BulkCheckPermissionRequest) EqualVT(that *BulkCheckPermissionRequest) bool { if this == that { return true @@ -2329,7 +2545,7 @@ func (this *ExpSchemaDiff_CaveatParameterTypeChanged) EqualVT(thatIface isExpSch return true } -func (m *BulkCheckPermissionRequest) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalRegisterRelationshipCounterRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2342,12 +2558,12 @@ func (m *BulkCheckPermissionRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BulkCheckPermissionRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalRegisterRelationshipCounterRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BulkCheckPermissionRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalRegisterRelationshipCounterRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2359,20 +2575,8 @@ func (m *BulkCheckPermissionRequest) MarshalToSizedBufferVT(dAtA []byte) (int, e i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Items) > 0 { - for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Items[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - } - } - if m.Consistency != nil { - size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) + if m.RelationshipFilter != nil { + size, err := m.RelationshipFilter.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2384,7 +2588,7 @@ func (m *BulkCheckPermissionRequest) MarshalToSizedBufferVT(dAtA []byte) (int, e return len(dAtA) - i, nil } -func (m *BulkCheckPermissionRequestItem) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalRegisterRelationshipCounterResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2397,12 +2601,12 @@ func (m *BulkCheckPermissionRequestItem) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BulkCheckPermissionRequestItem) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalRegisterRelationshipCounterResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BulkCheckPermissionRequestItem) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalRegisterRelationshipCounterResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2414,47 +2618,10 @@ func (m *BulkCheckPermissionRequestItem) MarshalToSizedBufferVT(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.Context != nil { - size, err := (*structpb1.Struct)(m.Context).MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x22 - } - if m.Subject != nil { - size, err := m.Subject.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - if len(m.Permission) > 0 { - i -= len(m.Permission) - copy(dAtA[i:], m.Permission) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Permission))) - i-- - dAtA[i] = 0x12 - } - if m.Resource != nil { - size, err := m.Resource.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *BulkCheckPermissionResponse) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalCountRelationshipsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2467,12 +2634,12 @@ func (m *BulkCheckPermissionResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BulkCheckPermissionResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalCountRelationshipsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BulkCheckPermissionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalCountRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2484,20 +2651,18 @@ func (m *BulkCheckPermissionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Pairs) > 0 { - for iNdEx := len(m.Pairs) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Pairs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 + if m.RelationshipFilter != nil { + size, err := m.RelationshipFilter.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 } - if m.CheckedAt != nil { - size, err := m.CheckedAt.MarshalToSizedBufferVT(dAtA[:i]) + if m.Consistency != nil { + size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2509,7 +2674,7 @@ func (m *BulkCheckPermissionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *BulkCheckPermissionPair) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalCountRelationshipsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2522,12 +2687,12 @@ func (m *BulkCheckPermissionPair) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BulkCheckPermissionPair) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalCountRelationshipsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BulkCheckPermissionPair) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalCountRelationshipsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2539,79 +2704,25 @@ func (m *BulkCheckPermissionPair) MarshalToSizedBufferVT(dAtA []byte) (int, erro i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Response.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - } - if m.Request != nil { - size, err := m.Request.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if m.RelationshipCount != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.RelationshipCount)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x10 } - return len(dAtA) - i, nil -} - -func (m *BulkCheckPermissionPair_Item) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *BulkCheckPermissionPair_Item) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Item != nil { - size, err := m.Item.MarshalToSizedBufferVT(dAtA[:i]) + if m.ReadAt != nil { + size, err := m.ReadAt.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *BulkCheckPermissionPair_Error) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} -func (m *BulkCheckPermissionPair_Error) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.Error != nil { - if vtmsg, ok := interface{}(m.Error).(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - } else { - encoded, err := proto.Marshal(m.Error) - if err != nil { - return 0, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) - } - i-- - dAtA[i] = 0x1a - } - return len(dAtA) - i, nil -} -func (m *BulkCheckPermissionResponseItem) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalUnregisterRelationshipCounterRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2624,12 +2735,12 @@ func (m *BulkCheckPermissionResponseItem) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BulkCheckPermissionResponseItem) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalUnregisterRelationshipCounterRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BulkCheckPermissionResponseItem) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalUnregisterRelationshipCounterRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2641,25 +2752,20 @@ func (m *BulkCheckPermissionResponseItem) MarshalToSizedBufferVT(dAtA []byte) (i i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.PartialCaveatInfo != nil { - size, err := m.PartialCaveatInfo.MarshalToSizedBufferVT(dAtA[:i]) + if m.RelationshipFilter != nil { + size, err := m.RelationshipFilter.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x12 - } - if m.Permissionship != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Permissionship)) - i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *BulkImportRelationshipsRequest) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalUnregisterRelationshipCounterResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2672,12 +2778,12 @@ func (m *BulkImportRelationshipsRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BulkImportRelationshipsRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalUnregisterRelationshipCounterResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BulkImportRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalUnregisterRelationshipCounterResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2689,22 +2795,10 @@ func (m *BulkImportRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Relationships) > 0 { - for iNdEx := len(m.Relationships) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Relationships[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } - } return len(dAtA) - i, nil } -func (m *BulkImportRelationshipsResponse) MarshalVT() (dAtA []byte, err error) { +func (m *BulkCheckPermissionRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2717,12 +2811,12 @@ func (m *BulkImportRelationshipsResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BulkImportRelationshipsResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BulkImportRelationshipsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2734,15 +2828,32 @@ func (m *BulkImportRelationshipsResponse) MarshalToSizedBufferVT(dAtA []byte) (i i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.NumLoaded != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NumLoaded)) + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Items[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if m.Consistency != nil { + size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *BulkExportRelationshipsRequest) MarshalVT() (dAtA []byte, err error) { +func (m *BulkCheckPermissionRequestItem) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2755,12 +2866,12 @@ func (m *BulkExportRelationshipsRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BulkExportRelationshipsRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionRequestItem) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BulkExportRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionRequestItem) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2772,8 +2883,8 @@ func (m *BulkExportRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.OptionalRelationshipFilter != nil { - size, err := m.OptionalRelationshipFilter.MarshalToSizedBufferVT(dAtA[:i]) + if m.Context != nil { + size, err := (*structpb1.Struct)(m.Context).MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2782,8 +2893,8 @@ func (m *BulkExportRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (in i-- dAtA[i] = 0x22 } - if m.OptionalCursor != nil { - size, err := m.OptionalCursor.MarshalToSizedBufferVT(dAtA[:i]) + if m.Subject != nil { + size, err := m.Subject.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2792,13 +2903,15 @@ func (m *BulkExportRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (in i-- dAtA[i] = 0x1a } - if m.OptionalLimit != 0 { - i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OptionalLimit)) + if len(m.Permission) > 0 { + i -= len(m.Permission) + copy(dAtA[i:], m.Permission) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Permission))) i-- - dAtA[i] = 0x10 + dAtA[i] = 0x12 } - if m.Consistency != nil { - size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) + if m.Resource != nil { + size, err := m.Resource.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2810,7 +2923,7 @@ func (m *BulkExportRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (in return len(dAtA) - i, nil } -func (m *BulkExportRelationshipsResponse) MarshalVT() (dAtA []byte, err error) { +func (m *BulkCheckPermissionResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2823,12 +2936,12 @@ func (m *BulkExportRelationshipsResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *BulkExportRelationshipsResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *BulkExportRelationshipsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2840,9 +2953,9 @@ func (m *BulkExportRelationshipsResponse) MarshalToSizedBufferVT(dAtA []byte) (i i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Relationships) > 0 { - for iNdEx := len(m.Relationships) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Relationships[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.Pairs) > 0 { + for iNdEx := len(m.Pairs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Pairs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2852,8 +2965,8 @@ func (m *BulkExportRelationshipsResponse) MarshalToSizedBufferVT(dAtA []byte) (i dAtA[i] = 0x12 } } - if m.AfterResultCursor != nil { - size, err := m.AfterResultCursor.MarshalToSizedBufferVT(dAtA[:i]) + if m.CheckedAt != nil { + size, err := m.CheckedAt.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2865,7 +2978,7 @@ func (m *BulkExportRelationshipsResponse) MarshalToSizedBufferVT(dAtA []byte) (i return len(dAtA) - i, nil } -func (m *ExperimentalReflectSchemaRequest) MarshalVT() (dAtA []byte, err error) { +func (m *BulkCheckPermissionPair) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -2878,12 +2991,12 @@ func (m *ExperimentalReflectSchemaRequest) MarshalVT() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *ExperimentalReflectSchemaRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionPair) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExperimentalReflectSchemaRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionPair) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -2895,20 +3008,17 @@ func (m *ExperimentalReflectSchemaRequest) MarshalToSizedBufferVT(dAtA []byte) ( i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OptionalFilters) > 0 { - for iNdEx := len(m.OptionalFilters) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.OptionalFilters[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 + if vtmsg, ok := m.Response.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err } + i -= size } - if m.Consistency != nil { - size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) + if m.Request != nil { + size, err := m.Request.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -2920,74 +3030,57 @@ func (m *ExperimentalReflectSchemaRequest) MarshalToSizedBufferVT(dAtA []byte) ( return len(dAtA) - i, nil } -func (m *ExperimentalReflectSchemaResponse) MarshalVT() (dAtA []byte, err error) { - if m == nil { - return nil, nil - } - size := m.SizeVT() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBufferVT(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ExperimentalReflectSchemaResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionPair_Item) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExperimentalReflectSchemaResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - if m == nil { - return 0, nil - } +func (m *BulkCheckPermissionPair_Item) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i := len(dAtA) - _ = i - var l int - _ = l - if m.unknownFields != nil { - i -= len(m.unknownFields) - copy(dAtA[i:], m.unknownFields) - } - if m.ReadAt != nil { - size, err := m.ReadAt.MarshalToSizedBufferVT(dAtA[:i]) + if m.Item != nil { + size, err := m.Item.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x12 } - if len(m.Caveats) > 0 { - for iNdEx := len(m.Caveats) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Caveats[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + return len(dAtA) - i, nil +} +func (m *BulkCheckPermissionPair_Error) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *BulkCheckPermissionPair_Error) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.Error != nil { + if vtmsg, ok := interface{}(m.Error).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - } - } - if len(m.Definitions) > 0 { - for iNdEx := len(m.Definitions) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Definitions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + } else { + encoded, err := proto.Marshal(m.Error) if err != nil { return 0, err } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa + i -= len(encoded) + copy(dAtA[i:], encoded) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(encoded))) } + i-- + dAtA[i] = 0x1a } return len(dAtA) - i, nil } - -func (m *ExpSchemaFilter) MarshalVT() (dAtA []byte, err error) { +func (m *BulkCheckPermissionResponseItem) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3000,12 +3093,12 @@ func (m *ExpSchemaFilter) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpSchemaFilter) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionResponseItem) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpSchemaFilter) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BulkCheckPermissionResponseItem) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3017,38 +3110,25 @@ func (m *ExpSchemaFilter) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OptionalPermissionNameFilter) > 0 { - i -= len(m.OptionalPermissionNameFilter) - copy(dAtA[i:], m.OptionalPermissionNameFilter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalPermissionNameFilter))) - i-- - dAtA[i] = 0x22 - } - if len(m.OptionalRelationNameFilter) > 0 { - i -= len(m.OptionalRelationNameFilter) - copy(dAtA[i:], m.OptionalRelationNameFilter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalRelationNameFilter))) - i-- - dAtA[i] = 0x1a - } - if len(m.OptionalCaveatNameFilter) > 0 { - i -= len(m.OptionalCaveatNameFilter) - copy(dAtA[i:], m.OptionalCaveatNameFilter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalCaveatNameFilter))) + if m.PartialCaveatInfo != nil { + size, err := m.PartialCaveatInfo.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0x12 } - if len(m.OptionalDefinitionNameFilter) > 0 { - i -= len(m.OptionalDefinitionNameFilter) - copy(dAtA[i:], m.OptionalDefinitionNameFilter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalDefinitionNameFilter))) + if m.Permissionship != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.Permissionship)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *ExpDefinition) MarshalVT() (dAtA []byte, err error) { +func (m *BulkImportRelationshipsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3061,12 +3141,12 @@ func (m *ExpDefinition) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpDefinition) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkImportRelationshipsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpDefinition) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BulkImportRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3078,48 +3158,22 @@ func (m *ExpDefinition) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Permissions) > 0 { - for iNdEx := len(m.Permissions) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Permissions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x22 - } - } - if len(m.Relations) > 0 { - for iNdEx := len(m.Relations) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Relations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.Relationships) > 0 { + for iNdEx := len(m.Relationships) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Relationships[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0xa } } - if len(m.Comment) > 0 { - i -= len(m.Comment) - copy(dAtA[i:], m.Comment) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Comment))) - i-- - dAtA[i] = 0x12 - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) - i-- - dAtA[i] = 0xa - } return len(dAtA) - i, nil } -func (m *ExpCaveat) MarshalVT() (dAtA []byte, err error) { +func (m *BulkImportRelationshipsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3132,12 +3186,12 @@ func (m *ExpCaveat) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpCaveat) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkImportRelationshipsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpCaveat) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BulkImportRelationshipsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3149,43 +3203,15 @@ func (m *ExpCaveat) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.Expression) > 0 { - i -= len(m.Expression) - copy(dAtA[i:], m.Expression) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Expression))) - i-- - dAtA[i] = 0x22 - } - if len(m.Parameters) > 0 { - for iNdEx := len(m.Parameters) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Parameters[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x1a - } - } - if len(m.Comment) > 0 { - i -= len(m.Comment) - copy(dAtA[i:], m.Comment) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Comment))) - i-- - dAtA[i] = 0x12 - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + if m.NumLoaded != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.NumLoaded)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x8 } return len(dAtA) - i, nil } -func (m *ExpCaveatParameter) MarshalVT() (dAtA []byte, err error) { +func (m *BulkExportRelationshipsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3198,12 +3224,12 @@ func (m *ExpCaveatParameter) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpCaveatParameter) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkExportRelationshipsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpCaveatParameter) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BulkExportRelationshipsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3215,31 +3241,45 @@ func (m *ExpCaveatParameter) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ParentCaveatName) > 0 { - i -= len(m.ParentCaveatName) - copy(dAtA[i:], m.ParentCaveatName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ParentCaveatName))) + if m.OptionalRelationshipFilter != nil { + size, err := m.OptionalRelationshipFilter.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + if m.OptionalCursor != nil { + size, err := m.OptionalCursor.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0x1a } - if len(m.Type) > 0 { - i -= len(m.Type) - copy(dAtA[i:], m.Type) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Type))) + if m.OptionalLimit != 0 { + i = protohelpers.EncodeVarint(dAtA, i, uint64(m.OptionalLimit)) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x10 } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + if m.Consistency != nil { + size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExpRelation) MarshalVT() (dAtA []byte, err error) { +func (m *BulkExportRelationshipsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3252,12 +3292,12 @@ func (m *ExpRelation) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpRelation) MarshalToVT(dAtA []byte) (int, error) { +func (m *BulkExportRelationshipsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpRelation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *BulkExportRelationshipsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3269,43 +3309,32 @@ func (m *ExpRelation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.SubjectTypes) > 0 { - for iNdEx := len(m.SubjectTypes) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.SubjectTypes[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.Relationships) > 0 { + for iNdEx := len(m.Relationships) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Relationships[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x12 } } - if len(m.ParentDefinitionName) > 0 { - i -= len(m.ParentDefinitionName) - copy(dAtA[i:], m.ParentDefinitionName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ParentDefinitionName))) - i-- - dAtA[i] = 0x1a - } - if len(m.Comment) > 0 { - i -= len(m.Comment) - copy(dAtA[i:], m.Comment) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Comment))) - i-- - dAtA[i] = 0x12 - } - if len(m.Name) > 0 { - i -= len(m.Name) - copy(dAtA[i:], m.Name) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + if m.AfterResultCursor != nil { + size, err := m.AfterResultCursor.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExpTypeReference) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalReflectSchemaRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3318,12 +3347,12 @@ func (m *ExpTypeReference) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpTypeReference) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalReflectSchemaRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpTypeReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalReflectSchemaRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3335,81 +3364,160 @@ func (m *ExpTypeReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Typeref.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if len(m.OptionalFilters) > 0 { + for iNdEx := len(m.OptionalFilters) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.OptionalFilters[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if m.Consistency != nil { + size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size - } - if len(m.OptionalCaveatName) > 0 { - i -= len(m.OptionalCaveatName) - copy(dAtA[i:], m.OptionalCaveatName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalCaveatName))) - i-- - dAtA[i] = 0x12 - } - if len(m.SubjectDefinitionName) > 0 { - i -= len(m.SubjectDefinitionName) - copy(dAtA[i:], m.SubjectDefinitionName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SubjectDefinitionName))) + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExpTypeReference_IsTerminalSubject) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalReflectSchemaResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentalReflectSchemaResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpTypeReference_IsTerminalSubject) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalReflectSchemaResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - i-- - if m.IsTerminalSubject { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.ReadAt != nil { + size, err := m.ReadAt.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + if len(m.Caveats) > 0 { + for iNdEx := len(m.Caveats) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Caveats[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Definitions) > 0 { + for iNdEx := len(m.Definitions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Definitions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } } - i-- - dAtA[i] = 0x18 return len(dAtA) - i, nil } -func (m *ExpTypeReference_OptionalRelationName) MarshalToVT(dAtA []byte) (int, error) { + +func (m *ExpSchemaFilter) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil } -func (m *ExpTypeReference_OptionalRelationName) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - i -= len(m.OptionalRelationName) - copy(dAtA[i:], m.OptionalRelationName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalRelationName))) - i-- - dAtA[i] = 0x22 - return len(dAtA) - i, nil -} -func (m *ExpTypeReference_IsPublicWildcard) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExpSchemaFilter) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpTypeReference_IsPublicWildcard) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpSchemaFilter) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - i-- - if m.IsPublicWildcard { - dAtA[i] = 1 - } else { - dAtA[i] = 0 + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.OptionalPermissionNameFilter) > 0 { + i -= len(m.OptionalPermissionNameFilter) + copy(dAtA[i:], m.OptionalPermissionNameFilter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalPermissionNameFilter))) + i-- + dAtA[i] = 0x22 + } + if len(m.OptionalRelationNameFilter) > 0 { + i -= len(m.OptionalRelationNameFilter) + copy(dAtA[i:], m.OptionalRelationNameFilter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalRelationNameFilter))) + i-- + dAtA[i] = 0x1a + } + if len(m.OptionalCaveatNameFilter) > 0 { + i -= len(m.OptionalCaveatNameFilter) + copy(dAtA[i:], m.OptionalCaveatNameFilter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalCaveatNameFilter))) + i-- + dAtA[i] = 0x12 + } + if len(m.OptionalDefinitionNameFilter) > 0 { + i -= len(m.OptionalDefinitionNameFilter) + copy(dAtA[i:], m.OptionalDefinitionNameFilter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalDefinitionNameFilter))) + i-- + dAtA[i] = 0xa } - i-- - dAtA[i] = 0x28 return len(dAtA) - i, nil } -func (m *ExpPermission) MarshalVT() (dAtA []byte, err error) { + +func (m *ExpDefinition) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3422,12 +3530,12 @@ func (m *ExpPermission) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpPermission) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExpDefinition) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpPermission) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpDefinition) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3439,12 +3547,29 @@ func (m *ExpPermission) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ParentDefinitionName) > 0 { - i -= len(m.ParentDefinitionName) - copy(dAtA[i:], m.ParentDefinitionName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ParentDefinitionName))) - i-- - dAtA[i] = 0x1a + if len(m.Permissions) > 0 { + for iNdEx := len(m.Permissions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Permissions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + } + if len(m.Relations) > 0 { + for iNdEx := len(m.Relations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Relations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } } if len(m.Comment) > 0 { i -= len(m.Comment) @@ -3463,7 +3588,7 @@ func (m *ExpPermission) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *ExperimentalComputablePermissionsRequest) MarshalVT() (dAtA []byte, err error) { +func (m *ExpCaveat) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3476,12 +3601,12 @@ func (m *ExperimentalComputablePermissionsRequest) MarshalVT() (dAtA []byte, err return dAtA[:n], nil } -func (m *ExperimentalComputablePermissionsRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExpCaveat) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExperimentalComputablePermissionsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpCaveat) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3493,41 +3618,43 @@ func (m *ExperimentalComputablePermissionsRequest) MarshalToSizedBufferVT(dAtA [ i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.OptionalDefinitionNameFilter) > 0 { - i -= len(m.OptionalDefinitionNameFilter) - copy(dAtA[i:], m.OptionalDefinitionNameFilter) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalDefinitionNameFilter))) + if len(m.Expression) > 0 { + i -= len(m.Expression) + copy(dAtA[i:], m.Expression) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Expression))) i-- dAtA[i] = 0x22 } - if len(m.RelationName) > 0 { - i -= len(m.RelationName) - copy(dAtA[i:], m.RelationName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RelationName))) - i-- - dAtA[i] = 0x1a + if len(m.Parameters) > 0 { + for iNdEx := len(m.Parameters) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Parameters[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } } - if len(m.DefinitionName) > 0 { - i -= len(m.DefinitionName) - copy(dAtA[i:], m.DefinitionName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DefinitionName))) + if len(m.Comment) > 0 { + i -= len(m.Comment) + copy(dAtA[i:], m.Comment) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Comment))) i-- dAtA[i] = 0x12 } - if m.Consistency != nil { - size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExpRelationReference) MarshalVT() (dAtA []byte, err error) { +func (m *ExpCaveatParameter) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3540,12 +3667,12 @@ func (m *ExpRelationReference) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpRelationReference) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExpCaveatParameter) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpRelationReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpCaveatParameter) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3557,34 +3684,31 @@ func (m *ExpRelationReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.IsPermission { - i-- - if m.IsPermission { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } + if len(m.ParentCaveatName) > 0 { + i -= len(m.ParentCaveatName) + copy(dAtA[i:], m.ParentCaveatName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ParentCaveatName))) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } - if len(m.RelationName) > 0 { - i -= len(m.RelationName) - copy(dAtA[i:], m.RelationName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RelationName))) + if len(m.Type) > 0 { + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Type))) i-- dAtA[i] = 0x12 } - if len(m.DefinitionName) > 0 { - i -= len(m.DefinitionName) - copy(dAtA[i:], m.DefinitionName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DefinitionName))) + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExperimentalComputablePermissionsResponse) MarshalVT() (dAtA []byte, err error) { +func (m *ExpRelation) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3597,12 +3721,12 @@ func (m *ExperimentalComputablePermissionsResponse) MarshalVT() (dAtA []byte, er return dAtA[:n], nil } -func (m *ExperimentalComputablePermissionsResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExpRelation) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExperimentalComputablePermissionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpRelation) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3614,32 +3738,43 @@ func (m *ExperimentalComputablePermissionsResponse) MarshalToSizedBufferVT(dAtA i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ReadAt != nil { - size, err := m.ReadAt.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0x12 - } - if len(m.Permissions) > 0 { - for iNdEx := len(m.Permissions) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Permissions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if len(m.SubjectTypes) > 0 { + for iNdEx := len(m.SubjectTypes) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.SubjectTypes[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0xa + dAtA[i] = 0x22 } } + if len(m.ParentDefinitionName) > 0 { + i -= len(m.ParentDefinitionName) + copy(dAtA[i:], m.ParentDefinitionName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ParentDefinitionName))) + i-- + dAtA[i] = 0x1a + } + if len(m.Comment) > 0 { + i -= len(m.Comment) + copy(dAtA[i:], m.Comment) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Comment))) + i-- + dAtA[i] = 0x12 + } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + } return len(dAtA) - i, nil } -func (m *ExperimentalDependentRelationsRequest) MarshalVT() (dAtA []byte, err error) { +func (m *ExpTypeReference) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3652,12 +3787,12 @@ func (m *ExperimentalDependentRelationsRequest) MarshalVT() (dAtA []byte, err er return dAtA[:n], nil } -func (m *ExperimentalDependentRelationsRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExpTypeReference) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExperimentalDependentRelationsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpTypeReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3669,34 +3804,81 @@ func (m *ExperimentalDependentRelationsRequest) MarshalToSizedBufferVT(dAtA []by i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.PermissionName) > 0 { - i -= len(m.PermissionName) - copy(dAtA[i:], m.PermissionName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PermissionName))) - i-- - dAtA[i] = 0x1a - } - if len(m.DefinitionName) > 0 { - i -= len(m.DefinitionName) - copy(dAtA[i:], m.DefinitionName) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DefinitionName))) - i-- - dAtA[i] = 0x12 - } - if m.Consistency != nil { - size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) + if vtmsg, ok := m.Typeref.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } + if len(m.OptionalCaveatName) > 0 { + i -= len(m.OptionalCaveatName) + copy(dAtA[i:], m.OptionalCaveatName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalCaveatName))) + i-- + dAtA[i] = 0x12 + } + if len(m.SubjectDefinitionName) > 0 { + i -= len(m.SubjectDefinitionName) + copy(dAtA[i:], m.SubjectDefinitionName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.SubjectDefinitionName))) i-- dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExperimentalDependentRelationsResponse) MarshalVT() (dAtA []byte, err error) { +func (m *ExpTypeReference_IsTerminalSubject) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExpTypeReference_IsTerminalSubject) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.IsTerminalSubject { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + return len(dAtA) - i, nil +} +func (m *ExpTypeReference_OptionalRelationName) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExpTypeReference_OptionalRelationName) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i -= len(m.OptionalRelationName) + copy(dAtA[i:], m.OptionalRelationName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalRelationName))) + i-- + dAtA[i] = 0x22 + return len(dAtA) - i, nil +} +func (m *ExpTypeReference_IsPublicWildcard) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExpTypeReference_IsPublicWildcard) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + i-- + if m.IsPublicWildcard { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + return len(dAtA) - i, nil +} +func (m *ExpPermission) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3709,12 +3891,12 @@ func (m *ExperimentalDependentRelationsResponse) MarshalVT() (dAtA []byte, err e return dAtA[:n], nil } -func (m *ExperimentalDependentRelationsResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExpPermission) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExperimentalDependentRelationsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpPermission) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3726,32 +3908,31 @@ func (m *ExperimentalDependentRelationsResponse) MarshalToSizedBufferVT(dAtA []b i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ReadAt != nil { - size, err := m.ReadAt.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + if len(m.ParentDefinitionName) > 0 { + i -= len(m.ParentDefinitionName) + copy(dAtA[i:], m.ParentDefinitionName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ParentDefinitionName))) + i-- + dAtA[i] = 0x1a + } + if len(m.Comment) > 0 { + i -= len(m.Comment) + copy(dAtA[i:], m.Comment) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Comment))) i-- dAtA[i] = 0x12 } - if len(m.Relations) > 0 { - for iNdEx := len(m.Relations) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Relations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } + if len(m.Name) > 0 { + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExperimentalDiffSchemaRequest) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalComputablePermissionsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3764,12 +3945,12 @@ func (m *ExperimentalDiffSchemaRequest) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExperimentalDiffSchemaRequest) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalComputablePermissionsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExperimentalDiffSchemaRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalComputablePermissionsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3781,10 +3962,24 @@ func (m *ExperimentalDiffSchemaRequest) MarshalToSizedBufferVT(dAtA []byte) (int i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.ComparisonSchema) > 0 { - i -= len(m.ComparisonSchema) - copy(dAtA[i:], m.ComparisonSchema) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ComparisonSchema))) + if len(m.OptionalDefinitionNameFilter) > 0 { + i -= len(m.OptionalDefinitionNameFilter) + copy(dAtA[i:], m.OptionalDefinitionNameFilter) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.OptionalDefinitionNameFilter))) + i-- + dAtA[i] = 0x22 + } + if len(m.RelationName) > 0 { + i -= len(m.RelationName) + copy(dAtA[i:], m.RelationName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RelationName))) + i-- + dAtA[i] = 0x1a + } + if len(m.DefinitionName) > 0 { + i -= len(m.DefinitionName) + copy(dAtA[i:], m.DefinitionName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DefinitionName))) i-- dAtA[i] = 0x12 } @@ -3801,7 +3996,7 @@ func (m *ExperimentalDiffSchemaRequest) MarshalToSizedBufferVT(dAtA []byte) (int return len(dAtA) - i, nil } -func (m *ExperimentalDiffSchemaResponse) MarshalVT() (dAtA []byte, err error) { +func (m *ExpRelationReference) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3814,12 +4009,12 @@ func (m *ExperimentalDiffSchemaResponse) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExperimentalDiffSchemaResponse) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExpRelationReference) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExperimentalDiffSchemaResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpRelationReference) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3831,32 +4026,34 @@ func (m *ExperimentalDiffSchemaResponse) MarshalToSizedBufferVT(dAtA []byte) (in i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ReadAt != nil { - size, err := m.ReadAt.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if m.IsPermission { + i-- + if m.IsPermission { + dAtA[i] = 1 + } else { + dAtA[i] = 0 } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x18 + } + if len(m.RelationName) > 0 { + i -= len(m.RelationName) + copy(dAtA[i:], m.RelationName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.RelationName))) i-- dAtA[i] = 0x12 } - if len(m.Diffs) > 0 { - for iNdEx := len(m.Diffs) - 1; iNdEx >= 0; iNdEx-- { - size, err := m.Diffs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa - } + if len(m.DefinitionName) > 0 { + i -= len(m.DefinitionName) + copy(dAtA[i:], m.DefinitionName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DefinitionName))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExpRelationSubjectTypeChange) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalComputablePermissionsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3869,12 +4066,12 @@ func (m *ExpRelationSubjectTypeChange) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpRelationSubjectTypeChange) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalComputablePermissionsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpRelationSubjectTypeChange) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalComputablePermissionsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3886,8 +4083,8 @@ func (m *ExpRelationSubjectTypeChange) MarshalToSizedBufferVT(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if m.ChangedSubjectType != nil { - size, err := m.ChangedSubjectType.MarshalToSizedBufferVT(dAtA[:i]) + if m.ReadAt != nil { + size, err := m.ReadAt.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -3896,20 +4093,22 @@ func (m *ExpRelationSubjectTypeChange) MarshalToSizedBufferVT(dAtA []byte) (int, i-- dAtA[i] = 0x12 } - if m.Relation != nil { - size, err := m.Relation.MarshalToSizedBufferVT(dAtA[:i]) - if err != nil { - return 0, err + if len(m.Permissions) > 0 { + for iNdEx := len(m.Permissions) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Permissions[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa } - i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) - i-- - dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExpCaveatParameterTypeChange) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalDependentRelationsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3922,12 +4121,12 @@ func (m *ExpCaveatParameterTypeChange) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpCaveatParameterTypeChange) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalDependentRelationsRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpCaveatParameterTypeChange) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalDependentRelationsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3939,15 +4138,22 @@ func (m *ExpCaveatParameterTypeChange) MarshalToSizedBufferVT(dAtA []byte) (int, i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if len(m.PreviousType) > 0 { - i -= len(m.PreviousType) - copy(dAtA[i:], m.PreviousType) - i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PreviousType))) + if len(m.PermissionName) > 0 { + i -= len(m.PermissionName) + copy(dAtA[i:], m.PermissionName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PermissionName))) + i-- + dAtA[i] = 0x1a + } + if len(m.DefinitionName) > 0 { + i -= len(m.DefinitionName) + copy(dAtA[i:], m.DefinitionName) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.DefinitionName))) i-- dAtA[i] = 0x12 } - if m.Parameter != nil { - size, err := m.Parameter.MarshalToSizedBufferVT(dAtA[:i]) + if m.Consistency != nil { + size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -3959,7 +4165,7 @@ func (m *ExpCaveatParameterTypeChange) MarshalToSizedBufferVT(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *ExpSchemaDiff) MarshalVT() (dAtA []byte, err error) { +func (m *ExperimentalDependentRelationsResponse) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil } @@ -3972,12 +4178,12 @@ func (m *ExpSchemaDiff) MarshalVT() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *ExpSchemaDiff) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalDependentRelationsResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpSchemaDiff) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalDependentRelationsResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { if m == nil { return 0, nil } @@ -3989,27 +4195,70 @@ func (m *ExpSchemaDiff) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } - if vtmsg, ok := m.Diff.(interface { - MarshalToSizedBufferVT([]byte) (int, error) - }); ok { - size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) + if m.ReadAt != nil { + size, err := m.ReadAt.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + if len(m.Relations) > 0 { + for iNdEx := len(m.Relations) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Relations[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } } return len(dAtA) - i, nil } -func (m *ExpSchemaDiff_DefinitionAdded) MarshalToVT(dAtA []byte) (int, error) { +func (m *ExperimentalDiffSchemaRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentalDiffSchemaRequest) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpSchemaDiff_DefinitionAdded) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalDiffSchemaRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.DefinitionAdded != nil { - size, err := m.DefinitionAdded.MarshalToSizedBufferVT(dAtA[:i]) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.ComparisonSchema) > 0 { + i -= len(m.ComparisonSchema) + copy(dAtA[i:], m.ComparisonSchema) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.ComparisonSchema))) + i-- + dAtA[i] = 0x12 + } + if m.Consistency != nil { + size, err := m.Consistency.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -4020,15 +4269,39 @@ func (m *ExpSchemaDiff_DefinitionAdded) MarshalToSizedBufferVT(dAtA []byte) (int } return len(dAtA) - i, nil } -func (m *ExpSchemaDiff_DefinitionRemoved) MarshalToVT(dAtA []byte) (int, error) { + +func (m *ExperimentalDiffSchemaResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExperimentalDiffSchemaResponse) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpSchemaDiff_DefinitionRemoved) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExperimentalDiffSchemaResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.DefinitionRemoved != nil { - size, err := m.DefinitionRemoved.MarshalToSizedBufferVT(dAtA[:i]) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.ReadAt != nil { + size, err := m.ReadAt.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } @@ -4037,79 +4310,275 @@ func (m *ExpSchemaDiff_DefinitionRemoved) MarshalToSizedBufferVT(dAtA []byte) (i i-- dAtA[i] = 0x12 } + if len(m.Diffs) > 0 { + for iNdEx := len(m.Diffs) - 1; iNdEx >= 0; iNdEx-- { + size, err := m.Diffs[iNdEx].MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + } return len(dAtA) - i, nil } -func (m *ExpSchemaDiff_DefinitionDocCommentChanged) MarshalToVT(dAtA []byte) (int, error) { + +func (m *ExpRelationSubjectTypeChange) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExpRelationSubjectTypeChange) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpSchemaDiff_DefinitionDocCommentChanged) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpRelationSubjectTypeChange) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.DefinitionDocCommentChanged != nil { - size, err := m.DefinitionDocCommentChanged.MarshalToSizedBufferVT(dAtA[:i]) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.ChangedSubjectType != nil { + size, err := m.ChangedSubjectType.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x12 } - return len(dAtA) - i, nil -} -func (m *ExpSchemaDiff_RelationAdded) MarshalToVT(dAtA []byte) (int, error) { - size := m.SizeVT() - return m.MarshalToSizedBufferVT(dAtA[:size]) -} - -func (m *ExpSchemaDiff_RelationAdded) MarshalToSizedBufferVT(dAtA []byte) (int, error) { - i := len(dAtA) - if m.RelationAdded != nil { - size, err := m.RelationAdded.MarshalToSizedBufferVT(dAtA[:i]) + if m.Relation != nil { + size, err := m.Relation.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x22 + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExpSchemaDiff_RelationRemoved) MarshalToVT(dAtA []byte) (int, error) { + +func (m *ExpCaveatParameterTypeChange) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExpCaveatParameterTypeChange) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpSchemaDiff_RelationRemoved) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpCaveatParameterTypeChange) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.RelationRemoved != nil { - size, err := m.RelationRemoved.MarshalToSizedBufferVT(dAtA[:i]) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.PreviousType) > 0 { + i -= len(m.PreviousType) + copy(dAtA[i:], m.PreviousType) + i = protohelpers.EncodeVarint(dAtA, i, uint64(len(m.PreviousType))) + i-- + dAtA[i] = 0x12 + } + if m.Parameter != nil { + size, err := m.Parameter.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- - dAtA[i] = 0x2a + dAtA[i] = 0xa } return len(dAtA) - i, nil } -func (m *ExpSchemaDiff_RelationDocCommentChanged) MarshalToVT(dAtA []byte) (int, error) { + +func (m *ExpSchemaDiff) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExpSchemaDiff) MarshalToVT(dAtA []byte) (int, error) { size := m.SizeVT() return m.MarshalToSizedBufferVT(dAtA[:size]) } -func (m *ExpSchemaDiff_RelationDocCommentChanged) MarshalToSizedBufferVT(dAtA []byte) (int, error) { +func (m *ExpSchemaDiff) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } i := len(dAtA) - if m.RelationDocCommentChanged != nil { - size, err := m.RelationDocCommentChanged.MarshalToSizedBufferVT(dAtA[:i]) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if vtmsg, ok := m.Diff.(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := vtmsg.MarshalToSizedBufferVT(dAtA[:i]) if err != nil { return 0, err } i -= size - i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + } + return len(dAtA) - i, nil +} + +func (m *ExpSchemaDiff_DefinitionAdded) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExpSchemaDiff_DefinitionAdded) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DefinitionAdded != nil { + size, err := m.DefinitionAdded.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} +func (m *ExpSchemaDiff_DefinitionRemoved) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExpSchemaDiff_DefinitionRemoved) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DefinitionRemoved != nil { + size, err := m.DefinitionRemoved.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x12 + } + return len(dAtA) - i, nil +} +func (m *ExpSchemaDiff_DefinitionDocCommentChanged) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExpSchemaDiff_DefinitionDocCommentChanged) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.DefinitionDocCommentChanged != nil { + size, err := m.DefinitionDocCommentChanged.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1a + } + return len(dAtA) - i, nil +} +func (m *ExpSchemaDiff_RelationAdded) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExpSchemaDiff_RelationAdded) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.RelationAdded != nil { + size, err := m.RelationAdded.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x22 + } + return len(dAtA) - i, nil +} +func (m *ExpSchemaDiff_RelationRemoved) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExpSchemaDiff_RelationRemoved) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.RelationRemoved != nil { + size, err := m.RelationRemoved.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x2a + } + return len(dAtA) - i, nil +} +func (m *ExpSchemaDiff_RelationDocCommentChanged) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ExpSchemaDiff_RelationDocCommentChanged) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.RelationDocCommentChanged != nil { + size, err := m.RelationDocCommentChanged.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = protohelpers.EncodeVarint(dAtA, i, uint64(size)) i-- dAtA[i] = 0x32 } @@ -4370,6 +4839,89 @@ func (m *ExpSchemaDiff_CaveatParameterTypeChanged) MarshalToSizedBufferVT(dAtA [ } return len(dAtA) - i, nil } +func (m *ExperimentalRegisterRelationshipCounterRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RelationshipFilter != nil { + l = m.RelationshipFilter.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ExperimentalRegisterRelationshipCounterResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + +func (m *ExperimentalCountRelationshipsRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Consistency != nil { + l = m.Consistency.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.RelationshipFilter != nil { + l = m.RelationshipFilter.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ExperimentalCountRelationshipsResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ReadAt != nil { + l = m.ReadAt.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + if m.RelationshipCount != 0 { + n += 1 + protohelpers.SizeOfVarint(uint64(m.RelationshipCount)) + } + n += len(m.unknownFields) + return n +} + +func (m *ExperimentalUnregisterRelationshipCounterRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.RelationshipFilter != nil { + l = m.RelationshipFilter.SizeVT() + n += 1 + l + protohelpers.SizeOfVarint(uint64(l)) + } + n += len(m.unknownFields) + return n +} + +func (m *ExperimentalUnregisterRelationshipCounterResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += len(m.unknownFields) + return n +} + func (m *BulkCheckPermissionRequest) SizeVT() (n int) { if m == nil { return 0 @@ -5249,6 +5801,511 @@ func (m *ExpSchemaDiff_CaveatParameterTypeChanged) SizeVT() (n int) { } return n } +func (m *ExperimentalRegisterRelationshipCounterRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentalRegisterRelationshipCounterRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentalRegisterRelationshipCounterRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RelationshipFilter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RelationshipFilter == nil { + m.RelationshipFilter = &RelationshipFilter{} + } + if err := m.RelationshipFilter.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentalRegisterRelationshipCounterResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentalRegisterRelationshipCounterResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentalRegisterRelationshipCounterResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentalCountRelationshipsRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentalCountRelationshipsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentalCountRelationshipsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Consistency", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Consistency == nil { + m.Consistency = &Consistency{} + } + if err := m.Consistency.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RelationshipFilter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RelationshipFilter == nil { + m.RelationshipFilter = &RelationshipFilter{} + } + if err := m.RelationshipFilter.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentalCountRelationshipsResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentalCountRelationshipsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentalCountRelationshipsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadAt", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ReadAt == nil { + m.ReadAt = &ZedToken{} + } + if err := m.ReadAt.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RelationshipCount", wireType) + } + m.RelationshipCount = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.RelationshipCount |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentalUnregisterRelationshipCounterRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentalUnregisterRelationshipCounterRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentalUnregisterRelationshipCounterRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RelationshipFilter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protohelpers.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protohelpers.ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RelationshipFilter == nil { + m.RelationshipFilter = &RelationshipFilter{} + } + if err := m.RelationshipFilter.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExperimentalUnregisterRelationshipCounterResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protohelpers.ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExperimentalUnregisterRelationshipCounterResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExperimentalUnregisterRelationshipCounterResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := protohelpers.Skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protohelpers.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *BulkCheckPermissionRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/proto/authzed/api/v1/zz_generated.version.go b/proto/authzed/api/v1/zz_generated.version.go index ab3ee03..83c2064 100644 --- a/proto/authzed/api/v1/zz_generated.version.go +++ b/proto/authzed/api/v1/zz_generated.version.go @@ -2,5 +2,5 @@ package v1 const ( BufRepository = "buf.build/authzed/api" - BufTag = "80f6ef8af583b1a4de4ab7957e7f0a6e6ddf2904" + BufTag = "81d767dd7dc1566ebe956a0fabe05254605482d8" ) diff --git a/proto/authzed/api/v1alpha1/zz_generated.version.go b/proto/authzed/api/v1alpha1/zz_generated.version.go index dffe4ef..b904c29 100644 --- a/proto/authzed/api/v1alpha1/zz_generated.version.go +++ b/proto/authzed/api/v1alpha1/zz_generated.version.go @@ -2,5 +2,5 @@ package v1alpha1 const ( BufRepository = "buf.build/authzed/api" - BufTag = "80f6ef8af583b1a4de4ab7957e7f0a6e6ddf2904" + BufTag = "81d767dd7dc1566ebe956a0fabe05254605482d8" )