// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2 // protoc (unknown) // source: developer/v1/developer.proto package developerv1 import ( v12 "github.com/authzed/authzed-go/proto/authzed/api/v1" v1 "github.com/authzed/spicedb/pkg/proto/core/v1" v11 "github.com/authzed/spicedb/pkg/proto/dispatch/v1" _ "github.com/envoyproxy/protoc-gen-validate/validate" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" structpb "google.golang.org/protobuf/types/known/structpb" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type DeveloperError_Source int32 const ( DeveloperError_UNKNOWN_SOURCE DeveloperError_Source = 0 DeveloperError_SCHEMA DeveloperError_Source = 1 DeveloperError_RELATIONSHIP DeveloperError_Source = 2 DeveloperError_VALIDATION_YAML DeveloperError_Source = 3 DeveloperError_CHECK_WATCH DeveloperError_Source = 4 DeveloperError_ASSERTION DeveloperError_Source = 5 ) // Enum value maps for DeveloperError_Source. var ( DeveloperError_Source_name = map[int32]string{ 0: "UNKNOWN_SOURCE", 1: "SCHEMA", 2: "RELATIONSHIP", 3: "VALIDATION_YAML", 4: "CHECK_WATCH", 5: "ASSERTION", } DeveloperError_Source_value = map[string]int32{ "UNKNOWN_SOURCE": 0, "SCHEMA": 1, "RELATIONSHIP": 2, "VALIDATION_YAML": 3, "CHECK_WATCH": 4, "ASSERTION": 5, } ) func (x DeveloperError_Source) Enum() *DeveloperError_Source { p := new(DeveloperError_Source) *p = x return p } func (x DeveloperError_Source) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DeveloperError_Source) Descriptor() protoreflect.EnumDescriptor { return file_developer_v1_developer_proto_enumTypes[0].Descriptor() } func (DeveloperError_Source) Type() protoreflect.EnumType { return &file_developer_v1_developer_proto_enumTypes[0] } func (x DeveloperError_Source) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DeveloperError_Source.Descriptor instead. func (DeveloperError_Source) EnumDescriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{7, 0} } type DeveloperError_ErrorKind int32 const ( DeveloperError_UNKNOWN_KIND DeveloperError_ErrorKind = 0 DeveloperError_PARSE_ERROR DeveloperError_ErrorKind = 1 DeveloperError_SCHEMA_ISSUE DeveloperError_ErrorKind = 2 DeveloperError_DUPLICATE_RELATIONSHIP DeveloperError_ErrorKind = 3 DeveloperError_MISSING_EXPECTED_RELATIONSHIP DeveloperError_ErrorKind = 4 DeveloperError_EXTRA_RELATIONSHIP_FOUND DeveloperError_ErrorKind = 5 DeveloperError_UNKNOWN_OBJECT_TYPE DeveloperError_ErrorKind = 6 DeveloperError_UNKNOWN_RELATION DeveloperError_ErrorKind = 7 DeveloperError_MAXIMUM_RECURSION DeveloperError_ErrorKind = 8 DeveloperError_ASSERTION_FAILED DeveloperError_ErrorKind = 9 DeveloperError_INVALID_SUBJECT_TYPE DeveloperError_ErrorKind = 10 ) // Enum value maps for DeveloperError_ErrorKind. var ( DeveloperError_ErrorKind_name = map[int32]string{ 0: "UNKNOWN_KIND", 1: "PARSE_ERROR", 2: "SCHEMA_ISSUE", 3: "DUPLICATE_RELATIONSHIP", 4: "MISSING_EXPECTED_RELATIONSHIP", 5: "EXTRA_RELATIONSHIP_FOUND", 6: "UNKNOWN_OBJECT_TYPE", 7: "UNKNOWN_RELATION", 8: "MAXIMUM_RECURSION", 9: "ASSERTION_FAILED", 10: "INVALID_SUBJECT_TYPE", } DeveloperError_ErrorKind_value = map[string]int32{ "UNKNOWN_KIND": 0, "PARSE_ERROR": 1, "SCHEMA_ISSUE": 2, "DUPLICATE_RELATIONSHIP": 3, "MISSING_EXPECTED_RELATIONSHIP": 4, "EXTRA_RELATIONSHIP_FOUND": 5, "UNKNOWN_OBJECT_TYPE": 6, "UNKNOWN_RELATION": 7, "MAXIMUM_RECURSION": 8, "ASSERTION_FAILED": 9, "INVALID_SUBJECT_TYPE": 10, } ) func (x DeveloperError_ErrorKind) Enum() *DeveloperError_ErrorKind { p := new(DeveloperError_ErrorKind) *p = x return p } func (x DeveloperError_ErrorKind) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DeveloperError_ErrorKind) Descriptor() protoreflect.EnumDescriptor { return file_developer_v1_developer_proto_enumTypes[1].Descriptor() } func (DeveloperError_ErrorKind) Type() protoreflect.EnumType { return &file_developer_v1_developer_proto_enumTypes[1] } func (x DeveloperError_ErrorKind) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DeveloperError_ErrorKind.Descriptor instead. func (DeveloperError_ErrorKind) EnumDescriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{7, 1} } type CheckOperationsResult_Membership int32 const ( CheckOperationsResult_UNKNOWN CheckOperationsResult_Membership = 0 CheckOperationsResult_NOT_MEMBER CheckOperationsResult_Membership = 1 CheckOperationsResult_MEMBER CheckOperationsResult_Membership = 2 CheckOperationsResult_CAVEATED_MEMBER CheckOperationsResult_Membership = 3 ) // Enum value maps for CheckOperationsResult_Membership. var ( CheckOperationsResult_Membership_name = map[int32]string{ 0: "UNKNOWN", 1: "NOT_MEMBER", 2: "MEMBER", 3: "CAVEATED_MEMBER", } CheckOperationsResult_Membership_value = map[string]int32{ "UNKNOWN": 0, "NOT_MEMBER": 1, "MEMBER": 2, "CAVEATED_MEMBER": 3, } ) func (x CheckOperationsResult_Membership) Enum() *CheckOperationsResult_Membership { p := new(CheckOperationsResult_Membership) *p = x return p } func (x CheckOperationsResult_Membership) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CheckOperationsResult_Membership) Descriptor() protoreflect.EnumDescriptor { return file_developer_v1_developer_proto_enumTypes[2].Descriptor() } func (CheckOperationsResult_Membership) Type() protoreflect.EnumType { return &file_developer_v1_developer_proto_enumTypes[2] } func (x CheckOperationsResult_Membership) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CheckOperationsResult_Membership.Descriptor instead. func (CheckOperationsResult_Membership) EnumDescriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{10, 0} } // DeveloperRequest is a single request made to the developer platform, containing zero or more // operations to run. type DeveloperRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // context is the context for the developer request. Context *RequestContext `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` // operations are the operations to be run as part of the developer request. Operations []*Operation `protobuf:"bytes,2,rep,name=operations,proto3" json:"operations,omitempty"` } func (x *DeveloperRequest) Reset() { *x = DeveloperRequest{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeveloperRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeveloperRequest) ProtoMessage() {} func (x *DeveloperRequest) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_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 DeveloperRequest.ProtoReflect.Descriptor instead. func (*DeveloperRequest) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{0} } func (x *DeveloperRequest) GetContext() *RequestContext { if x != nil { return x.Context } return nil } func (x *DeveloperRequest) GetOperations() []*Operation { if x != nil { return x.Operations } return nil } // DeveloperResponse is the response to a single request made to the developer platform. type DeveloperResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // internal_error is the internal error that occurred when attempting to run this operation, if any. InternalError string `protobuf:"bytes,1,opt,name=internal_error,json=internalError,proto3" json:"internal_error,omitempty"` // developer_errors are the developer error(s) returned in the operation, if any. DeveloperErrors *DeveloperErrors `protobuf:"bytes,2,opt,name=developer_errors,json=developerErrors,proto3" json:"developer_errors,omitempty"` // operations_results holds the results of the operations, if any and no errors. OperationsResults *OperationsResults `protobuf:"bytes,3,opt,name=operations_results,json=operationsResults,proto3" json:"operations_results,omitempty"` } func (x *DeveloperResponse) Reset() { *x = DeveloperResponse{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeveloperResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeveloperResponse) ProtoMessage() {} func (x *DeveloperResponse) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_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 DeveloperResponse.ProtoReflect.Descriptor instead. func (*DeveloperResponse) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{1} } func (x *DeveloperResponse) GetInternalError() string { if x != nil { return x.InternalError } return "" } func (x *DeveloperResponse) GetDeveloperErrors() *DeveloperErrors { if x != nil { return x.DeveloperErrors } return nil } func (x *DeveloperResponse) GetOperationsResults() *OperationsResults { if x != nil { return x.OperationsResults } return nil } // RequestContext is the context for setting up a development package environment for one or more // operations. type RequestContext struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // schema is the schema on which to run the developer request. Schema string `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` // relationships are the test data relationships for the developer request. Relationships []*v1.RelationTuple `protobuf:"bytes,2,rep,name=relationships,proto3" json:"relationships,omitempty"` } func (x *RequestContext) Reset() { *x = RequestContext{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RequestContext) String() string { return protoimpl.X.MessageStringOf(x) } func (*RequestContext) ProtoMessage() {} func (x *RequestContext) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_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 RequestContext.ProtoReflect.Descriptor instead. func (*RequestContext) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{2} } func (x *RequestContext) GetSchema() string { if x != nil { return x.Schema } return "" } func (x *RequestContext) GetRelationships() []*v1.RelationTuple { if x != nil { return x.Relationships } return nil } // Operation is a single operation to be processed by the development package. type Operation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CheckParameters *CheckOperationParameters `protobuf:"bytes,1,opt,name=check_parameters,json=checkParameters,proto3" json:"check_parameters,omitempty"` AssertionsParameters *RunAssertionsParameters `protobuf:"bytes,2,opt,name=assertions_parameters,json=assertionsParameters,proto3" json:"assertions_parameters,omitempty"` ValidationParameters *RunValidationParameters `protobuf:"bytes,3,opt,name=validation_parameters,json=validationParameters,proto3" json:"validation_parameters,omitempty"` FormatSchemaParameters *FormatSchemaParameters `protobuf:"bytes,4,opt,name=format_schema_parameters,json=formatSchemaParameters,proto3" json:"format_schema_parameters,omitempty"` SchemaWarningsParameters *SchemaWarningsParameters `protobuf:"bytes,5,opt,name=schema_warnings_parameters,json=schemaWarningsParameters,proto3" json:"schema_warnings_parameters,omitempty"` } func (x *Operation) Reset() { *x = Operation{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Operation) String() string { return protoimpl.X.MessageStringOf(x) } func (*Operation) ProtoMessage() {} func (x *Operation) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_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 Operation.ProtoReflect.Descriptor instead. func (*Operation) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{3} } func (x *Operation) GetCheckParameters() *CheckOperationParameters { if x != nil { return x.CheckParameters } return nil } func (x *Operation) GetAssertionsParameters() *RunAssertionsParameters { if x != nil { return x.AssertionsParameters } return nil } func (x *Operation) GetValidationParameters() *RunValidationParameters { if x != nil { return x.ValidationParameters } return nil } func (x *Operation) GetFormatSchemaParameters() *FormatSchemaParameters { if x != nil { return x.FormatSchemaParameters } return nil } func (x *Operation) GetSchemaWarningsParameters() *SchemaWarningsParameters { if x != nil { return x.SchemaWarningsParameters } return nil } // OperationsResults holds the results for the operations, indexed by the operation. type OperationsResults struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Results map[uint64]*OperationResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *OperationsResults) Reset() { *x = OperationsResults{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OperationsResults) String() string { return protoimpl.X.MessageStringOf(x) } func (*OperationsResults) ProtoMessage() {} func (x *OperationsResults) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_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 OperationsResults.ProtoReflect.Descriptor instead. func (*OperationsResults) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{4} } func (x *OperationsResults) GetResults() map[uint64]*OperationResult { if x != nil { return x.Results } return nil } // OperationResult contains the result data given to the callback for an operation. type OperationResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CheckResult *CheckOperationsResult `protobuf:"bytes,1,opt,name=check_result,json=checkResult,proto3" json:"check_result,omitempty"` AssertionsResult *RunAssertionsResult `protobuf:"bytes,2,opt,name=assertions_result,json=assertionsResult,proto3" json:"assertions_result,omitempty"` ValidationResult *RunValidationResult `protobuf:"bytes,3,opt,name=validation_result,json=validationResult,proto3" json:"validation_result,omitempty"` FormatSchemaResult *FormatSchemaResult `protobuf:"bytes,4,opt,name=format_schema_result,json=formatSchemaResult,proto3" json:"format_schema_result,omitempty"` SchemaWarningsResult *SchemaWarningsResult `protobuf:"bytes,5,opt,name=schema_warnings_result,json=schemaWarningsResult,proto3" json:"schema_warnings_result,omitempty"` } func (x *OperationResult) Reset() { *x = OperationResult{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *OperationResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*OperationResult) ProtoMessage() {} func (x *OperationResult) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_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 OperationResult.ProtoReflect.Descriptor instead. func (*OperationResult) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{5} } func (x *OperationResult) GetCheckResult() *CheckOperationsResult { if x != nil { return x.CheckResult } return nil } func (x *OperationResult) GetAssertionsResult() *RunAssertionsResult { if x != nil { return x.AssertionsResult } return nil } func (x *OperationResult) GetValidationResult() *RunValidationResult { if x != nil { return x.ValidationResult } return nil } func (x *OperationResult) GetFormatSchemaResult() *FormatSchemaResult { if x != nil { return x.FormatSchemaResult } return nil } func (x *OperationResult) GetSchemaWarningsResult() *SchemaWarningsResult { if x != nil { return x.SchemaWarningsResult } return nil } // DeveloperWarning represents a single warning raised by the development package. type DeveloperWarning struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // message is the message for the developer warning. Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // line is the 1-indexed line for the developer warning. Line uint32 `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"` // column is the 1-indexed column on the line for the developer warning. Column uint32 `protobuf:"varint,3,opt,name=column,proto3" json:"column,omitempty"` // source_code is the source code for the developer warning, if any. SourceCode string `protobuf:"bytes,4,opt,name=source_code,json=sourceCode,proto3" json:"source_code,omitempty"` } func (x *DeveloperWarning) Reset() { *x = DeveloperWarning{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeveloperWarning) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeveloperWarning) ProtoMessage() {} func (x *DeveloperWarning) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[6] 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 DeveloperWarning.ProtoReflect.Descriptor instead. func (*DeveloperWarning) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{6} } func (x *DeveloperWarning) GetMessage() string { if x != nil { return x.Message } return "" } func (x *DeveloperWarning) GetLine() uint32 { if x != nil { return x.Line } return 0 } func (x *DeveloperWarning) GetColumn() uint32 { if x != nil { return x.Column } return 0 } func (x *DeveloperWarning) GetSourceCode() string { if x != nil { return x.SourceCode } return "" } // DeveloperError represents a single error raised by the development package. Unlike an internal // error, it represents an issue with the entered information by the calling developer. type DeveloperError struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // line is the 1-indexed line for the developer error. Line uint32 `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"` // column is the 1-indexed column on the line for the developer error. Column uint32 `protobuf:"varint,3,opt,name=column,proto3" json:"column,omitempty"` // source is the source location of the error. Source DeveloperError_Source `protobuf:"varint,4,opt,name=source,proto3,enum=developer.v1.DeveloperError_Source" json:"source,omitempty"` Kind DeveloperError_ErrorKind `protobuf:"varint,5,opt,name=kind,proto3,enum=developer.v1.DeveloperError_ErrorKind" json:"kind,omitempty"` Path []string `protobuf:"bytes,6,rep,name=path,proto3" json:"path,omitempty"` // context holds the context for the error. For schema issues, this will be the // name of the object type. For relationship issues, the full relationship string. Context string `protobuf:"bytes,7,opt,name=context,proto3" json:"context,omitempty"` // debug_information is the debug information for the dispatched check, if this error was raised // due to an assertion failure. CheckDebugInformation *v11.DebugInformation `protobuf:"bytes,8,opt,name=check_debug_information,json=checkDebugInformation,proto3" json:"check_debug_information,omitempty"` // resolved_debug_information is the V1 API debug information for the check, if this error was raised // due to an assertion failure. CheckResolvedDebugInformation *v12.DebugInformation `protobuf:"bytes,9,opt,name=check_resolved_debug_information,json=checkResolvedDebugInformation,proto3" json:"check_resolved_debug_information,omitempty"` } func (x *DeveloperError) Reset() { *x = DeveloperError{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeveloperError) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeveloperError) ProtoMessage() {} func (x *DeveloperError) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[7] 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 DeveloperError.ProtoReflect.Descriptor instead. func (*DeveloperError) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{7} } func (x *DeveloperError) GetMessage() string { if x != nil { return x.Message } return "" } func (x *DeveloperError) GetLine() uint32 { if x != nil { return x.Line } return 0 } func (x *DeveloperError) GetColumn() uint32 { if x != nil { return x.Column } return 0 } func (x *DeveloperError) GetSource() DeveloperError_Source { if x != nil { return x.Source } return DeveloperError_UNKNOWN_SOURCE } func (x *DeveloperError) GetKind() DeveloperError_ErrorKind { if x != nil { return x.Kind } return DeveloperError_UNKNOWN_KIND } func (x *DeveloperError) GetPath() []string { if x != nil { return x.Path } return nil } func (x *DeveloperError) GetContext() string { if x != nil { return x.Context } return "" } func (x *DeveloperError) GetCheckDebugInformation() *v11.DebugInformation { if x != nil { return x.CheckDebugInformation } return nil } func (x *DeveloperError) GetCheckResolvedDebugInformation() *v12.DebugInformation { if x != nil { return x.CheckResolvedDebugInformation } return nil } // DeveloperErrors represents the developer error(s) found after the run has completed. type DeveloperErrors struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // input_errors are those error(s) in the schema, relationships, or assertions inputted by the developer. InputErrors []*DeveloperError `protobuf:"bytes,1,rep,name=input_errors,json=inputErrors,proto3" json:"input_errors,omitempty"` } func (x *DeveloperErrors) Reset() { *x = DeveloperErrors{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeveloperErrors) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeveloperErrors) ProtoMessage() {} func (x *DeveloperErrors) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[8] 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 DeveloperErrors.ProtoReflect.Descriptor instead. func (*DeveloperErrors) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{8} } func (x *DeveloperErrors) GetInputErrors() []*DeveloperError { if x != nil { return x.InputErrors } return nil } // CheckOperationParameters are the parameters for a `check` operation. type CheckOperationParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Resource *v1.ObjectAndRelation `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` Subject *v1.ObjectAndRelation `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` // * caveat_context consists of any named values that are defined at write time for the caveat expression * CaveatContext *structpb.Struct `protobuf:"bytes,3,opt,name=caveat_context,json=caveatContext,proto3" json:"caveat_context,omitempty"` } func (x *CheckOperationParameters) Reset() { *x = CheckOperationParameters{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckOperationParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckOperationParameters) ProtoMessage() {} func (x *CheckOperationParameters) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[9] 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 CheckOperationParameters.ProtoReflect.Descriptor instead. func (*CheckOperationParameters) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{9} } func (x *CheckOperationParameters) GetResource() *v1.ObjectAndRelation { if x != nil { return x.Resource } return nil } func (x *CheckOperationParameters) GetSubject() *v1.ObjectAndRelation { if x != nil { return x.Subject } return nil } func (x *CheckOperationParameters) GetCaveatContext() *structpb.Struct { if x != nil { return x.CaveatContext } return nil } // CheckOperationsResult is the result for a `check` operation. type CheckOperationsResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Membership CheckOperationsResult_Membership `protobuf:"varint,1,opt,name=membership,proto3,enum=developer.v1.CheckOperationsResult_Membership" json:"membership,omitempty"` // check_error is the error raised by the check, if any. CheckError *DeveloperError `protobuf:"bytes,2,opt,name=check_error,json=checkError,proto3" json:"check_error,omitempty"` // debug_information is the debug information for the check. DebugInformation *v11.DebugInformation `protobuf:"bytes,3,opt,name=debug_information,json=debugInformation,proto3" json:"debug_information,omitempty"` // partial_caveat_info holds information a partial evaluation of a caveat. PartialCaveatInfo *PartialCaveatInfo `protobuf:"bytes,4,opt,name=partial_caveat_info,json=partialCaveatInfo,proto3" json:"partial_caveat_info,omitempty"` // resolved_debug_information is the V1 API debug information for the check. ResolvedDebugInformation *v12.DebugInformation `protobuf:"bytes,5,opt,name=resolved_debug_information,json=resolvedDebugInformation,proto3" json:"resolved_debug_information,omitempty"` } func (x *CheckOperationsResult) Reset() { *x = CheckOperationsResult{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckOperationsResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckOperationsResult) ProtoMessage() {} func (x *CheckOperationsResult) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[10] 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 CheckOperationsResult.ProtoReflect.Descriptor instead. func (*CheckOperationsResult) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{10} } func (x *CheckOperationsResult) GetMembership() CheckOperationsResult_Membership { if x != nil { return x.Membership } return CheckOperationsResult_UNKNOWN } func (x *CheckOperationsResult) GetCheckError() *DeveloperError { if x != nil { return x.CheckError } return nil } func (x *CheckOperationsResult) GetDebugInformation() *v11.DebugInformation { if x != nil { return x.DebugInformation } return nil } func (x *CheckOperationsResult) GetPartialCaveatInfo() *PartialCaveatInfo { if x != nil { return x.PartialCaveatInfo } return nil } func (x *CheckOperationsResult) GetResolvedDebugInformation() *v12.DebugInformation { if x != nil { return x.ResolvedDebugInformation } return nil } // PartialCaveatInfo carries information necessary for the client to take action // in the event a response contains a partially evaluated caveat type PartialCaveatInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // missing_required_context is a list of one or more fields that were missing and prevented caveats // from being fully evaluated MissingRequiredContext []string `protobuf:"bytes,1,rep,name=missing_required_context,json=missingRequiredContext,proto3" json:"missing_required_context,omitempty"` } func (x *PartialCaveatInfo) Reset() { *x = PartialCaveatInfo{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PartialCaveatInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*PartialCaveatInfo) ProtoMessage() {} func (x *PartialCaveatInfo) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[11] 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 PartialCaveatInfo.ProtoReflect.Descriptor instead. func (*PartialCaveatInfo) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{11} } func (x *PartialCaveatInfo) GetMissingRequiredContext() []string { if x != nil { return x.MissingRequiredContext } return nil } // RunAssertionsParameters are the parameters for a `runAssertions` operation. type RunAssertionsParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // assertions_yaml are the assertions, in YAML form, to be run. AssertionsYaml string `protobuf:"bytes,1,opt,name=assertions_yaml,json=assertionsYaml,proto3" json:"assertions_yaml,omitempty"` } func (x *RunAssertionsParameters) Reset() { *x = RunAssertionsParameters{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RunAssertionsParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*RunAssertionsParameters) ProtoMessage() {} func (x *RunAssertionsParameters) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[12] 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 RunAssertionsParameters.ProtoReflect.Descriptor instead. func (*RunAssertionsParameters) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{12} } func (x *RunAssertionsParameters) GetAssertionsYaml() string { if x != nil { return x.AssertionsYaml } return "" } // RunAssertionsResult is the result for a `runAssertions` operation. type RunAssertionsResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // input_error is an error in the given YAML. InputError *DeveloperError `protobuf:"bytes,1,opt,name=input_error,json=inputError,proto3" json:"input_error,omitempty"` // validation_errors are the validation errors which occurred, if any. ValidationErrors []*DeveloperError `protobuf:"bytes,2,rep,name=validation_errors,json=validationErrors,proto3" json:"validation_errors,omitempty"` } func (x *RunAssertionsResult) Reset() { *x = RunAssertionsResult{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RunAssertionsResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*RunAssertionsResult) ProtoMessage() {} func (x *RunAssertionsResult) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[13] 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 RunAssertionsResult.ProtoReflect.Descriptor instead. func (*RunAssertionsResult) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{13} } func (x *RunAssertionsResult) GetInputError() *DeveloperError { if x != nil { return x.InputError } return nil } func (x *RunAssertionsResult) GetValidationErrors() []*DeveloperError { if x != nil { return x.ValidationErrors } return nil } // RunValidationParameters are the parameters for a `runValidation` operation. type RunValidationParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // validation_yaml is the expected relations validation, in YAML form, to be run. ValidationYaml string `protobuf:"bytes,1,opt,name=validation_yaml,json=validationYaml,proto3" json:"validation_yaml,omitempty"` } func (x *RunValidationParameters) Reset() { *x = RunValidationParameters{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RunValidationParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*RunValidationParameters) ProtoMessage() {} func (x *RunValidationParameters) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[14] 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 RunValidationParameters.ProtoReflect.Descriptor instead. func (*RunValidationParameters) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{14} } func (x *RunValidationParameters) GetValidationYaml() string { if x != nil { return x.ValidationYaml } return "" } // RunValidationResult is the result for a `runValidation` operation. type RunValidationResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // input_error is an error in the given YAML. InputError *DeveloperError `protobuf:"bytes,1,opt,name=input_error,json=inputError,proto3" json:"input_error,omitempty"` // updated_validation_yaml contains the generated and updated validation YAML for the expected // relations tab. UpdatedValidationYaml string `protobuf:"bytes,2,opt,name=updated_validation_yaml,json=updatedValidationYaml,proto3" json:"updated_validation_yaml,omitempty"` // validation_errors are the validation errors which occurred, if any. ValidationErrors []*DeveloperError `protobuf:"bytes,3,rep,name=validation_errors,json=validationErrors,proto3" json:"validation_errors,omitempty"` } func (x *RunValidationResult) Reset() { *x = RunValidationResult{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RunValidationResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*RunValidationResult) ProtoMessage() {} func (x *RunValidationResult) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[15] 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 RunValidationResult.ProtoReflect.Descriptor instead. func (*RunValidationResult) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{15} } func (x *RunValidationResult) GetInputError() *DeveloperError { if x != nil { return x.InputError } return nil } func (x *RunValidationResult) GetUpdatedValidationYaml() string { if x != nil { return x.UpdatedValidationYaml } return "" } func (x *RunValidationResult) GetValidationErrors() []*DeveloperError { if x != nil { return x.ValidationErrors } return nil } // FormatSchemaParameters are the parameters for a `formatSchema` operation. type FormatSchemaParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *FormatSchemaParameters) Reset() { *x = FormatSchemaParameters{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FormatSchemaParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*FormatSchemaParameters) ProtoMessage() {} func (x *FormatSchemaParameters) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[16] 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 FormatSchemaParameters.ProtoReflect.Descriptor instead. func (*FormatSchemaParameters) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{16} } // FormatSchemaResult is the result of the `formatSchema` operation. type FormatSchemaResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FormattedSchema string `protobuf:"bytes,1,opt,name=formatted_schema,json=formattedSchema,proto3" json:"formatted_schema,omitempty"` } func (x *FormatSchemaResult) Reset() { *x = FormatSchemaResult{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FormatSchemaResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*FormatSchemaResult) ProtoMessage() {} func (x *FormatSchemaResult) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[17] 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 FormatSchemaResult.ProtoReflect.Descriptor instead. func (*FormatSchemaResult) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{17} } func (x *FormatSchemaResult) GetFormattedSchema() string { if x != nil { return x.FormattedSchema } return "" } // SchemaWarningsParameters are the parameters for a `schemaWarnings` operation. type SchemaWarningsParameters struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *SchemaWarningsParameters) Reset() { *x = SchemaWarningsParameters{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SchemaWarningsParameters) String() string { return protoimpl.X.MessageStringOf(x) } func (*SchemaWarningsParameters) ProtoMessage() {} func (x *SchemaWarningsParameters) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[18] 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 SchemaWarningsParameters.ProtoReflect.Descriptor instead. func (*SchemaWarningsParameters) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{18} } // SchemaWarningsResult is the result of the `schemaWarnings` operation. type SchemaWarningsResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Warnings []*DeveloperWarning `protobuf:"bytes,1,rep,name=warnings,proto3" json:"warnings,omitempty"` } func (x *SchemaWarningsResult) Reset() { *x = SchemaWarningsResult{} if protoimpl.UnsafeEnabled { mi := &file_developer_v1_developer_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SchemaWarningsResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*SchemaWarningsResult) ProtoMessage() {} func (x *SchemaWarningsResult) ProtoReflect() protoreflect.Message { mi := &file_developer_v1_developer_proto_msgTypes[19] 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 SchemaWarningsResult.ProtoReflect.Descriptor instead. func (*SchemaWarningsResult) Descriptor() ([]byte, []int) { return file_developer_v1_developer_proto_rawDescGZIP(), []int{19} } func (x *SchemaWarningsResult) GetWarnings() []*DeveloperWarning { if x != nil { return x.Warnings } return nil } var File_developer_v1_developer_proto protoreflect.FileDescriptor var file_developer_v1_developer_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0c, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x83, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd4, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x48, 0x0a, 0x10, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x0f, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x4e, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x66, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3c, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x75, 0x70, 0x6c, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x68, 0x69, 0x70, 0x73, 0x22, 0xdc, 0x03, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x15, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x14, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x5e, 0x0a, 0x18, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x16, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x64, 0x0a, 0x1a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x52, 0x18, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x59, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa7, 0x03, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x46, 0x0a, 0x0c, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4e, 0x0a, 0x11, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x10, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4e, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x52, 0x0a, 0x14, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x12, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x58, 0x0a, 0x16, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x14, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x79, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0xc6, 0x06, 0x0a, 0x0e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x55, 0x0a, 0x17, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6f, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x48, 0x49, 0x50, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x53, 0x53, 0x45, 0x52, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x22, 0x93, 0x02, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x0c, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x41, 0x52, 0x53, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x43, 0x48, 0x45, 0x4d, 0x41, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x55, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x48, 0x49, 0x50, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x45, 0x43, 0x54, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x48, 0x49, 0x50, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x58, 0x54, 0x52, 0x41, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x48, 0x49, 0x50, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x5f, 0x52, 0x45, 0x43, 0x55, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x53, 0x53, 0x45, 0x52, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x09, 0x12, 0x18, 0x0a, 0x14, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x53, 0x55, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x0a, 0x22, 0x52, 0x0a, 0x0f, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x18, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 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, 0x0d, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x15, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0a, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x11, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x64, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x76, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5e, 0x0a, 0x1a, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x18, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4a, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x54, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x56, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x03, 0x22, 0x57, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x61, 0x76, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x18, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x92, 0x01, 0x02, 0x08, 0x01, 0x52, 0x16, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x42, 0x0a, 0x17, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x59, 0x61, 0x6d, 0x6c, 0x22, 0x9f, 0x01, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x49, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x42, 0x0a, 0x17, 0x52, 0x75, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x59, 0x61, 0x6d, 0x6c, 0x22, 0xd7, 0x01, 0x0a, 0x13, 0x52, 0x75, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3d, 0x0a, 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x17, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x49, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x3f, 0x0a, 0x12, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x52, 0x0a, 0x14, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x42, 0xb2, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x65, 0x64, 0x2f, 0x73, 0x70, 0x69, 0x63, 0x65, 0x64, 0x62, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x64, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x44, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_developer_v1_developer_proto_rawDescOnce sync.Once file_developer_v1_developer_proto_rawDescData = file_developer_v1_developer_proto_rawDesc ) func file_developer_v1_developer_proto_rawDescGZIP() []byte { file_developer_v1_developer_proto_rawDescOnce.Do(func() { file_developer_v1_developer_proto_rawDescData = protoimpl.X.CompressGZIP(file_developer_v1_developer_proto_rawDescData) }) return file_developer_v1_developer_proto_rawDescData } var file_developer_v1_developer_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_developer_v1_developer_proto_msgTypes = make([]protoimpl.MessageInfo, 21) var file_developer_v1_developer_proto_goTypes = []any{ (DeveloperError_Source)(0), // 0: developer.v1.DeveloperError.Source (DeveloperError_ErrorKind)(0), // 1: developer.v1.DeveloperError.ErrorKind (CheckOperationsResult_Membership)(0), // 2: developer.v1.CheckOperationsResult.Membership (*DeveloperRequest)(nil), // 3: developer.v1.DeveloperRequest (*DeveloperResponse)(nil), // 4: developer.v1.DeveloperResponse (*RequestContext)(nil), // 5: developer.v1.RequestContext (*Operation)(nil), // 6: developer.v1.Operation (*OperationsResults)(nil), // 7: developer.v1.OperationsResults (*OperationResult)(nil), // 8: developer.v1.OperationResult (*DeveloperWarning)(nil), // 9: developer.v1.DeveloperWarning (*DeveloperError)(nil), // 10: developer.v1.DeveloperError (*DeveloperErrors)(nil), // 11: developer.v1.DeveloperErrors (*CheckOperationParameters)(nil), // 12: developer.v1.CheckOperationParameters (*CheckOperationsResult)(nil), // 13: developer.v1.CheckOperationsResult (*PartialCaveatInfo)(nil), // 14: developer.v1.PartialCaveatInfo (*RunAssertionsParameters)(nil), // 15: developer.v1.RunAssertionsParameters (*RunAssertionsResult)(nil), // 16: developer.v1.RunAssertionsResult (*RunValidationParameters)(nil), // 17: developer.v1.RunValidationParameters (*RunValidationResult)(nil), // 18: developer.v1.RunValidationResult (*FormatSchemaParameters)(nil), // 19: developer.v1.FormatSchemaParameters (*FormatSchemaResult)(nil), // 20: developer.v1.FormatSchemaResult (*SchemaWarningsParameters)(nil), // 21: developer.v1.SchemaWarningsParameters (*SchemaWarningsResult)(nil), // 22: developer.v1.SchemaWarningsResult nil, // 23: developer.v1.OperationsResults.ResultsEntry (*v1.RelationTuple)(nil), // 24: core.v1.RelationTuple (*v11.DebugInformation)(nil), // 25: dispatch.v1.DebugInformation (*v12.DebugInformation)(nil), // 26: authzed.api.v1.DebugInformation (*v1.ObjectAndRelation)(nil), // 27: core.v1.ObjectAndRelation (*structpb.Struct)(nil), // 28: google.protobuf.Struct } var file_developer_v1_developer_proto_depIdxs = []int32{ 5, // 0: developer.v1.DeveloperRequest.context:type_name -> developer.v1.RequestContext 6, // 1: developer.v1.DeveloperRequest.operations:type_name -> developer.v1.Operation 11, // 2: developer.v1.DeveloperResponse.developer_errors:type_name -> developer.v1.DeveloperErrors 7, // 3: developer.v1.DeveloperResponse.operations_results:type_name -> developer.v1.OperationsResults 24, // 4: developer.v1.RequestContext.relationships:type_name -> core.v1.RelationTuple 12, // 5: developer.v1.Operation.check_parameters:type_name -> developer.v1.CheckOperationParameters 15, // 6: developer.v1.Operation.assertions_parameters:type_name -> developer.v1.RunAssertionsParameters 17, // 7: developer.v1.Operation.validation_parameters:type_name -> developer.v1.RunValidationParameters 19, // 8: developer.v1.Operation.format_schema_parameters:type_name -> developer.v1.FormatSchemaParameters 21, // 9: developer.v1.Operation.schema_warnings_parameters:type_name -> developer.v1.SchemaWarningsParameters 23, // 10: developer.v1.OperationsResults.results:type_name -> developer.v1.OperationsResults.ResultsEntry 13, // 11: developer.v1.OperationResult.check_result:type_name -> developer.v1.CheckOperationsResult 16, // 12: developer.v1.OperationResult.assertions_result:type_name -> developer.v1.RunAssertionsResult 18, // 13: developer.v1.OperationResult.validation_result:type_name -> developer.v1.RunValidationResult 20, // 14: developer.v1.OperationResult.format_schema_result:type_name -> developer.v1.FormatSchemaResult 22, // 15: developer.v1.OperationResult.schema_warnings_result:type_name -> developer.v1.SchemaWarningsResult 0, // 16: developer.v1.DeveloperError.source:type_name -> developer.v1.DeveloperError.Source 1, // 17: developer.v1.DeveloperError.kind:type_name -> developer.v1.DeveloperError.ErrorKind 25, // 18: developer.v1.DeveloperError.check_debug_information:type_name -> dispatch.v1.DebugInformation 26, // 19: developer.v1.DeveloperError.check_resolved_debug_information:type_name -> authzed.api.v1.DebugInformation 10, // 20: developer.v1.DeveloperErrors.input_errors:type_name -> developer.v1.DeveloperError 27, // 21: developer.v1.CheckOperationParameters.resource:type_name -> core.v1.ObjectAndRelation 27, // 22: developer.v1.CheckOperationParameters.subject:type_name -> core.v1.ObjectAndRelation 28, // 23: developer.v1.CheckOperationParameters.caveat_context:type_name -> google.protobuf.Struct 2, // 24: developer.v1.CheckOperationsResult.membership:type_name -> developer.v1.CheckOperationsResult.Membership 10, // 25: developer.v1.CheckOperationsResult.check_error:type_name -> developer.v1.DeveloperError 25, // 26: developer.v1.CheckOperationsResult.debug_information:type_name -> dispatch.v1.DebugInformation 14, // 27: developer.v1.CheckOperationsResult.partial_caveat_info:type_name -> developer.v1.PartialCaveatInfo 26, // 28: developer.v1.CheckOperationsResult.resolved_debug_information:type_name -> authzed.api.v1.DebugInformation 10, // 29: developer.v1.RunAssertionsResult.input_error:type_name -> developer.v1.DeveloperError 10, // 30: developer.v1.RunAssertionsResult.validation_errors:type_name -> developer.v1.DeveloperError 10, // 31: developer.v1.RunValidationResult.input_error:type_name -> developer.v1.DeveloperError 10, // 32: developer.v1.RunValidationResult.validation_errors:type_name -> developer.v1.DeveloperError 9, // 33: developer.v1.SchemaWarningsResult.warnings:type_name -> developer.v1.DeveloperWarning 8, // 34: developer.v1.OperationsResults.ResultsEntry.value:type_name -> developer.v1.OperationResult 35, // [35:35] is the sub-list for method output_type 35, // [35:35] is the sub-list for method input_type 35, // [35:35] is the sub-list for extension type_name 35, // [35:35] is the sub-list for extension extendee 0, // [0:35] is the sub-list for field type_name } func init() { file_developer_v1_developer_proto_init() } func file_developer_v1_developer_proto_init() { if File_developer_v1_developer_proto != nil { return } if !protoimpl.UnsafeEnabled { file_developer_v1_developer_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*DeveloperRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*DeveloperResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*RequestContext); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*Operation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*OperationsResults); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*OperationResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*DeveloperWarning); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*DeveloperError); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[8].Exporter = func(v any, i int) any { switch v := v.(*DeveloperErrors); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[9].Exporter = func(v any, i int) any { switch v := v.(*CheckOperationParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[10].Exporter = func(v any, i int) any { switch v := v.(*CheckOperationsResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[11].Exporter = func(v any, i int) any { switch v := v.(*PartialCaveatInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[12].Exporter = func(v any, i int) any { switch v := v.(*RunAssertionsParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[13].Exporter = func(v any, i int) any { switch v := v.(*RunAssertionsResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[14].Exporter = func(v any, i int) any { switch v := v.(*RunValidationParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[15].Exporter = func(v any, i int) any { switch v := v.(*RunValidationResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[16].Exporter = func(v any, i int) any { switch v := v.(*FormatSchemaParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[17].Exporter = func(v any, i int) any { switch v := v.(*FormatSchemaResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[18].Exporter = func(v any, i int) any { switch v := v.(*SchemaWarningsParameters); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_developer_v1_developer_proto_msgTypes[19].Exporter = func(v any, i int) any { switch v := v.(*SchemaWarningsResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_developer_v1_developer_proto_rawDesc, NumEnums: 3, NumMessages: 21, NumExtensions: 0, NumServices: 0, }, GoTypes: file_developer_v1_developer_proto_goTypes, DependencyIndexes: file_developer_v1_developer_proto_depIdxs, EnumInfos: file_developer_v1_developer_proto_enumTypes, MessageInfos: file_developer_v1_developer_proto_msgTypes, }.Build() File_developer_v1_developer_proto = out.File file_developer_v1_developer_proto_rawDesc = nil file_developer_v1_developer_proto_goTypes = nil file_developer_v1_developer_proto_depIdxs = nil }