From fa0a206b751f2e7d2f673538b3f9d86afefdb86f Mon Sep 17 00:00:00 2001 From: Adrian Tam Date: Mon, 27 Nov 2023 16:51:05 -0500 Subject: [PATCH 1/3] feat: introduce 409 conflict error code Close https://github.com/openfga/api/pull/107 --- docs/openapiv2/apidocs.swagger.json | 111 +++++ openfga/v1/errors_ignore.proto | 6 + openfga/v1/openapi.proto | 9 + proto/openfga/v1/errors_ignore.pb.go | 379 +++++++++++------- proto/openfga/v1/errors_ignore.pb.validate.go | 106 +++++ proto/openfga/v1/openapi.pb.go | 21 +- 6 files changed, 472 insertions(+), 160 deletions(-) diff --git a/docs/openapiv2/apidocs.swagger.json b/docs/openapiv2/apidocs.swagger.json index 5cefa461..bc7e5387 100644 --- a/docs/openapiv2/apidocs.swagger.json +++ b/docs/openapiv2/apidocs.swagger.json @@ -53,6 +53,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -102,6 +108,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -148,6 +160,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -187,6 +205,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -231,6 +255,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -276,6 +306,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -346,6 +382,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -401,6 +443,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -475,6 +523,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -525,6 +579,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -588,6 +648,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -665,6 +731,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -729,6 +801,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -813,6 +891,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -888,6 +972,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -972,6 +1062,12 @@ "$ref": "#/definitions/PathUnknownErrorMessageResponse" } }, + "409": { + "description": "Request failed due to aborted.", + "schema": { + "$ref": "#/definitions/AbortedMessageResponse" + } + }, "500": { "description": "Request failed due to internal server error.", "schema": { @@ -1014,6 +1110,21 @@ } }, "definitions": { + "AbortedMessageResponse": { + "type": "object", + "example": { + "code": "10", + "message": "transaction conflict" + }, + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, "Any": { "type": "object", "properties": { diff --git a/openfga/v1/errors_ignore.proto b/openfga/v1/errors_ignore.proto index 1b8c032b..f4d34d4a 100644 --- a/openfga/v1/errors_ignore.proto +++ b/openfga/v1/errors_ignore.proto @@ -114,4 +114,10 @@ message PathUnknownErrorMessageResponse { string message = 2; } +message AbortedMessageResponse { + option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = {example: "{\"code\":\"10\", \"message\":\"transaction conflict\"}"}; + string code = 1; + string message = 2; +} + message ErrorMessageRequest {} diff --git a/openfga/v1/openapi.proto b/openfga/v1/openapi.proto index c3d691df..3b742557 100644 --- a/openfga/v1/openapi.proto +++ b/openfga/v1/openapi.proto @@ -40,6 +40,15 @@ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { } } } + responses: { + key: "409" + value: { + description: "Request failed due to aborted." + schema: { + json_schema: {ref: ".openfga.v1.AbortedMessageResponse"} + } + } + } responses: { key: "500" value: { diff --git a/proto/openfga/v1/errors_ignore.pb.go b/proto/openfga/v1/errors_ignore.pb.go index 0e822a81..4d4755de 100644 --- a/proto/openfga/v1/errors_ignore.pb.go +++ b/proto/openfga/v1/errors_ignore.pb.go @@ -559,6 +559,61 @@ func (x *PathUnknownErrorMessageResponse) GetMessage() string { return "" } +type AbortedMessageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *AbortedMessageResponse) Reset() { + *x = AbortedMessageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_openfga_v1_errors_ignore_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AbortedMessageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AbortedMessageResponse) ProtoMessage() {} + +func (x *AbortedMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_openfga_v1_errors_ignore_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 AbortedMessageResponse.ProtoReflect.Descriptor instead. +func (*AbortedMessageResponse) Descriptor() ([]byte, []int) { + return file_openfga_v1_errors_ignore_proto_rawDescGZIP(), []int{3} +} + +func (x *AbortedMessageResponse) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *AbortedMessageResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + type ErrorMessageRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -568,7 +623,7 @@ type ErrorMessageRequest struct { func (x *ErrorMessageRequest) Reset() { *x = ErrorMessageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_openfga_v1_errors_ignore_proto_msgTypes[3] + mi := &file_openfga_v1_errors_ignore_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -581,7 +636,7 @@ func (x *ErrorMessageRequest) String() string { func (*ErrorMessageRequest) ProtoMessage() {} func (x *ErrorMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_openfga_v1_errors_ignore_proto_msgTypes[3] + mi := &file_openfga_v1_errors_ignore_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -594,7 +649,7 @@ func (x *ErrorMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ErrorMessageRequest.ProtoReflect.Descriptor instead. func (*ErrorMessageRequest) Descriptor() ([]byte, []int) { - return file_openfga_v1_errors_ignore_proto_rawDescGZIP(), []int{3} + return file_openfga_v1_errors_ignore_proto_rawDescGZIP(), []int{4} } var File_openfga_v1_errors_ignore_proto protoreflect.FileDescriptor @@ -639,153 +694,160 @@ var file_openfga_v1_errors_ignore_proto_rawDesc = []byte{ 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x2c, 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x22, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x22, 0x7d, 0x22, 0x15, 0x0a, 0x13, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2a, 0xf5, 0x01, 0x0a, 0x0d, - 0x41, 0x75, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x11, 0x0a, - 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, - 0x12, 0x20, 0x0a, 0x1b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, - 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, - 0xe9, 0x07, 0x12, 0x21, 0x0a, 0x1c, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, - 0x63, 0x65, 0x10, 0xea, 0x07, 0x12, 0x1f, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x73, 0x73, - 0x75, 0x65, 0x72, 0x10, 0xeb, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x10, 0xec, 0x07, 0x12, 0x25, 0x0a, 0x20, 0x61, - 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x5f, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x10, - 0xed, 0x07, 0x12, 0x19, 0x0a, 0x14, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x10, 0xf2, 0x07, 0x12, 0x14, 0x0a, - 0x0f, 0x75, 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x10, 0xdc, 0x0b, 0x2a, 0xfa, 0x0b, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x6f, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, - 0x15, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x10, 0xd0, 0x0f, 0x12, 0x22, 0x0a, 0x1d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, - 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xd1, 0x0f, 0x12, 0x2f, 0x0a, 0x2a, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6f, - 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x10, 0xd2, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x69, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x70, - 0x75, 0x74, 0x10, 0xd3, 0x0f, 0x12, 0x31, 0x0a, 0x2c, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x5f, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, - 0x74, 0x75, 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xd4, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x63, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xd5, 0x0f, 0x12, 0x35, 0x0a, 0x30, 0x63, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, - 0x70, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x74, - 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xd6, - 0x0f, 0x12, 0x1f, 0x0a, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x10, - 0xd7, 0x0f, 0x12, 0x16, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x75, - 0x70, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x10, 0xd8, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x70, 0x75, - 0x74, 0x10, 0xd9, 0x0f, 0x12, 0x19, 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, - 0x65, 0x78, 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x10, 0xda, 0x0f, 0x12, - 0x19, 0x0a, 0x14, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x74, 0x10, 0xdb, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x66, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x10, 0xdc, 0x0f, 0x12, 0x26, 0x0a, 0x21, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x10, 0xe1, 0x0f, 0x12, 0x2d, - 0x0a, 0x28, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xe2, 0x0f, 0x12, 0x29, 0x0a, - 0x24, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x65, 0x64, 0x22, 0x7d, 0x22, 0x7c, 0x0a, 0x16, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x34, 0x92, 0x41, + 0x31, 0x32, 0x2f, 0x7b, 0x22, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x22, 0x31, 0x30, 0x22, 0x2c, + 0x20, 0x22, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x3a, 0x22, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, + 0x22, 0x7d, 0x22, 0x15, 0x0a, 0x13, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2a, 0xf5, 0x01, 0x0a, 0x0d, 0x41, 0x75, + 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x6e, + 0x6f, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x20, + 0x0a, 0x1b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x10, 0xe9, 0x07, + 0x12, 0x21, 0x0a, 0x1c, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, + 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, + 0x10, 0xea, 0x07, 0x12, 0x1f, 0x0a, 0x1a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x73, 0x73, 0x75, 0x65, + 0x72, 0x10, 0xeb, 0x07, 0x12, 0x13, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x10, 0xec, 0x07, 0x12, 0x25, 0x0a, 0x20, 0x61, 0x75, 0x74, + 0x68, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x10, 0xed, 0x07, + 0x12, 0x19, 0x0a, 0x14, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x10, 0xf2, 0x07, 0x12, 0x14, 0x0a, 0x0f, 0x75, + 0x6e, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0xdc, + 0x0b, 0x2a, 0xfa, 0x0b, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x0c, 0x0a, 0x08, 0x6e, 0x6f, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x15, 0x0a, + 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0xd0, 0x0f, 0x12, 0x22, 0x0a, 0x1d, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, - 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xe4, 0x0f, 0x12, 0x13, 0x0a, 0x0e, 0x74, 0x79, 0x70, 0x65, - 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xe5, 0x0f, 0x12, 0x17, 0x0a, - 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0xe6, 0x0f, 0x12, 0x1e, 0x0a, 0x19, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, - 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x10, 0xe7, 0x0f, 0x12, 0x11, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x10, 0xe9, 0x0f, 0x12, 0x12, 0x0a, 0x0d, 0x69, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x10, 0xeb, 0x0f, 0x12, 0x15, 0x0a, - 0x10, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x10, 0xec, 0x0f, 0x12, 0x1c, 0x0a, 0x17, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, - 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x10, - 0xee, 0x0f, 0x12, 0x1e, 0x0a, 0x19, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6d, 0x61, 0x6e, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x10, - 0xf1, 0x0f, 0x12, 0x10, 0x0a, 0x0b, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, 0x6e, - 0x67, 0x10, 0xf2, 0x0f, 0x12, 0x24, 0x0a, 0x1f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x5f, 0x74, - 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0xf4, 0x0f, 0x12, 0x22, 0x0a, 0x1d, 0x74, 0x75, - 0x70, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x6f, - 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0xf5, 0x0f, 0x12, 0x29, - 0x0a, 0x24, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x74, 0x6f, 0x6f, - 0x5f, 0x6d, 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x66, 0x65, 0x77, - 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x10, 0xf6, 0x0f, 0x12, 0x16, 0x0a, 0x11, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0xf7, - 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0xf8, 0x0f, 0x12, 0x22, 0x0a, 0x1d, 0x64, - 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0xf9, 0x0f, 0x12, - 0x20, 0x0a, 0x1b, 0x73, 0x75, 0x62, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0xfa, - 0x0f, 0x12, 0x14, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, - 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0xfb, 0x0f, 0x12, 0x16, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0xfc, 0x0f, 0x12, - 0x23, 0x0a, 0x1e, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x66, 0x65, 0x77, 0x5f, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x10, 0xfd, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x10, 0xfe, 0x0f, 0x12, 0x19, - 0x0a, 0x14, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x10, 0xff, 0x0f, 0x12, 0x1c, 0x0a, 0x17, 0x72, 0x65, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x66, 0x65, 0x77, 0x5f, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x10, 0x80, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x81, 0x10, - 0x12, 0x1e, 0x0a, 0x19, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x69, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x10, 0x82, 0x10, - 0x12, 0x1b, 0x0a, 0x16, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x10, 0x83, 0x10, 0x12, 0x32, 0x0a, - 0x2d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x84, - 0x10, 0x12, 0x1a, 0x0a, 0x15, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x85, 0x10, 0x12, 0x1d, 0x0a, - 0x18, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x75, 0x61, 0x6c, 0x5f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x10, 0x86, 0x10, 0x12, 0x1f, 0x0a, 0x1a, - 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x10, 0x87, 0x10, 0x12, 0x20, 0x0a, - 0x1b, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x10, 0x88, 0x10, 0x12, - 0x1f, 0x0a, 0x1a, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x73, - 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x89, 0x10, - 0x2a, 0xf2, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x6e, 0x6f, 0x5f, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x13, 0x0a, - 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, - 0xa0, 0x1f, 0x12, 0x0e, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x10, - 0xa3, 0x1f, 0x12, 0x16, 0x0a, 0x11, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x65, - 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0xa4, 0x1f, 0x12, 0x13, 0x0a, 0x0e, 0x61, 0x6c, - 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x10, 0xa5, 0x1f, 0x12, - 0x17, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x68, 0x61, - 0x75, 0x73, 0x74, 0x65, 0x64, 0x10, 0xa6, 0x1f, 0x12, 0x18, 0x0a, 0x13, 0x66, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, - 0xa7, 0x1f, 0x12, 0x0c, 0x0a, 0x07, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xa8, 0x1f, - 0x12, 0x11, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x10, 0xa9, 0x1f, 0x12, 0x10, 0x0a, 0x0b, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x10, 0xaa, 0x1f, 0x12, 0x0e, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x6f, - 0x73, 0x73, 0x10, 0xab, 0x1f, 0x2a, 0x71, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, - 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x75, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x88, 0x27, 0x12, 0x17, 0x0a, 0x12, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, - 0x64, 0x10, 0x8a, 0x27, 0x12, 0x12, 0x0a, 0x0d, 0x75, 0x6e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x65, 0x64, 0x10, 0x8c, 0x27, 0x42, 0x9f, 0x01, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x73, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, - 0x6e, 0x66, 0x67, 0x61, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6f, - 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, - 0x61, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x58, 0x58, 0xaa, 0x02, 0x0a, 0x4f, 0x70, 0x65, 0x6e, - 0x66, 0x67, 0x61, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, - 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x16, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x5c, 0x56, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0b, 0x4f, - 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xd1, 0x0f, 0x12, 0x2f, 0x0a, 0x2a, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x10, 0xd2, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x10, 0xd3, 0x0f, 0x12, 0x31, 0x0a, 0x2c, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x75, + 0x70, 0x6c, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x10, 0xd4, 0x0f, 0x12, 0x30, 0x0a, 0x2b, 0x63, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xd5, 0x0f, 0x12, 0x35, 0x0a, 0x30, 0x63, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, + 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, + 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xd6, 0x0f, 0x12, + 0x1f, 0x0a, 0x1a, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, + 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x10, 0xd7, 0x0f, + 0x12, 0x16, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x75, 0x70, 0x6c, + 0x65, 0x5f, 0x73, 0x65, 0x74, 0x10, 0xd8, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x10, + 0xd9, 0x0f, 0x12, 0x19, 0x0a, 0x14, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x65, 0x78, + 0x70, 0x61, 0x6e, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x10, 0xda, 0x0f, 0x12, 0x19, 0x0a, + 0x14, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x73, 0x65, 0x74, 0x10, 0xdb, 0x0f, 0x12, 0x1a, 0x0a, 0x15, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x10, 0xdc, 0x0f, 0x12, 0x26, 0x0a, 0x21, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x10, 0xe1, 0x0f, 0x12, 0x2d, 0x0a, 0x28, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x6e, + 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xe2, 0x0f, 0x12, 0x29, 0x0a, 0x24, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0xe4, 0x0f, 0x12, 0x13, 0x0a, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, + 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0xe5, 0x0f, 0x12, 0x17, 0x0a, 0x12, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0xe6, 0x0f, 0x12, 0x1e, 0x0a, 0x19, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x72, 0x65, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x10, 0xe7, 0x0f, 0x12, 0x11, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x10, 0xe9, 0x0f, 0x12, 0x12, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x5f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x10, 0xeb, 0x0f, 0x12, 0x15, 0x0a, 0x10, 0x75, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, + 0xec, 0x0f, 0x12, 0x1c, 0x0a, 0x17, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x10, 0xee, 0x0f, + 0x12, 0x1e, 0x0a, 0x19, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, + 0x6f, 0x6f, 0x5f, 0x6d, 0x61, 0x6e, 0x79, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x10, 0xf1, 0x0f, + 0x12, 0x10, 0x0a, 0x0b, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x10, + 0xf2, 0x0f, 0x12, 0x24, 0x0a, 0x1f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x6f, + 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0xf4, 0x0f, 0x12, 0x22, 0x0a, 0x1d, 0x74, 0x75, 0x70, 0x6c, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0xf5, 0x0f, 0x12, 0x29, 0x0a, 0x24, + 0x74, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6d, + 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x72, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x66, 0x65, 0x77, 0x5f, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x10, 0xf6, 0x0f, 0x12, 0x16, 0x0a, 0x11, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0xf7, 0x0f, 0x12, + 0x18, 0x0a, 0x13, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0xf8, 0x0f, 0x12, 0x22, 0x0a, 0x1d, 0x64, 0x69, 0x66, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0xf9, 0x0f, 0x12, 0x20, 0x0a, + 0x1b, 0x73, 0x75, 0x62, 0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0xfa, 0x0f, 0x12, + 0x14, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, + 0x6e, 0x67, 0x10, 0xfb, 0x0f, 0x12, 0x16, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0xfc, 0x0f, 0x12, 0x23, 0x0a, + 0x1e, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x66, 0x65, 0x77, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x10, + 0xfd, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x10, 0xfe, 0x0f, 0x12, 0x19, 0x0a, 0x14, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x10, 0xff, 0x0f, 0x12, 0x1c, 0x0a, 0x17, 0x72, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x66, 0x65, 0x77, 0x5f, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x10, 0x80, 0x10, 0x12, 0x17, 0x0a, 0x12, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x81, 0x10, 0x12, 0x1e, + 0x0a, 0x19, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x10, 0x82, 0x10, 0x12, 0x1b, + 0x0a, 0x16, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x10, 0x83, 0x10, 0x12, 0x32, 0x0a, 0x2d, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x84, 0x10, 0x12, + 0x1a, 0x0a, 0x15, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x85, 0x10, 0x12, 0x1d, 0x0a, 0x18, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, 0x61, + 0x6c, 0x5f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x10, 0x86, 0x10, 0x12, 0x1f, 0x0a, 0x1a, 0x64, 0x75, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x75, + 0x61, 0x6c, 0x5f, 0x74, 0x75, 0x70, 0x6c, 0x65, 0x10, 0x87, 0x10, 0x12, 0x20, 0x0a, 0x1b, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x10, 0x88, 0x10, 0x12, 0x1f, 0x0a, + 0x1a, 0x75, 0x6e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x89, 0x10, 0x2a, 0xf2, + 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x6e, 0x6f, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xa0, 0x1f, + 0x12, 0x0e, 0x0a, 0x09, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0xa3, 0x1f, + 0x12, 0x16, 0x0a, 0x11, 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x78, 0x63, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0xa4, 0x1f, 0x12, 0x13, 0x0a, 0x0e, 0x61, 0x6c, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x10, 0xa5, 0x1f, 0x12, 0x17, 0x0a, + 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x78, 0x68, 0x61, 0x75, 0x73, + 0x74, 0x65, 0x64, 0x10, 0xa6, 0x1f, 0x12, 0x18, 0x0a, 0x13, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x5f, 0x70, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xa7, 0x1f, + 0x12, 0x0c, 0x0a, 0x07, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x10, 0xa8, 0x1f, 0x12, 0x11, + 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xa9, + 0x1f, 0x12, 0x10, 0x0a, 0x0b, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x10, 0xaa, 0x1f, 0x12, 0x0e, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x6f, 0x73, 0x73, + 0x10, 0xab, 0x1f, 0x2a, 0x71, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x5f, 0x6e, + 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x00, + 0x12, 0x17, 0x0a, 0x12, 0x75, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x88, 0x27, 0x12, 0x17, 0x0a, 0x12, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0x8a, 0x27, 0x12, 0x12, 0x0a, 0x0d, 0x75, 0x6e, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x65, 0x64, 0x10, 0x8c, 0x27, 0x42, 0x9f, 0x01, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x66, + 0x67, 0x61, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6f, 0x70, 0x65, + 0x6e, 0x66, 0x67, 0x61, 0x2f, 0x76, 0x31, 0x3b, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x4f, 0x58, 0x58, 0xaa, 0x02, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, + 0x61, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x5c, 0x56, + 0x31, 0xe2, 0x02, 0x16, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0b, 0x4f, 0x70, 0x65, + 0x6e, 0x66, 0x67, 0x61, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -801,7 +863,7 @@ func file_openfga_v1_errors_ignore_proto_rawDescGZIP() []byte { } var file_openfga_v1_errors_ignore_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_openfga_v1_errors_ignore_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_openfga_v1_errors_ignore_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_openfga_v1_errors_ignore_proto_goTypes = []interface{}{ (AuthErrorCode)(0), // 0: openfga.v1.AuthErrorCode (ErrorCode)(0), // 1: openfga.v1.ErrorCode @@ -810,7 +872,8 @@ var file_openfga_v1_errors_ignore_proto_goTypes = []interface{}{ (*ValidationErrorMessageResponse)(nil), // 4: openfga.v1.ValidationErrorMessageResponse (*InternalErrorMessageResponse)(nil), // 5: openfga.v1.InternalErrorMessageResponse (*PathUnknownErrorMessageResponse)(nil), // 6: openfga.v1.PathUnknownErrorMessageResponse - (*ErrorMessageRequest)(nil), // 7: openfga.v1.ErrorMessageRequest + (*AbortedMessageResponse)(nil), // 7: openfga.v1.AbortedMessageResponse + (*ErrorMessageRequest)(nil), // 8: openfga.v1.ErrorMessageRequest } var file_openfga_v1_errors_ignore_proto_depIdxs = []int32{ 1, // 0: openfga.v1.ValidationErrorMessageResponse.code:type_name -> openfga.v1.ErrorCode @@ -866,6 +929,18 @@ func file_openfga_v1_errors_ignore_proto_init() { } } file_openfga_v1_errors_ignore_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AbortedMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openfga_v1_errors_ignore_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ErrorMessageRequest); i { case 0: return &v.state @@ -884,7 +959,7 @@ func file_openfga_v1_errors_ignore_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_openfga_v1_errors_ignore_proto_rawDesc, NumEnums: 4, - NumMessages: 4, + NumMessages: 5, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/openfga/v1/errors_ignore.pb.validate.go b/proto/openfga/v1/errors_ignore.pb.validate.go index 588ce6a7..13beefae 100644 --- a/proto/openfga/v1/errors_ignore.pb.validate.go +++ b/proto/openfga/v1/errors_ignore.pb.validate.go @@ -356,6 +356,112 @@ var _ interface { ErrorName() string } = PathUnknownErrorMessageResponseValidationError{} +// Validate checks the field values on AbortedMessageResponse 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 *AbortedMessageResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on AbortedMessageResponse 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 +// AbortedMessageResponseMultiError, or nil if none found. +func (m *AbortedMessageResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *AbortedMessageResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for Code + + // no validation rules for Message + + if len(errors) > 0 { + return AbortedMessageResponseMultiError(errors) + } + + return nil +} + +// AbortedMessageResponseMultiError is an error wrapping multiple validation +// errors returned by AbortedMessageResponse.ValidateAll() if the designated +// constraints aren't met. +type AbortedMessageResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m AbortedMessageResponseMultiError) 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 AbortedMessageResponseMultiError) AllErrors() []error { return m } + +// AbortedMessageResponseValidationError is the validation error returned by +// AbortedMessageResponse.Validate if the designated constraints aren't met. +type AbortedMessageResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e AbortedMessageResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e AbortedMessageResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e AbortedMessageResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e AbortedMessageResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e AbortedMessageResponseValidationError) ErrorName() string { + return "AbortedMessageResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e AbortedMessageResponseValidationError) 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 %sAbortedMessageResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = AbortedMessageResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = AbortedMessageResponseValidationError{} + // Validate checks the field values on ErrorMessageRequest 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/openfga/v1/openapi.pb.go b/proto/openfga/v1/openapi.pb.go index a4090f79..623bf7fd 100644 --- a/proto/openfga/v1/openapi.pb.go +++ b/proto/openfga/v1/openapi.pb.go @@ -28,7 +28,7 @@ var file_openfga_v1_openapi_proto_rawDesc = []byte{ 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0xed, 0x05, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0xbe, 0x06, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2f, 0x61, 0x70, @@ -38,7 +38,7 @@ var file_openfga_v1_openapi_proto_rawDesc = []byte{ 0x02, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x16, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0b, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x3a, - 0x3a, 0x56, 0x31, 0x92, 0x41, 0xcf, 0x04, 0x12, 0x80, 0x02, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, + 0x3a, 0x56, 0x31, 0x92, 0x41, 0xa0, 0x05, 0x12, 0x80, 0x02, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x47, 0x41, 0x12, 0x75, 0x41, 0x20, 0x68, 0x69, 0x67, 0x68, 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, @@ -69,13 +69,18 @@ var file_openfga_v1_openapi_proto_rawDesc = []byte{ 0x12, 0x2f, 0x0a, 0x2d, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x63, 0x0a, 0x03, 0x35, 0x30, 0x30, 0x12, 0x5c, 0x0a, 0x2c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x52, 0x4f, 0x0a, 0x03, 0x34, 0x30, 0x39, 0x12, 0x48, 0x0a, 0x1e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x75, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x12, 0x2c, 0x0a, 0x2a, 0x1a, 0x28, 0x2e, 0x6f, - 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x20, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x12, 0x26, 0x0a, 0x24, 0x1a, 0x22, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x63, 0x0a, 0x03, 0x35, 0x30, 0x30, 0x12, 0x5c, 0x0a, 0x2c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x75, 0x65, 0x20, + 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x12, 0x2c, 0x0a, 0x2a, 0x1a, 0x28, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_openfga_v1_openapi_proto_goTypes = []interface{}{} From 830eb2a2ca652f0af200eb568e23771a625083e8 Mon Sep 17 00:00:00 2001 From: Adrian Tam Date: Thu, 7 Dec 2023 12:47:58 -0500 Subject: [PATCH 2/3] rereun doc gen --- docs/openapiv2/apidocs.swagger.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/openapiv2/apidocs.swagger.json b/docs/openapiv2/apidocs.swagger.json index bc7e5387..04046703 100644 --- a/docs/openapiv2/apidocs.swagger.json +++ b/docs/openapiv2/apidocs.swagger.json @@ -1655,7 +1655,7 @@ "NULL_VALUE" ], "default": "NULL_VALUE", - "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\nThe JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." + "description": "`NullValue` is a singleton enumeration to represent the null value for the\n`Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`.\n\n - NULL_VALUE: Null value." }, "ObjectRelation": { "type": "object", From fd5bb656950cce4226d9fa6909f0c3b9436dcfab Mon Sep 17 00:00:00 2001 From: Adrian Tam Date: Mon, 11 Dec 2023 19:52:18 -0500 Subject: [PATCH 3/3] address code review feedback --- docs/openapiv2/apidocs.swagger.json | 32 ++++++++++++++--------------- openfga/v1/openapi.proto | 2 +- proto/openfga/v1/openapi.pb.go | 29 +++++++++++++------------- 3 files changed, 32 insertions(+), 31 deletions(-) diff --git a/docs/openapiv2/apidocs.swagger.json b/docs/openapiv2/apidocs.swagger.json index 04046703..716da4dc 100644 --- a/docs/openapiv2/apidocs.swagger.json +++ b/docs/openapiv2/apidocs.swagger.json @@ -54,7 +54,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -109,7 +109,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -161,7 +161,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -206,7 +206,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -256,7 +256,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -307,7 +307,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -383,7 +383,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -444,7 +444,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -524,7 +524,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -580,7 +580,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -649,7 +649,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -732,7 +732,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -802,7 +802,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -892,7 +892,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -973,7 +973,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } @@ -1063,7 +1063,7 @@ } }, "409": { - "description": "Request failed due to aborted.", + "description": "Request was aborted due a transaction conflict.", "schema": { "$ref": "#/definitions/AbortedMessageResponse" } diff --git a/openfga/v1/openapi.proto b/openfga/v1/openapi.proto index 3b742557..55e9200e 100644 --- a/openfga/v1/openapi.proto +++ b/openfga/v1/openapi.proto @@ -43,7 +43,7 @@ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { responses: { key: "409" value: { - description: "Request failed due to aborted." + description: "Request was aborted due a transaction conflict." schema: { json_schema: {ref: ".openfga.v1.AbortedMessageResponse"} } diff --git a/proto/openfga/v1/openapi.pb.go b/proto/openfga/v1/openapi.pb.go index 623bf7fd..3d545aa2 100644 --- a/proto/openfga/v1/openapi.pb.go +++ b/proto/openfga/v1/openapi.pb.go @@ -28,7 +28,7 @@ var file_openfga_v1_openapi_proto_rawDesc = []byte{ 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0xbe, 0x06, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0xcf, 0x06, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2f, 0x61, 0x70, @@ -38,7 +38,7 @@ var file_openfga_v1_openapi_proto_rawDesc = []byte{ 0x02, 0x0a, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x16, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0b, 0x4f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x3a, - 0x3a, 0x56, 0x31, 0x92, 0x41, 0xa0, 0x05, 0x12, 0x80, 0x02, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, + 0x3a, 0x56, 0x31, 0x92, 0x41, 0xb1, 0x05, 0x12, 0x80, 0x02, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x46, 0x47, 0x41, 0x12, 0x75, 0x41, 0x20, 0x68, 0x69, 0x67, 0x68, 0x20, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x69, 0x62, 0x6c, 0x65, 0x20, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, @@ -69,18 +69,19 @@ var file_openfga_v1_openapi_proto_rawDesc = []byte{ 0x12, 0x2f, 0x0a, 0x2d, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x4f, 0x0a, 0x03, 0x34, 0x30, 0x39, 0x12, 0x48, 0x0a, 0x1e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x75, 0x65, 0x20, 0x74, - 0x6f, 0x20, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x2e, 0x12, 0x26, 0x0a, 0x24, 0x1a, 0x22, - 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, - 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x63, 0x0a, 0x03, 0x35, 0x30, 0x30, 0x12, 0x5c, 0x0a, 0x2c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x75, 0x65, 0x20, - 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x12, 0x2c, 0x0a, 0x2a, 0x1a, 0x28, 0x2e, - 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x52, 0x60, 0x0a, 0x03, 0x34, 0x30, 0x39, 0x12, 0x59, 0x0a, 0x2f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x20, + 0x64, 0x75, 0x65, 0x20, 0x61, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x2e, 0x12, 0x26, 0x0a, 0x24, 0x1a, + 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x62, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x63, 0x0a, 0x03, 0x35, 0x30, 0x30, 0x12, 0x5c, 0x0a, 0x2c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x20, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x20, 0x64, 0x75, 0x65, + 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x20, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x12, 0x2c, 0x0a, 0x2a, 0x1a, 0x28, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x66, 0x67, 0x61, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_openfga_v1_openapi_proto_goTypes = []interface{}{}