From a28ceb251a433869e56110070cbc484295afff3a Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Fri, 9 Aug 2024 17:20:07 +0300
Subject: [PATCH 01/42] [#77] util/proto: Optimize int32 marshaling
This is the approach used in easyproto
https://github.com/VictoriaMetrics/easyproto/blob/52d3ac47440b52fd42bf4bbb5bacb358a85fccc3/writer.go#L203
It allows to occupy slightly less space for negative numbers.
The format is still protobuf, although, technically, this is a breaking
change for our stable marshaling format.
However, we don't use int32 at all and all enums have positive values,
so nothing is broken.
Signed-off-by: Evgenii Stratonikov
---
util/proto/marshal.go | 29 +++++++++++++++++++++++------
1 file changed, 23 insertions(+), 6 deletions(-)
diff --git a/util/proto/marshal.go b/util/proto/marshal.go
index 26b3eb0..42c6a91 100644
--- a/util/proto/marshal.go
+++ b/util/proto/marshal.go
@@ -136,19 +136,19 @@ func UInt32Size(field int, v uint32) int {
}
func Int32Marshal(field int, buf []byte, v int32) int {
- return UInt64Marshal(field, buf, uint64(v))
+ return UInt64Marshal(field, buf, uint64(uint32(v)))
}
func Int32Size(field int, v int32) int {
- return UInt64Size(field, uint64(v))
+ return UInt64Size(field, uint64(uint32(v)))
}
func EnumMarshal(field int, buf []byte, v int32) int {
- return UInt64Marshal(field, buf, uint64(v))
+ return UInt64Marshal(field, buf, uint64(uint32(v)))
}
func EnumSize(field int, v int32) int {
- return UInt64Size(field, uint64(v))
+ return UInt64Size(field, uint64(uint32(v)))
}
func RepeatedBytesMarshal(field int, buf []byte, v [][]byte) int {
@@ -243,11 +243,28 @@ func RepeatedUInt32Size(field int, v []uint32) (size, arraySize int) {
}
func RepeatedInt32Marshal(field int, buf []byte, v []int32) int {
- return repeatedUIntMarshal(field, buf, v)
+ if len(v) == 0 {
+ return 0
+ }
+
+ prefix := protowire.EncodeTag(protowire.Number(field), protowire.BytesType)
+ offset := binary.PutUvarint(buf, uint64(prefix))
+ _, arrSize := RepeatedInt32Size(field, v)
+ offset += binary.PutUvarint(buf[offset:], uint64(arrSize))
+ for i := range v {
+ offset += binary.PutUvarint(buf[offset:], uint64(uint32(v[i])))
+ }
+ return offset
}
func RepeatedInt32Size(field int, v []int32) (size, arraySize int) {
- return repeatedUIntSize(field, v)
+ if len(v) == 0 {
+ return 0, 0
+ }
+ for i := range v {
+ arraySize += protowire.SizeVarint(uint64(uint32(v[i])))
+ }
+ return protowire.SizeGroup(protowire.Number(field), protowire.SizeBytes(arraySize)), arraySize
}
// VarUIntSize returns length of varint byte sequence for uint64 value 'x'.
From adb7c602d7e5762bd385cb0282dec3b323de25ac Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Thu, 25 Apr 2024 15:13:10 +0300
Subject: [PATCH 02/42] [#77] protogen: Initial implementation
Signed-off-by: Evgenii Stratonikov
---
Makefile | 11 +-
accounting/grpc/service.go | 46 -
accounting/grpc/service.pb.go | 451 -
accounting/grpc/service_frostfs.pb.go | 724 ++
accounting/grpc/service_frostfs_fuzz.go | 45 +
accounting/grpc/service_frostfs_test.go | 31 +
accounting/grpc/types.go | 11 -
accounting/grpc/types.pb.go | 169 -
accounting/grpc/types_frostfs.pb.go | 174 +
accounting/grpc/types_frostfs_fuzz.go | 26 +
accounting/grpc/types_frostfs_test.go | 21 +
acl/convert.go | 2 +-
acl/grpc/types.go | 193 -
acl/grpc/types.pb.go | 1231 ---
acl/grpc/types_frostfs.pb.go | 1994 ++++
acl/grpc/types_frostfs_fuzz.go | 64 +
acl/grpc/types_frostfs_test.go | 41 +
ape/grpc/types.go | 21 -
ape/grpc/types.pb.go | 310 -
ape/grpc/types_frostfs.pb.go | 400 +
ape/grpc/types_frostfs_fuzz.go | 45 +
ape/grpc/types_frostfs_test.go | 31 +
apemanager/grpc/service.go | 106 -
apemanager/grpc/service.pb.go | 1129 ---
apemanager/grpc/service_frostfs.pb.go | 2183 +++++
apemanager/grpc/service_frostfs_fuzz.go | 121 +
apemanager/grpc/service_frostfs_test.go | 71 +
container/grpc/service.go | 234 -
container/grpc/service.pb.go | 1909 ----
container/grpc/service_frostfs.pb.go | 3748 +++++++
container/grpc/service_frostfs_fuzz.go | 197 +
container/grpc/service_frostfs_test.go | 111 +
container/grpc/types.go | 46 -
container/grpc/types.pb.go | 337 -
container/grpc/types_frostfs.pb.go | 495 +
container/grpc/types_frostfs_fuzz.go | 26 +
container/grpc/types_frostfs_test.go | 21 +
go.mod | 3 +
go.sum | 6 +
lock/grpc/types.go | 8 -
lock/grpc/types.pb.go | 160 -
lock/grpc/types_frostfs.pb.go | 167 +
lock/grpc/types_frostfs_fuzz.go | 26 +
lock/grpc/types_frostfs_test.go | 21 +
netmap/grpc/service.go | 116 -
netmap/grpc/service.pb.go | 1108 ---
netmap/grpc/service_frostfs.pb.go | 2061 ++++
netmap/grpc/service_frostfs_fuzz.go | 121 +
netmap/grpc/service_frostfs_test.go | 71 +
netmap/grpc/types.go | 212 -
netmap/grpc/types.pb.go | 1371 ---
netmap/grpc/types_frostfs.pb.go | 2453 +++++
netmap/grpc/types_frostfs_fuzz.go | 159 +
netmap/grpc/types_frostfs_test.go | 91 +
object/convert.go | 2 +-
object/grpc/service.go | 610 --
object/grpc/service.pb.go | 4244 --------
object/grpc/service_frostfs.pb.go | 8690 +++++++++++++++++
object/grpc/service_frostfs_fuzz.go | 387 +
object/grpc/service_frostfs_test.go | 211 +
object/grpc/service_grpc.pb.go | 4 +-
object/grpc/status.pb.go | 251 -
object/grpc/types.go | 197 -
object/grpc/types.pb.go | 1373 ---
object/grpc/types_frostfs.pb.go | 2621 +++++
object/grpc/types_frostfs_fuzz.go | 102 +
object/grpc/types_frostfs_test.go | 61 +
refs/grpc/types.go | 97 -
refs/grpc/types.pb.go | 852 --
refs/grpc/types_frostfs.pb.go | 1343 +++
refs/grpc/types_frostfs_fuzz.go | 159 +
refs/grpc/types_frostfs_test.go | 91 +
rpc/client/client.go | 2 +
rpc/message/encoding.go | 20 +-
rpc/netmap.go | 1 -
session/convert.go | 2 +-
session/grpc/service.go | 55 -
session/grpc/service.pb.go | 458 -
session/grpc/service_frostfs.pb.go | 781 ++
session/grpc/service_frostfs_fuzz.go | 45 +
session/grpc/service_frostfs_test.go | 31 +
session/grpc/types.go | 246 -
session/grpc/types.pb.go | 1451 ---
session/grpc/types_frostfs.pb.go | 2730 ++++++
session/grpc/types_frostfs_fuzz.go | 159 +
session/grpc/types_frostfs_test.go | 91 +
status/grpc/types.go | 26 -
status/grpc/types.pb.go | 721 --
status/grpc/types_frostfs.pb.go | 643 ++
status/grpc/types_frostfs_fuzz.go | 26 +
status/grpc/types_frostfs_test.go | 21 +
tombstone/grpc/types.go | 20 -
tombstone/grpc/types.pb.go | 187 -
tombstone/grpc/types_frostfs.pb.go | 229 +
tombstone/grpc/types_frostfs_fuzz.go | 26 +
tombstone/grpc/types_frostfs_test.go | 21 +
util/pool/marshal.go | 7 +
util/proto/encoding/compat.go | 22 +
util/proto/encoding/json.go | 48 +
util/proto/encoding/proto.go | 57 +
util/proto/marshal.go | 13 +-
util/proto/marshal_test.go | 103 +-
util/proto/test/custom/test_frostfs.pb.go | 926 ++
util/proto/test/test_frostfs.pb.go | 117 -
util/protogen/internalgengo/file.go | 250 +
util/protogen/internalgengo/fuzz.go | 69 +
util/protogen/internalgengo/getter.go | 14 +
util/protogen/internalgengo/json.go | 230 +
util/protogen/internalgengo/options.go | 7 +
util/protogen/internalgengo/proto.go | 201 +
.../internalgengo/proto_field_type.go | 56 +
.../internalgengo/proto_stable_compat.go | 124 +
util/protogen/internalgengo/writer.go | 30 +
util/protogen/main.go | 265 +-
util/signature/data.go | 18 +-
115 files changed, 36376 insertions(+), 20397 deletions(-)
delete mode 100644 accounting/grpc/service.go
delete mode 100644 accounting/grpc/service.pb.go
create mode 100644 accounting/grpc/service_frostfs.pb.go
create mode 100644 accounting/grpc/service_frostfs_fuzz.go
create mode 100644 accounting/grpc/service_frostfs_test.go
delete mode 100644 accounting/grpc/types.go
delete mode 100644 accounting/grpc/types.pb.go
create mode 100644 accounting/grpc/types_frostfs.pb.go
create mode 100644 accounting/grpc/types_frostfs_fuzz.go
create mode 100644 accounting/grpc/types_frostfs_test.go
delete mode 100644 acl/grpc/types.go
delete mode 100644 acl/grpc/types.pb.go
create mode 100644 acl/grpc/types_frostfs.pb.go
create mode 100644 acl/grpc/types_frostfs_fuzz.go
create mode 100644 acl/grpc/types_frostfs_test.go
delete mode 100644 ape/grpc/types.go
delete mode 100644 ape/grpc/types.pb.go
create mode 100644 ape/grpc/types_frostfs.pb.go
create mode 100644 ape/grpc/types_frostfs_fuzz.go
create mode 100644 ape/grpc/types_frostfs_test.go
delete mode 100644 apemanager/grpc/service.go
delete mode 100644 apemanager/grpc/service.pb.go
create mode 100644 apemanager/grpc/service_frostfs.pb.go
create mode 100644 apemanager/grpc/service_frostfs_fuzz.go
create mode 100644 apemanager/grpc/service_frostfs_test.go
delete mode 100644 container/grpc/service.go
delete mode 100644 container/grpc/service.pb.go
create mode 100644 container/grpc/service_frostfs.pb.go
create mode 100644 container/grpc/service_frostfs_fuzz.go
create mode 100644 container/grpc/service_frostfs_test.go
delete mode 100644 container/grpc/types.go
delete mode 100644 container/grpc/types.pb.go
create mode 100644 container/grpc/types_frostfs.pb.go
create mode 100644 container/grpc/types_frostfs_fuzz.go
create mode 100644 container/grpc/types_frostfs_test.go
delete mode 100644 lock/grpc/types.go
delete mode 100644 lock/grpc/types.pb.go
create mode 100644 lock/grpc/types_frostfs.pb.go
create mode 100644 lock/grpc/types_frostfs_fuzz.go
create mode 100644 lock/grpc/types_frostfs_test.go
delete mode 100644 netmap/grpc/service.go
delete mode 100644 netmap/grpc/service.pb.go
create mode 100644 netmap/grpc/service_frostfs.pb.go
create mode 100644 netmap/grpc/service_frostfs_fuzz.go
create mode 100644 netmap/grpc/service_frostfs_test.go
delete mode 100644 netmap/grpc/types.go
delete mode 100644 netmap/grpc/types.pb.go
create mode 100644 netmap/grpc/types_frostfs.pb.go
create mode 100644 netmap/grpc/types_frostfs_fuzz.go
create mode 100644 netmap/grpc/types_frostfs_test.go
delete mode 100644 object/grpc/service.go
delete mode 100644 object/grpc/service.pb.go
create mode 100644 object/grpc/service_frostfs.pb.go
create mode 100644 object/grpc/service_frostfs_fuzz.go
create mode 100644 object/grpc/service_frostfs_test.go
delete mode 100644 object/grpc/status.pb.go
delete mode 100644 object/grpc/types.go
delete mode 100644 object/grpc/types.pb.go
create mode 100644 object/grpc/types_frostfs.pb.go
create mode 100644 object/grpc/types_frostfs_fuzz.go
create mode 100644 object/grpc/types_frostfs_test.go
delete mode 100644 refs/grpc/types.go
delete mode 100644 refs/grpc/types.pb.go
create mode 100644 refs/grpc/types_frostfs.pb.go
create mode 100644 refs/grpc/types_frostfs_fuzz.go
create mode 100644 refs/grpc/types_frostfs_test.go
delete mode 100644 session/grpc/service.go
delete mode 100644 session/grpc/service.pb.go
create mode 100644 session/grpc/service_frostfs.pb.go
create mode 100644 session/grpc/service_frostfs_fuzz.go
create mode 100644 session/grpc/service_frostfs_test.go
delete mode 100644 session/grpc/types.go
delete mode 100644 session/grpc/types.pb.go
create mode 100644 session/grpc/types_frostfs.pb.go
create mode 100644 session/grpc/types_frostfs_fuzz.go
create mode 100644 session/grpc/types_frostfs_test.go
delete mode 100644 status/grpc/types.go
delete mode 100644 status/grpc/types.pb.go
create mode 100644 status/grpc/types_frostfs.pb.go
create mode 100644 status/grpc/types_frostfs_fuzz.go
create mode 100644 status/grpc/types_frostfs_test.go
delete mode 100644 tombstone/grpc/types.go
delete mode 100644 tombstone/grpc/types.pb.go
create mode 100644 tombstone/grpc/types_frostfs.pb.go
create mode 100644 tombstone/grpc/types_frostfs_fuzz.go
create mode 100644 tombstone/grpc/types_frostfs_test.go
create mode 100644 util/pool/marshal.go
create mode 100644 util/proto/encoding/compat.go
create mode 100644 util/proto/encoding/json.go
create mode 100644 util/proto/encoding/proto.go
create mode 100644 util/proto/test/custom/test_frostfs.pb.go
delete mode 100644 util/proto/test/test_frostfs.pb.go
create mode 100644 util/protogen/internalgengo/file.go
create mode 100644 util/protogen/internalgengo/fuzz.go
create mode 100644 util/protogen/internalgengo/getter.go
create mode 100644 util/protogen/internalgengo/json.go
create mode 100644 util/protogen/internalgengo/options.go
create mode 100644 util/protogen/internalgengo/proto.go
create mode 100644 util/protogen/internalgengo/proto_field_type.go
create mode 100644 util/protogen/internalgengo/proto_stable_compat.go
create mode 100644 util/protogen/internalgengo/writer.go
diff --git a/Makefile b/Makefile
index 19b3138..7ed6954 100755
--- a/Makefile
+++ b/Makefile
@@ -61,12 +61,13 @@ protoc:
make protoc-install; \
fi
# Protoc generate
- @for f in `find . -type f -name '*.proto' -not -path './bin/*'`; do \
+ @for f in `find . -type f -name '*.proto' -not -path './bin/*' -not -path './util/proto/test/*'`; do \
echo "⇒ Processing $$f "; \
$(PROTOC_DIR)/bin/protoc \
--proto_path=.:$(PROTOC_DIR)/include:/usr/local/include \
- --plugin=protoc-gen-go=$(PROTOC_GEN_GO_DIR)/protoc-gen-go \
- --go_out=. --go_opt=paths=source_relative \
+ --plugin=protoc-gen-go-frostfs=$(abspath ./bin/protogen) \
+ --go-frostfs_out=fuzz=true:. \
+ --go-frostfs_opt=paths=source_relative \
--go-grpc_opt=require_unimplemented_servers=false \
--go-grpc_out=. --go-grpc_opt=paths=source_relative $$f; \
done
@@ -79,7 +80,9 @@ protogen:
protoc-test: protoc protogen
@$(PROTOC_DIR)/bin/protoc \
--plugin=protoc-gen-go-frostfs=$(abspath $(BIN)/protogen) \
- --go-frostfs_out=. --go-frostfs_opt=paths=source_relative \
+ --go-frostfs_opt=Mutil/proto/test/test.proto=git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/test/custom \
+ --go-frostfs_opt=module=git.frostfs.info/TrueCloudLab/frostfs-api-go/v2 \
+ --go-frostfs_out=. --go-frostfs_opt=paths=import \
./util/proto/test/test.proto
# Run Unit Test with go test
diff --git a/accounting/grpc/service.go b/accounting/grpc/service.go
deleted file mode 100644
index fa292bf..0000000
--- a/accounting/grpc/service.go
+++ /dev/null
@@ -1,46 +0,0 @@
-package accounting
-
-import (
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
-)
-
-// SetOwnerId sets identifier of the account owner.
-func (m *BalanceRequest_Body) SetOwnerId(v *refs.OwnerID) {
- m.OwnerId = v
-}
-
-// SetBody sets body of the request.
-func (m *BalanceRequest) SetBody(v *BalanceRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *BalanceRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *BalanceRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetBalance sets balance value of the response.
-func (m *BalanceResponse_Body) SetBalance(v *Decimal) {
- m.Balance = v
-}
-
-// SetBody sets body of the response.
-func (m *BalanceResponse) SetBody(v *BalanceResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *BalanceResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *BalanceResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
diff --git a/accounting/grpc/service.pb.go b/accounting/grpc/service.pb.go
deleted file mode 100644
index b66bb7a..0000000
--- a/accounting/grpc/service.pb.go
+++ /dev/null
@@ -1,451 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: accounting/grpc/service.proto
-
-package accounting
-
-import (
- grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// BalanceRequest message
-type BalanceRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of the balance request message.
- Body *BalanceRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *BalanceRequest) Reset() {
- *x = BalanceRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_accounting_grpc_service_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *BalanceRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BalanceRequest) ProtoMessage() {}
-
-func (x *BalanceRequest) ProtoReflect() protoreflect.Message {
- mi := &file_accounting_grpc_service_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use BalanceRequest.ProtoReflect.Descriptor instead.
-func (*BalanceRequest) Descriptor() ([]byte, []int) {
- return file_accounting_grpc_service_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *BalanceRequest) GetBody() *BalanceRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *BalanceRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *BalanceRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// BalanceResponse message
-type BalanceResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of the balance response message.
- Body *BalanceResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *BalanceResponse) Reset() {
- *x = BalanceResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_accounting_grpc_service_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *BalanceResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BalanceResponse) ProtoMessage() {}
-
-func (x *BalanceResponse) ProtoReflect() protoreflect.Message {
- mi := &file_accounting_grpc_service_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use BalanceResponse.ProtoReflect.Descriptor instead.
-func (*BalanceResponse) Descriptor() ([]byte, []int) {
- return file_accounting_grpc_service_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *BalanceResponse) GetBody() *BalanceResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *BalanceResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *BalanceResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// To indicate the account for which the balance is requested, its identifier
-// is used. It can be any existing account in NeoFS sidechain `Balance` smart
-// contract. If omitted, client implementation MUST set it to the request's
-// signer `OwnerID`.
-type BalanceRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Valid user identifier in `OwnerID` format for which the balance is
- // requested. Required field.
- OwnerId *grpc1.OwnerID `protobuf:"bytes,1,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
-}
-
-func (x *BalanceRequest_Body) Reset() {
- *x = BalanceRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_accounting_grpc_service_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *BalanceRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BalanceRequest_Body) ProtoMessage() {}
-
-func (x *BalanceRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_accounting_grpc_service_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use BalanceRequest_Body.ProtoReflect.Descriptor instead.
-func (*BalanceRequest_Body) Descriptor() ([]byte, []int) {
- return file_accounting_grpc_service_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *BalanceRequest_Body) GetOwnerId() *grpc1.OwnerID {
- if x != nil {
- return x.OwnerId
- }
- return nil
-}
-
-// The amount of funds in GAS token for the `OwnerID`'s account requested.
-// Balance is given in the `Decimal` format to avoid precision issues with
-// rounding.
-type BalanceResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Amount of funds in GAS token for the requested account.
- Balance *Decimal `protobuf:"bytes,1,opt,name=balance,proto3" json:"balance,omitempty"`
-}
-
-func (x *BalanceResponse_Body) Reset() {
- *x = BalanceResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_accounting_grpc_service_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *BalanceResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BalanceResponse_Body) ProtoMessage() {}
-
-func (x *BalanceResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_accounting_grpc_service_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use BalanceResponse_Body.ProtoReflect.Descriptor instead.
-func (*BalanceResponse_Body) Descriptor() ([]byte, []int) {
- return file_accounting_grpc_service_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (x *BalanceResponse_Body) GetBalance() *Decimal {
- if x != nil {
- return x.Balance
- }
- return nil
-}
-
-var File_accounting_grpc_service_proto protoreflect.FileDescriptor
-
-var file_accounting_grpc_service_proto_rawDesc = []byte{
- 0x0a, 0x1d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x72, 0x70,
- 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
- 0x14, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75,
- 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x1a, 0x1b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e,
- 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x22, 0xa5, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x61, 0x6c, 0x61,
- 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52,
- 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d,
- 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56,
- 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a,
- 0x3a, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72,
- 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72,
- 0x49, 0x44, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0xae, 0x02, 0x0a, 0x0f,
- 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x3e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12,
- 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76,
- 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x3f, 0x0a, 0x04, 0x42,
- 0x6f, 0x64, 0x79, 0x12, 0x37, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x44, 0x65, 0x63, 0x69,
- 0x6d, 0x61, 0x6c, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x32, 0x6b, 0x0a, 0x11,
- 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
- 0x65, 0x12, 0x56, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
- 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61,
- 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63,
- 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6d, 0x5a, 0x4a, 0x67, 0x69, 0x74,
- 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72,
- 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74,
- 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x61, 0x63, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0xaa, 0x02, 0x1e, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69,
- 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x41, 0x63,
- 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_accounting_grpc_service_proto_rawDescOnce sync.Once
- file_accounting_grpc_service_proto_rawDescData = file_accounting_grpc_service_proto_rawDesc
-)
-
-func file_accounting_grpc_service_proto_rawDescGZIP() []byte {
- file_accounting_grpc_service_proto_rawDescOnce.Do(func() {
- file_accounting_grpc_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_accounting_grpc_service_proto_rawDescData)
- })
- return file_accounting_grpc_service_proto_rawDescData
-}
-
-var file_accounting_grpc_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_accounting_grpc_service_proto_goTypes = []interface{}{
- (*BalanceRequest)(nil), // 0: neo.fs.v2.accounting.BalanceRequest
- (*BalanceResponse)(nil), // 1: neo.fs.v2.accounting.BalanceResponse
- (*BalanceRequest_Body)(nil), // 2: neo.fs.v2.accounting.BalanceRequest.Body
- (*BalanceResponse_Body)(nil), // 3: neo.fs.v2.accounting.BalanceResponse.Body
- (*grpc.RequestMetaHeader)(nil), // 4: neo.fs.v2.session.RequestMetaHeader
- (*grpc.RequestVerificationHeader)(nil), // 5: neo.fs.v2.session.RequestVerificationHeader
- (*grpc.ResponseMetaHeader)(nil), // 6: neo.fs.v2.session.ResponseMetaHeader
- (*grpc.ResponseVerificationHeader)(nil), // 7: neo.fs.v2.session.ResponseVerificationHeader
- (*grpc1.OwnerID)(nil), // 8: neo.fs.v2.refs.OwnerID
- (*Decimal)(nil), // 9: neo.fs.v2.accounting.Decimal
-}
-var file_accounting_grpc_service_proto_depIdxs = []int32{
- 2, // 0: neo.fs.v2.accounting.BalanceRequest.body:type_name -> neo.fs.v2.accounting.BalanceRequest.Body
- 4, // 1: neo.fs.v2.accounting.BalanceRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 5, // 2: neo.fs.v2.accounting.BalanceRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 3, // 3: neo.fs.v2.accounting.BalanceResponse.body:type_name -> neo.fs.v2.accounting.BalanceResponse.Body
- 6, // 4: neo.fs.v2.accounting.BalanceResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 7, // 5: neo.fs.v2.accounting.BalanceResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 8, // 6: neo.fs.v2.accounting.BalanceRequest.Body.owner_id:type_name -> neo.fs.v2.refs.OwnerID
- 9, // 7: neo.fs.v2.accounting.BalanceResponse.Body.balance:type_name -> neo.fs.v2.accounting.Decimal
- 0, // 8: neo.fs.v2.accounting.AccountingService.Balance:input_type -> neo.fs.v2.accounting.BalanceRequest
- 1, // 9: neo.fs.v2.accounting.AccountingService.Balance:output_type -> neo.fs.v2.accounting.BalanceResponse
- 9, // [9:10] is the sub-list for method output_type
- 8, // [8:9] is the sub-list for method input_type
- 8, // [8:8] is the sub-list for extension type_name
- 8, // [8:8] is the sub-list for extension extendee
- 0, // [0:8] is the sub-list for field type_name
-}
-
-func init() { file_accounting_grpc_service_proto_init() }
-func file_accounting_grpc_service_proto_init() {
- if File_accounting_grpc_service_proto != nil {
- return
- }
- file_accounting_grpc_types_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_accounting_grpc_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BalanceRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_accounting_grpc_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BalanceResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_accounting_grpc_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BalanceRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_accounting_grpc_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BalanceResponse_Body); 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_accounting_grpc_service_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 4,
- NumExtensions: 0,
- NumServices: 1,
- },
- GoTypes: file_accounting_grpc_service_proto_goTypes,
- DependencyIndexes: file_accounting_grpc_service_proto_depIdxs,
- MessageInfos: file_accounting_grpc_service_proto_msgTypes,
- }.Build()
- File_accounting_grpc_service_proto = out.File
- file_accounting_grpc_service_proto_rawDesc = nil
- file_accounting_grpc_service_proto_goTypes = nil
- file_accounting_grpc_service_proto_depIdxs = nil
-}
diff --git a/accounting/grpc/service_frostfs.pb.go b/accounting/grpc/service_frostfs.pb.go
new file mode 100644
index 0000000..e44d7d4
--- /dev/null
+++ b/accounting/grpc/service_frostfs.pb.go
@@ -0,0 +1,724 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package accounting
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+type BalanceRequest_Body struct {
+ OwnerId *grpc.OwnerID `json:"ownerId"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*BalanceRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*BalanceRequest_Body)(nil)
+ _ json.Marshaler = (*BalanceRequest_Body)(nil)
+ _ json.Unmarshaler = (*BalanceRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *BalanceRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.OwnerId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *BalanceRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *BalanceRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ x.OwnerId.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *BalanceRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "BalanceRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // OwnerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OwnerId")
+ }
+ x.OwnerId = new(grpc.OwnerID)
+ if err := x.OwnerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *BalanceRequest_Body) GetOwnerId() *grpc.OwnerID {
+ if x != nil {
+ return x.OwnerId
+ }
+ return nil
+}
+func (x *BalanceRequest_Body) SetOwnerId(v *grpc.OwnerID) {
+ x.OwnerId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *BalanceRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *BalanceRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"ownerId\":"
+ out.RawString(prefix[1:])
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *BalanceRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *BalanceRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "ownerId":
+ {
+ var f *grpc.OwnerID
+ f = new(grpc.OwnerID)
+ f.UnmarshalEasyJSON(in)
+ x.OwnerId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type BalanceRequest struct {
+ Body *BalanceRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*BalanceRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*BalanceRequest)(nil)
+ _ json.Marshaler = (*BalanceRequest)(nil)
+ _ json.Unmarshaler = (*BalanceRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *BalanceRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *BalanceRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *BalanceRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *BalanceRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *BalanceRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *BalanceRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "BalanceRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(BalanceRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *BalanceRequest) GetBody() *BalanceRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *BalanceRequest) SetBody(v *BalanceRequest_Body) {
+ x.Body = v
+}
+func (x *BalanceRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *BalanceRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *BalanceRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *BalanceRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *BalanceRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *BalanceRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *BalanceRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *BalanceRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *BalanceRequest_Body
+ f = new(BalanceRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type BalanceResponse_Body struct {
+ Balance *Decimal `json:"balance"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*BalanceResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*BalanceResponse_Body)(nil)
+ _ json.Marshaler = (*BalanceResponse_Body)(nil)
+ _ json.Unmarshaler = (*BalanceResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *BalanceResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Balance)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *BalanceResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *BalanceResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Balance != nil && x.Balance.StableSize() != 0 {
+ x.Balance.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *BalanceResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "BalanceResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Balance
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Balance")
+ }
+ x.Balance = new(Decimal)
+ if err := x.Balance.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *BalanceResponse_Body) GetBalance() *Decimal {
+ if x != nil {
+ return x.Balance
+ }
+ return nil
+}
+func (x *BalanceResponse_Body) SetBalance(v *Decimal) {
+ x.Balance = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *BalanceResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *BalanceResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"balance\":"
+ out.RawString(prefix[1:])
+ x.Balance.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *BalanceResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *BalanceResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "balance":
+ {
+ var f *Decimal
+ f = new(Decimal)
+ f.UnmarshalEasyJSON(in)
+ x.Balance = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type BalanceResponse struct {
+ Body *BalanceResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*BalanceResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*BalanceResponse)(nil)
+ _ json.Marshaler = (*BalanceResponse)(nil)
+ _ json.Unmarshaler = (*BalanceResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *BalanceResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *BalanceResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *BalanceResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *BalanceResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *BalanceResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *BalanceResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "BalanceResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(BalanceResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *BalanceResponse) GetBody() *BalanceResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *BalanceResponse) SetBody(v *BalanceResponse_Body) {
+ x.Body = v
+}
+func (x *BalanceResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *BalanceResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *BalanceResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *BalanceResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *BalanceResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *BalanceResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *BalanceResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *BalanceResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *BalanceResponse_Body
+ f = new(BalanceResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/accounting/grpc/service_frostfs_fuzz.go b/accounting/grpc/service_frostfs_fuzz.go
new file mode 100644
index 0000000..69e7174
--- /dev/null
+++ b/accounting/grpc/service_frostfs_fuzz.go
@@ -0,0 +1,45 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package accounting
+
+func DoFuzzProtoBalanceRequest(data []byte) int {
+ msg := new(BalanceRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONBalanceRequest(data []byte) int {
+ msg := new(BalanceRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoBalanceResponse(data []byte) int {
+ msg := new(BalanceResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONBalanceResponse(data []byte) int {
+ msg := new(BalanceResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/accounting/grpc/service_frostfs_test.go b/accounting/grpc/service_frostfs_test.go
new file mode 100644
index 0000000..b97a13e
--- /dev/null
+++ b/accounting/grpc/service_frostfs_test.go
@@ -0,0 +1,31 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package accounting
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoBalanceRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoBalanceRequest(data)
+ })
+}
+func FuzzJSONBalanceRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONBalanceRequest(data)
+ })
+}
+func FuzzProtoBalanceResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoBalanceResponse(data)
+ })
+}
+func FuzzJSONBalanceResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONBalanceResponse(data)
+ })
+}
diff --git a/accounting/grpc/types.go b/accounting/grpc/types.go
deleted file mode 100644
index 1c1bac9..0000000
--- a/accounting/grpc/types.go
+++ /dev/null
@@ -1,11 +0,0 @@
-package accounting
-
-// SetValue sets value of the decimal number.
-func (m *Decimal) SetValue(v int64) {
- m.Value = v
-}
-
-// SetPrecision sets precision of the decimal number.
-func (m *Decimal) SetPrecision(v uint32) {
- m.Precision = v
-}
diff --git a/accounting/grpc/types.pb.go b/accounting/grpc/types.pb.go
deleted file mode 100644
index 8be14bc..0000000
--- a/accounting/grpc/types.pb.go
+++ /dev/null
@@ -1,169 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: accounting/grpc/types.proto
-
-package accounting
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Standard floating point data type can't be used in NeoFS due to inexactness
-// of the result when doing lots of small number operations. To solve the lost
-// precision issue, special `Decimal` format is used for monetary computations.
-//
-// Please see [The General Decimal Arithmetic
-// Specification](http://speleotrove.com/decimal/) for detailed problem
-// description.
-type Decimal struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Number in the smallest Token fractions.
- Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
- // Precision value indicating how many smallest fractions can be in one
- // integer.
- Precision uint32 `protobuf:"varint,2,opt,name=precision,proto3" json:"precision,omitempty"`
-}
-
-func (x *Decimal) Reset() {
- *x = Decimal{}
- if protoimpl.UnsafeEnabled {
- mi := &file_accounting_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Decimal) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Decimal) ProtoMessage() {}
-
-func (x *Decimal) ProtoReflect() protoreflect.Message {
- mi := &file_accounting_grpc_types_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 Decimal.ProtoReflect.Descriptor instead.
-func (*Decimal) Descriptor() ([]byte, []int) {
- return file_accounting_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Decimal) GetValue() int64 {
- if x != nil {
- return x.Value
- }
- return 0
-}
-
-func (x *Decimal) GetPrecision() uint32 {
- if x != nil {
- return x.Precision
- }
- return 0
-}
-
-var File_accounting_grpc_types_proto protoreflect.FileDescriptor
-
-var file_accounting_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x1b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x67, 0x72, 0x70,
- 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
- 0x69, 0x6e, 0x67, 0x22, 0x3d, 0x0a, 0x07, 0x44, 0x65, 0x63, 0x69, 0x6d, 0x61, 0x6c, 0x12, 0x14,
- 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f,
- 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69,
- 0x6f, 0x6e, 0x42, 0x6d, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
- 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64,
- 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d,
- 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67,
- 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67,
- 0xaa, 0x02, 0x1e, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61,
- 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e,
- 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_accounting_grpc_types_proto_rawDescOnce sync.Once
- file_accounting_grpc_types_proto_rawDescData = file_accounting_grpc_types_proto_rawDesc
-)
-
-func file_accounting_grpc_types_proto_rawDescGZIP() []byte {
- file_accounting_grpc_types_proto_rawDescOnce.Do(func() {
- file_accounting_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_accounting_grpc_types_proto_rawDescData)
- })
- return file_accounting_grpc_types_proto_rawDescData
-}
-
-var file_accounting_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_accounting_grpc_types_proto_goTypes = []interface{}{
- (*Decimal)(nil), // 0: neo.fs.v2.accounting.Decimal
-}
-var file_accounting_grpc_types_proto_depIdxs = []int32{
- 0, // [0:0] is the sub-list for method output_type
- 0, // [0:0] is the sub-list for method input_type
- 0, // [0:0] is the sub-list for extension type_name
- 0, // [0:0] is the sub-list for extension extendee
- 0, // [0:0] is the sub-list for field type_name
-}
-
-func init() { file_accounting_grpc_types_proto_init() }
-func file_accounting_grpc_types_proto_init() {
- if File_accounting_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_accounting_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Decimal); 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_accounting_grpc_types_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 1,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_accounting_grpc_types_proto_goTypes,
- DependencyIndexes: file_accounting_grpc_types_proto_depIdxs,
- MessageInfos: file_accounting_grpc_types_proto_msgTypes,
- }.Build()
- File_accounting_grpc_types_proto = out.File
- file_accounting_grpc_types_proto_rawDesc = nil
- file_accounting_grpc_types_proto_goTypes = nil
- file_accounting_grpc_types_proto_depIdxs = nil
-}
diff --git a/accounting/grpc/types_frostfs.pb.go b/accounting/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..182705e
--- /dev/null
+++ b/accounting/grpc/types_frostfs.pb.go
@@ -0,0 +1,174 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package accounting
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+type Decimal struct {
+ Value int64 `json:"value"`
+ Precision uint32 `json:"precision"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Decimal)(nil)
+ _ encoding.ProtoUnmarshaler = (*Decimal)(nil)
+ _ json.Marshaler = (*Decimal)(nil)
+ _ json.Unmarshaler = (*Decimal)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Decimal) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.Int64Size(1, x.Value)
+ size += proto.UInt32Size(2, x.Precision)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Decimal) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Decimal) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Value != 0 {
+ mm.AppendInt64(1, x.Value)
+ }
+ if x.Precision != 0 {
+ mm.AppendUint32(2, x.Precision)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Decimal) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Decimal")
+ }
+ switch fc.FieldNum {
+ case 1: // Value
+ data, ok := fc.Int64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ case 2: // Precision
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Precision")
+ }
+ x.Precision = data
+ }
+ }
+ return nil
+}
+func (x *Decimal) GetValue() int64 {
+ if x != nil {
+ return x.Value
+ }
+ return 0
+}
+func (x *Decimal) SetValue(v int64) {
+ x.Value = v
+}
+func (x *Decimal) GetPrecision() uint32 {
+ if x != nil {
+ return x.Precision
+ }
+ return 0
+}
+func (x *Decimal) SetPrecision(v uint32) {
+ x.Precision = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Decimal) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Decimal) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix[1:])
+ out.Int64(x.Value)
+ }
+ {
+ const prefix string = ",\"precision\":"
+ out.RawString(prefix)
+ out.Uint32(x.Precision)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Decimal) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Decimal) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "value":
+ {
+ var f int64
+ f = in.Int64()
+ x.Value = f
+ }
+ case "precision":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Precision = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/accounting/grpc/types_frostfs_fuzz.go b/accounting/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..5eb5e97
--- /dev/null
+++ b/accounting/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,26 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package accounting
+
+func DoFuzzProtoDecimal(data []byte) int {
+ msg := new(Decimal)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONDecimal(data []byte) int {
+ msg := new(Decimal)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/accounting/grpc/types_frostfs_test.go b/accounting/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..404b75e
--- /dev/null
+++ b/accounting/grpc/types_frostfs_test.go
@@ -0,0 +1,21 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package accounting
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoDecimal(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoDecimal(data)
+ })
+}
+func FuzzJSONDecimal(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONDecimal(data)
+ })
+}
diff --git a/acl/convert.go b/acl/convert.go
index 0cf455c..c5768ad 100644
--- a/acl/convert.go
+++ b/acl/convert.go
@@ -478,7 +478,7 @@ func (bt *BearerTokenBody) ToGRPCMessage() grpc.Message {
m.SetLifetime(bt.lifetime.ToGRPCMessage().(*acl.BearerToken_Body_TokenLifetime))
m.SetEaclTable(bt.eacl.ToGRPCMessage().(*acl.EACLTable))
m.SetAllowImpersonate(bt.impersonate)
- m.SetAPEOverride(bt.apeOverride.ToGRPCMessage().(*acl.BearerToken_Body_APEOverride))
+ m.SetApeOverride(bt.apeOverride.ToGRPCMessage().(*acl.BearerToken_Body_APEOverride))
}
return m
diff --git a/acl/grpc/types.go b/acl/grpc/types.go
deleted file mode 100644
index fbcbb91..0000000
--- a/acl/grpc/types.go
+++ /dev/null
@@ -1,193 +0,0 @@
-package acl
-
-import (
- ape "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
-)
-
-// SetVersion sets version of EACL rules in table.
-func (m *EACLTable) SetVersion(v *refs.Version) {
- m.Version = v
-}
-
-// SetContainerId sets container identifier of the eACL table.
-func (m *EACLTable) SetContainerId(v *refs.ContainerID) {
- m.ContainerId = v
-}
-
-// SetRecords sets record list of the eACL table.
-func (m *EACLTable) SetRecords(v []*EACLRecord) {
- m.Records = v
-}
-
-// SetOperation sets operation of the eACL record.
-func (m *EACLRecord) SetOperation(v Operation) {
- m.Operation = v
-}
-
-// SetAction sets action of the eACL record.
-func (m *EACLRecord) SetAction(v Action) {
- m.Action = v
-}
-
-// SetFilters sets filter list of the eACL record.
-func (m *EACLRecord) SetFilters(v []*EACLRecord_Filter) {
- m.Filters = v
-}
-
-// SetTargets sets target list of the eACL record.
-func (m *EACLRecord) SetTargets(v []*EACLRecord_Target) {
- m.Targets = v
-}
-
-// SetHeaderType sets header type of the eACL filter.
-func (m *EACLRecord_Filter) SetHeaderType(v HeaderType) {
- m.HeaderType = v
-}
-
-// SetMatchType sets match type of the eACL filter.
-func (m *EACLRecord_Filter) SetMatchType(v MatchType) {
- m.MatchType = v
-}
-
-// SetKey sets key of the eACL filter.
-func (m *EACLRecord_Filter) SetKey(v string) {
- m.Key = v
-}
-
-// SetValue sets value of the eACL filter.
-func (m *EACLRecord_Filter) SetValue(v string) {
- m.Value = v
-}
-
-// SetRole sets target group of the eACL target.
-func (m *EACLRecord_Target) SetRole(v Role) {
- m.Role = v
-}
-
-// SetKeys of the eACL target.
-func (m *EACLRecord_Target) SetKeys(v [][]byte) {
- m.Keys = v
-}
-
-// SetEaclTable sets eACL table of the bearer token.
-func (m *BearerToken_Body) SetEaclTable(v *EACLTable) {
- m.EaclTable = v
-}
-
-func (m *BearerToken_Body) SetAPEOverride(v *BearerToken_Body_APEOverride) {
- m.ApeOverride = v
-}
-
-func (m *BearerToken_Body_APEOverride) SetChains(v []*ape.Chain) {
- m.Chains = v
-}
-
-func (m *BearerToken_Body_APEOverride) SetTarget(v *ape.ChainTarget) {
- m.Target = v
-}
-
-// SetOwnerId sets identifier of the bearer token owner.
-func (m *BearerToken_Body) SetOwnerId(v *refs.OwnerID) {
- m.OwnerId = v
-}
-
-// SetLifetime sets lifetime of the bearer token.
-func (m *BearerToken_Body) SetLifetime(v *BearerToken_Body_TokenLifetime) {
- m.Lifetime = v
-}
-
-// SetAllowImpersonate allows impersonate.
-func (m *BearerToken_Body) SetAllowImpersonate(v bool) {
- m.AllowImpersonate = v
-}
-
-// SetBody sets bearer token body.
-func (m *BearerToken) SetBody(v *BearerToken_Body) {
- m.Body = v
-}
-
-// SetSignature sets bearer token signature.
-func (m *BearerToken) SetSignature(v *refs.Signature) {
- m.Signature = v
-}
-
-// SetExp sets epoch number of the token expiration.
-func (m *BearerToken_Body_TokenLifetime) SetExp(v uint64) {
- m.Exp = v
-}
-
-// SetNbf sets starting epoch number of the token.
-func (m *BearerToken_Body_TokenLifetime) SetNbf(v uint64) {
- m.Nbf = v
-}
-
-// SetIat sets the number of the epoch in which the token was issued.
-func (m *BearerToken_Body_TokenLifetime) SetIat(v uint64) {
- m.Iat = v
-}
-
-// FromString parses Action from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *Action) FromString(s string) bool {
- i, ok := Action_value[s]
- if ok {
- *x = Action(i)
- }
-
- return ok
-}
-
-// FromString parses Role from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *Role) FromString(s string) bool {
- i, ok := Role_value[s]
- if ok {
- *x = Role(i)
- }
-
- return ok
-}
-
-// FromString parses Operation from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *Operation) FromString(s string) bool {
- i, ok := Operation_value[s]
- if ok {
- *x = Operation(i)
- }
-
- return ok
-}
-
-// FromString parses MatchType from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *MatchType) FromString(s string) bool {
- i, ok := MatchType_value[s]
- if ok {
- *x = MatchType(i)
- }
-
- return ok
-}
-
-// FromString parses HeaderType from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *HeaderType) FromString(s string) bool {
- i, ok := HeaderType_value[s]
- if ok {
- *x = HeaderType(i)
- }
-
- return ok
-}
diff --git a/acl/grpc/types.pb.go b/acl/grpc/types.pb.go
deleted file mode 100644
index 39ab1e1..0000000
--- a/acl/grpc/types.pb.go
+++ /dev/null
@@ -1,1231 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: acl/grpc/types.proto
-
-package acl
-
-import (
- grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Target role of the access control rule in access control list.
-type Role int32
-
-const (
- // Unspecified role, default value
- Role_ROLE_UNSPECIFIED Role = 0
- // User target rule is applied if sender is the owner of the container
- Role_USER Role = 1
- // System target rule is applied if sender is a storage node within the
- // container or an inner ring node
- Role_SYSTEM Role = 2
- // Others target rule is applied if sender is neither a user nor a system
- // target
- Role_OTHERS Role = 3
-)
-
-// Enum value maps for Role.
-var (
- Role_name = map[int32]string{
- 0: "ROLE_UNSPECIFIED",
- 1: "USER",
- 2: "SYSTEM",
- 3: "OTHERS",
- }
- Role_value = map[string]int32{
- "ROLE_UNSPECIFIED": 0,
- "USER": 1,
- "SYSTEM": 2,
- "OTHERS": 3,
- }
-)
-
-func (x Role) Enum() *Role {
- p := new(Role)
- *p = x
- return p
-}
-
-func (x Role) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Role) Descriptor() protoreflect.EnumDescriptor {
- return file_acl_grpc_types_proto_enumTypes[0].Descriptor()
-}
-
-func (Role) Type() protoreflect.EnumType {
- return &file_acl_grpc_types_proto_enumTypes[0]
-}
-
-func (x Role) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Role.Descriptor instead.
-func (Role) EnumDescriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-// MatchType is an enumeration of match types.
-type MatchType int32
-
-const (
- // Unspecified match type, default value.
- MatchType_MATCH_TYPE_UNSPECIFIED MatchType = 0
- // Return true if strings are equal
- MatchType_STRING_EQUAL MatchType = 1
- // Return true if strings are different
- MatchType_STRING_NOT_EQUAL MatchType = 2
-)
-
-// Enum value maps for MatchType.
-var (
- MatchType_name = map[int32]string{
- 0: "MATCH_TYPE_UNSPECIFIED",
- 1: "STRING_EQUAL",
- 2: "STRING_NOT_EQUAL",
- }
- MatchType_value = map[string]int32{
- "MATCH_TYPE_UNSPECIFIED": 0,
- "STRING_EQUAL": 1,
- "STRING_NOT_EQUAL": 2,
- }
-)
-
-func (x MatchType) Enum() *MatchType {
- p := new(MatchType)
- *p = x
- return p
-}
-
-func (x MatchType) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (MatchType) Descriptor() protoreflect.EnumDescriptor {
- return file_acl_grpc_types_proto_enumTypes[1].Descriptor()
-}
-
-func (MatchType) Type() protoreflect.EnumType {
- return &file_acl_grpc_types_proto_enumTypes[1]
-}
-
-func (x MatchType) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use MatchType.Descriptor instead.
-func (MatchType) EnumDescriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-// Request's operation type to match if the rule is applicable to a particular
-// request.
-type Operation int32
-
-const (
- // Unspecified operation, default value
- Operation_OPERATION_UNSPECIFIED Operation = 0
- // Get
- Operation_GET Operation = 1
- // Head
- Operation_HEAD Operation = 2
- // Put
- Operation_PUT Operation = 3
- // Delete
- Operation_DELETE Operation = 4
- // Search
- Operation_SEARCH Operation = 5
- // GetRange
- Operation_GETRANGE Operation = 6
- // GetRangeHash
- Operation_GETRANGEHASH Operation = 7
-)
-
-// Enum value maps for Operation.
-var (
- Operation_name = map[int32]string{
- 0: "OPERATION_UNSPECIFIED",
- 1: "GET",
- 2: "HEAD",
- 3: "PUT",
- 4: "DELETE",
- 5: "SEARCH",
- 6: "GETRANGE",
- 7: "GETRANGEHASH",
- }
- Operation_value = map[string]int32{
- "OPERATION_UNSPECIFIED": 0,
- "GET": 1,
- "HEAD": 2,
- "PUT": 3,
- "DELETE": 4,
- "SEARCH": 5,
- "GETRANGE": 6,
- "GETRANGEHASH": 7,
- }
-)
-
-func (x Operation) Enum() *Operation {
- p := new(Operation)
- *p = x
- return p
-}
-
-func (x Operation) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Operation) Descriptor() protoreflect.EnumDescriptor {
- return file_acl_grpc_types_proto_enumTypes[2].Descriptor()
-}
-
-func (Operation) Type() protoreflect.EnumType {
- return &file_acl_grpc_types_proto_enumTypes[2]
-}
-
-func (x Operation) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Operation.Descriptor instead.
-func (Operation) EnumDescriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{2}
-}
-
-// Rule execution result action. Either allows or denies access if the rule's
-// filters match.
-type Action int32
-
-const (
- // Unspecified action, default value
- Action_ACTION_UNSPECIFIED Action = 0
- // Allow action
- Action_ALLOW Action = 1
- // Deny action
- Action_DENY Action = 2
-)
-
-// Enum value maps for Action.
-var (
- Action_name = map[int32]string{
- 0: "ACTION_UNSPECIFIED",
- 1: "ALLOW",
- 2: "DENY",
- }
- Action_value = map[string]int32{
- "ACTION_UNSPECIFIED": 0,
- "ALLOW": 1,
- "DENY": 2,
- }
-)
-
-func (x Action) Enum() *Action {
- p := new(Action)
- *p = x
- return p
-}
-
-func (x Action) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Action) Descriptor() protoreflect.EnumDescriptor {
- return file_acl_grpc_types_proto_enumTypes[3].Descriptor()
-}
-
-func (Action) Type() protoreflect.EnumType {
- return &file_acl_grpc_types_proto_enumTypes[3]
-}
-
-func (x Action) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Action.Descriptor instead.
-func (Action) EnumDescriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{3}
-}
-
-// Enumeration of possible sources of Headers to apply filters.
-type HeaderType int32
-
-const (
- // Unspecified header, default value.
- HeaderType_HEADER_UNSPECIFIED HeaderType = 0
- // Filter request headers
- HeaderType_REQUEST HeaderType = 1
- // Filter object headers
- HeaderType_OBJECT HeaderType = 2
- // Filter service headers. These are not processed by NeoFS nodes and
- // exist for service use only.
- HeaderType_SERVICE HeaderType = 3
-)
-
-// Enum value maps for HeaderType.
-var (
- HeaderType_name = map[int32]string{
- 0: "HEADER_UNSPECIFIED",
- 1: "REQUEST",
- 2: "OBJECT",
- 3: "SERVICE",
- }
- HeaderType_value = map[string]int32{
- "HEADER_UNSPECIFIED": 0,
- "REQUEST": 1,
- "OBJECT": 2,
- "SERVICE": 3,
- }
-)
-
-func (x HeaderType) Enum() *HeaderType {
- p := new(HeaderType)
- *p = x
- return p
-}
-
-func (x HeaderType) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (HeaderType) Descriptor() protoreflect.EnumDescriptor {
- return file_acl_grpc_types_proto_enumTypes[4].Descriptor()
-}
-
-func (HeaderType) Type() protoreflect.EnumType {
- return &file_acl_grpc_types_proto_enumTypes[4]
-}
-
-func (x HeaderType) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use HeaderType.Descriptor instead.
-func (HeaderType) EnumDescriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{4}
-}
-
-// Describes a single eACL rule.
-type EACLRecord struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // NeoFS request Verb to match
- Operation Operation `protobuf:"varint,1,opt,name=operation,proto3,enum=neo.fs.v2.acl.Operation" json:"operation,omitempty"`
- // Rule execution result. Either allows or denies access if filters match.
- Action Action `protobuf:"varint,2,opt,name=action,proto3,enum=neo.fs.v2.acl.Action" json:"action,omitempty"`
- // List of filters to match and see if rule is applicable
- Filters []*EACLRecord_Filter `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"`
- // List of target subjects to apply ACL rule to
- Targets []*EACLRecord_Target `protobuf:"bytes,4,rep,name=targets,proto3" json:"targets,omitempty"`
-}
-
-func (x *EACLRecord) Reset() {
- *x = EACLRecord{}
- if protoimpl.UnsafeEnabled {
- mi := &file_acl_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *EACLRecord) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*EACLRecord) ProtoMessage() {}
-
-func (x *EACLRecord) ProtoReflect() protoreflect.Message {
- mi := &file_acl_grpc_types_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 EACLRecord.ProtoReflect.Descriptor instead.
-func (*EACLRecord) Descriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *EACLRecord) GetOperation() Operation {
- if x != nil {
- return x.Operation
- }
- return Operation_OPERATION_UNSPECIFIED
-}
-
-func (x *EACLRecord) GetAction() Action {
- if x != nil {
- return x.Action
- }
- return Action_ACTION_UNSPECIFIED
-}
-
-func (x *EACLRecord) GetFilters() []*EACLRecord_Filter {
- if x != nil {
- return x.Filters
- }
- return nil
-}
-
-func (x *EACLRecord) GetTargets() []*EACLRecord_Target {
- if x != nil {
- return x.Targets
- }
- return nil
-}
-
-// Extended ACL rules table. A list of ACL rules defined additionally to Basic
-// ACL. Extended ACL rules can be attached to a container and can be updated
-// or may be defined in `BearerToken` structure. Please see the corresponding
-// NeoFS Technical Specification section for detailed description.
-type EACLTable struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // eACL format version. Effectively, the version of API library used to create
- // eACL Table.
- Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
- // Identifier of the container that should use given access control rules
- ContainerId *grpc.ContainerID `protobuf:"bytes,2,opt,name=container_id,json=containerID,proto3" json:"container_id,omitempty"`
- // List of Extended ACL rules
- Records []*EACLRecord `protobuf:"bytes,3,rep,name=records,proto3" json:"records,omitempty"`
-}
-
-func (x *EACLTable) Reset() {
- *x = EACLTable{}
- if protoimpl.UnsafeEnabled {
- mi := &file_acl_grpc_types_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *EACLTable) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*EACLTable) ProtoMessage() {}
-
-func (x *EACLTable) ProtoReflect() protoreflect.Message {
- mi := &file_acl_grpc_types_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 EACLTable.ProtoReflect.Descriptor instead.
-func (*EACLTable) Descriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *EACLTable) GetVersion() *grpc.Version {
- if x != nil {
- return x.Version
- }
- return nil
-}
-
-func (x *EACLTable) GetContainerId() *grpc.ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-
-func (x *EACLTable) GetRecords() []*EACLRecord {
- if x != nil {
- return x.Records
- }
- return nil
-}
-
-// BearerToken allows to attach signed Extended ACL rules to the request in
-// `RequestMetaHeader`. If container's Basic ACL rules allow, the attached rule
-// set will be checked instead of one attached to the container itself. Just
-// like [JWT](https://jwt.io), it has a limited lifetime and scope, hence can be
-// used in the similar use cases, like providing authorisation to externally
-// authenticated party.
-//
-// BearerToken can be issued only by the container's owner and must be signed
-// using the key associated with the container's `OwnerID`.
-type BearerToken struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Bearer Token body
- Body *BearerToken_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Signature of BearerToken body
- Signature *grpc.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
-}
-
-func (x *BearerToken) Reset() {
- *x = BearerToken{}
- if protoimpl.UnsafeEnabled {
- mi := &file_acl_grpc_types_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *BearerToken) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BearerToken) ProtoMessage() {}
-
-func (x *BearerToken) ProtoReflect() protoreflect.Message {
- mi := &file_acl_grpc_types_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 BearerToken.ProtoReflect.Descriptor instead.
-func (*BearerToken) Descriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *BearerToken) GetBody() *BearerToken_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *BearerToken) GetSignature() *grpc.Signature {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-// Filter to check particular properties of the request or the object.
-//
-// By default `key` field refers to the corresponding object's `Attribute`.
-// Some Object's header fields can also be accessed by adding `$Object:`
-// prefix to the name. Here is the list of fields available via this prefix:
-//
-// - $Object:version \
-// version
-// - $Object:objectID \
-// object_id
-// - $Object:containerID \
-// container_id
-// - $Object:ownerID \
-// owner_id
-// - $Object:creationEpoch \
-// creation_epoch
-// - $Object:payloadLength \
-// payload_length
-// - $Object:payloadHash \
-// payload_hash
-// - $Object:objectType \
-// object_type
-// - $Object:homomorphicHash \
-// homomorphic_hash
-//
-// Please note, that if request or response does not have object's headers of
-// full object (Range, RangeHash, Search, Delete), it will not be possible to
-// filter by object header fields or user attributes. From the well-known list
-// only `$Object:objectID` and `$Object:containerID` will be available, as
-// it's possible to take that information from the requested address.
-type EACLRecord_Filter struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Define if Object or Request header will be used
- HeaderType HeaderType `protobuf:"varint,1,opt,name=header_type,json=headerType,proto3,enum=neo.fs.v2.acl.HeaderType" json:"header_type,omitempty"`
- // Match operation type
- MatchType MatchType `protobuf:"varint,2,opt,name=match_type,json=matchType,proto3,enum=neo.fs.v2.acl.MatchType" json:"match_type,omitempty"`
- // Name of the Header to use
- Key string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
- // Expected Header Value or pattern to match
- Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *EACLRecord_Filter) Reset() {
- *x = EACLRecord_Filter{}
- if protoimpl.UnsafeEnabled {
- mi := &file_acl_grpc_types_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *EACLRecord_Filter) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*EACLRecord_Filter) ProtoMessage() {}
-
-func (x *EACLRecord_Filter) ProtoReflect() protoreflect.Message {
- mi := &file_acl_grpc_types_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 EACLRecord_Filter.ProtoReflect.Descriptor instead.
-func (*EACLRecord_Filter) Descriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *EACLRecord_Filter) GetHeaderType() HeaderType {
- if x != nil {
- return x.HeaderType
- }
- return HeaderType_HEADER_UNSPECIFIED
-}
-
-func (x *EACLRecord_Filter) GetMatchType() MatchType {
- if x != nil {
- return x.MatchType
- }
- return MatchType_MATCH_TYPE_UNSPECIFIED
-}
-
-func (x *EACLRecord_Filter) GetKey() string {
- if x != nil {
- return x.Key
- }
- return ""
-}
-
-func (x *EACLRecord_Filter) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-// Target to apply ACL rule. Can be a subject's role class or a list of public
-// keys to match.
-type EACLRecord_Target struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Target subject's role class
- Role Role `protobuf:"varint,1,opt,name=role,proto3,enum=neo.fs.v2.acl.Role" json:"role,omitempty"`
- // List of public keys to identify target subject
- Keys [][]byte `protobuf:"bytes,2,rep,name=keys,proto3" json:"keys,omitempty"`
-}
-
-func (x *EACLRecord_Target) Reset() {
- *x = EACLRecord_Target{}
- if protoimpl.UnsafeEnabled {
- mi := &file_acl_grpc_types_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *EACLRecord_Target) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*EACLRecord_Target) ProtoMessage() {}
-
-func (x *EACLRecord_Target) ProtoReflect() protoreflect.Message {
- mi := &file_acl_grpc_types_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 EACLRecord_Target.ProtoReflect.Descriptor instead.
-func (*EACLRecord_Target) Descriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{0, 1}
-}
-
-func (x *EACLRecord_Target) GetRole() Role {
- if x != nil {
- return x.Role
- }
- return Role_ROLE_UNSPECIFIED
-}
-
-func (x *EACLRecord_Target) GetKeys() [][]byte {
- if x != nil {
- return x.Keys
- }
- return nil
-}
-
-// Bearer Token body structure contains Extended ACL table issued by the
-// container owner with additional information preventing token abuse.
-type BearerToken_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Table of Extended ACL rules to use instead of the ones attached to the
- // container. If it contains `container_id` field, bearer token is only
- // valid for this specific container. Otherwise, any container of the same
- // owner is allowed.
- //
- // Deprecated: eACL tables are no longer relevant - `APEOverrides` should be
- // used instead.
- EaclTable *EACLTable `protobuf:"bytes,1,opt,name=eacl_table,json=eaclTable,proto3" json:"eacl_table,omitempty"`
- // `OwnerID` defines to whom the token was issued. It must match the request
- // originator's `OwnerID`. If empty, any token bearer will be accepted.
- OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
- // Token expiration and valid time period parameters
- Lifetime *BearerToken_Body_TokenLifetime `protobuf:"bytes,3,opt,name=lifetime,proto3" json:"lifetime,omitempty"`
- // AllowImpersonate flag to consider token signer as request owner.
- // If this field is true extended ACL table in token body isn't processed.
- AllowImpersonate bool `protobuf:"varint,4,opt,name=allow_impersonate,json=allowImpersonate,proto3" json:"allow_impersonate,omitempty"`
- // APE override for the target.
- ApeOverride *BearerToken_Body_APEOverride `protobuf:"bytes,5,opt,name=ape_override,json=apeOverride,proto3" json:"ape_override,omitempty"`
-}
-
-func (x *BearerToken_Body) Reset() {
- *x = BearerToken_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_acl_grpc_types_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *BearerToken_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BearerToken_Body) ProtoMessage() {}
-
-func (x *BearerToken_Body) ProtoReflect() protoreflect.Message {
- mi := &file_acl_grpc_types_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 BearerToken_Body.ProtoReflect.Descriptor instead.
-func (*BearerToken_Body) Descriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{2, 0}
-}
-
-func (x *BearerToken_Body) GetEaclTable() *EACLTable {
- if x != nil {
- return x.EaclTable
- }
- return nil
-}
-
-func (x *BearerToken_Body) GetOwnerId() *grpc.OwnerID {
- if x != nil {
- return x.OwnerId
- }
- return nil
-}
-
-func (x *BearerToken_Body) GetLifetime() *BearerToken_Body_TokenLifetime {
- if x != nil {
- return x.Lifetime
- }
- return nil
-}
-
-func (x *BearerToken_Body) GetAllowImpersonate() bool {
- if x != nil {
- return x.AllowImpersonate
- }
- return false
-}
-
-func (x *BearerToken_Body) GetApeOverride() *BearerToken_Body_APEOverride {
- if x != nil {
- return x.ApeOverride
- }
- return nil
-}
-
-// Lifetime parameters of the token. Field names taken from
-// [rfc7519](https://tools.ietf.org/html/rfc7519).
-type BearerToken_Body_TokenLifetime struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Expiration Epoch
- Exp uint64 `protobuf:"varint,1,opt,name=exp,proto3" json:"exp,omitempty"`
- // Not valid before Epoch
- Nbf uint64 `protobuf:"varint,2,opt,name=nbf,proto3" json:"nbf,omitempty"`
- // Issued at Epoch
- Iat uint64 `protobuf:"varint,3,opt,name=iat,proto3" json:"iat,omitempty"`
-}
-
-func (x *BearerToken_Body_TokenLifetime) Reset() {
- *x = BearerToken_Body_TokenLifetime{}
- if protoimpl.UnsafeEnabled {
- mi := &file_acl_grpc_types_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *BearerToken_Body_TokenLifetime) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BearerToken_Body_TokenLifetime) ProtoMessage() {}
-
-func (x *BearerToken_Body_TokenLifetime) ProtoReflect() protoreflect.Message {
- mi := &file_acl_grpc_types_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 BearerToken_Body_TokenLifetime.ProtoReflect.Descriptor instead.
-func (*BearerToken_Body_TokenLifetime) Descriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{2, 0, 0}
-}
-
-func (x *BearerToken_Body_TokenLifetime) GetExp() uint64 {
- if x != nil {
- return x.Exp
- }
- return 0
-}
-
-func (x *BearerToken_Body_TokenLifetime) GetNbf() uint64 {
- if x != nil {
- return x.Nbf
- }
- return 0
-}
-
-func (x *BearerToken_Body_TokenLifetime) GetIat() uint64 {
- if x != nil {
- return x.Iat
- }
- return 0
-}
-
-// APEOverride is the list of APE chains defined for a target.
-// These chains are meant to serve as overrides to the already defined (or
-// even undefined) APE chains for the target (see contract `Policy`).
-//
-// The server-side processing of the bearer token with set APE overrides
-// must verify if a client is permitted to override chains for the target,
-// preventing unauthorized access through the APE mechanism.
-type BearerToken_Body_APEOverride struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Target for which chains are applied.
- Target *grpc1.ChainTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
- // The list of APE chains.
- Chains []*grpc1.Chain `protobuf:"bytes,2,rep,name=chains,proto3" json:"chains,omitempty"`
-}
-
-func (x *BearerToken_Body_APEOverride) Reset() {
- *x = BearerToken_Body_APEOverride{}
- if protoimpl.UnsafeEnabled {
- mi := &file_acl_grpc_types_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *BearerToken_Body_APEOverride) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*BearerToken_Body_APEOverride) ProtoMessage() {}
-
-func (x *BearerToken_Body_APEOverride) ProtoReflect() protoreflect.Message {
- mi := &file_acl_grpc_types_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 BearerToken_Body_APEOverride.ProtoReflect.Descriptor instead.
-func (*BearerToken_Body_APEOverride) Descriptor() ([]byte, []int) {
- return file_acl_grpc_types_proto_rawDescGZIP(), []int{2, 0, 1}
-}
-
-func (x *BearerToken_Body_APEOverride) GetTarget() *grpc1.ChainTarget {
- if x != nil {
- return x.Target
- }
- return nil
-}
-
-func (x *BearerToken_Body_APEOverride) GetChains() []*grpc1.Chain {
- if x != nil {
- return x.Chains
- }
- return nil
-}
-
-var File_acl_grpc_types_proto protoreflect.FileDescriptor
-
-var file_acl_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x14, 0x61, 0x63, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63,
- 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x61, 0x70,
- 0x65, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x22, 0xda, 0x03, 0x0a, 0x0a, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x63, 0x6f, 0x72,
- 0x64, 0x12, 0x36, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09,
- 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74,
- 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65,
- 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c,
- 0x74, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18,
- 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
- 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73,
- 0x1a, 0xa5, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x68,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c,
- 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x68, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68,
- 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x4d, 0x61, 0x74, 0x63,
- 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65,
- 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
- 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x45, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67,
- 0x65, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x13, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c,
- 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b,
- 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22,
- 0xb3, 0x01, 0x0a, 0x09, 0x45, 0x41, 0x43, 0x4c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x31, 0x0a,
- 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
- 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44,
- 0x12, 0x33, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63,
- 0x6c, 0x2e, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65,
- 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0xf3, 0x04, 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72,
- 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x61, 0x63, 0x6c, 0x2e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2e,
- 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69,
- 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53,
- 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
- 0x75, 0x72, 0x65, 0x1a, 0xf5, 0x03, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x37, 0x0a, 0x0a,
- 0x65, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c,
- 0x2e, 0x45, 0x41, 0x43, 0x4c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x09, 0x65, 0x61, 0x63, 0x6c,
- 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69,
- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44,
- 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x49, 0x0a, 0x08, 0x6c, 0x69, 0x66,
- 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x42, 0x65, 0x61, 0x72,
- 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x54, 0x6f, 0x6b,
- 0x65, 0x6e, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x66, 0x65,
- 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6d,
- 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74,
- 0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x61, 0x70, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
- 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f,
- 0x6b, 0x65, 0x6e, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x41, 0x50, 0x45, 0x4f, 0x76, 0x65, 0x72,
- 0x72, 0x69, 0x64, 0x65, 0x52, 0x0b, 0x61, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
- 0x65, 0x1a, 0x45, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69,
- 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
- 0x03, 0x65, 0x78, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x62, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x03, 0x6e, 0x62, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x61, 0x74, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x04, 0x52, 0x03, 0x69, 0x61, 0x74, 0x1a, 0x71, 0x0a, 0x0b, 0x41, 0x50, 0x45, 0x4f,
- 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
- 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x61,
- 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x06,
- 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66,
- 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x2e, 0x43, 0x68,
- 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x2a, 0x3e, 0x0a, 0x04, 0x52,
- 0x6f, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50,
- 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45,
- 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, 0x12,
- 0x0a, 0x0a, 0x06, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x53, 0x10, 0x03, 0x2a, 0x4f, 0x0a, 0x09, 0x4d,
- 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43,
- 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
- 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x45,
- 0x51, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47,
- 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x2a, 0x7a, 0x0a, 0x09,
- 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45,
- 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
- 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a,
- 0x04, 0x48, 0x45, 0x41, 0x44, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x55, 0x54, 0x10, 0x03,
- 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06,
- 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x47, 0x45, 0x54, 0x52,
- 0x41, 0x4e, 0x47, 0x45, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x52, 0x41, 0x4e,
- 0x47, 0x45, 0x48, 0x41, 0x53, 0x48, 0x10, 0x07, 0x2a, 0x35, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53,
- 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c,
- 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x02, 0x2a,
- 0x4a, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
- 0x12, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
- 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54,
- 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x12, 0x0b,
- 0x0a, 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x03, 0x42, 0x58, 0x5a, 0x3c, 0x67,
- 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f,
- 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f,
- 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x61,
- 0x63, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x61, 0x63, 0x6c, 0xaa, 0x02, 0x17, 0x4e, 0x65,
- 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50,
- 0x49, 0x2e, 0x41, 0x63, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_acl_grpc_types_proto_rawDescOnce sync.Once
- file_acl_grpc_types_proto_rawDescData = file_acl_grpc_types_proto_rawDesc
-)
-
-func file_acl_grpc_types_proto_rawDescGZIP() []byte {
- file_acl_grpc_types_proto_rawDescOnce.Do(func() {
- file_acl_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_acl_grpc_types_proto_rawDescData)
- })
- return file_acl_grpc_types_proto_rawDescData
-}
-
-var file_acl_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
-var file_acl_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
-var file_acl_grpc_types_proto_goTypes = []interface{}{
- (Role)(0), // 0: neo.fs.v2.acl.Role
- (MatchType)(0), // 1: neo.fs.v2.acl.MatchType
- (Operation)(0), // 2: neo.fs.v2.acl.Operation
- (Action)(0), // 3: neo.fs.v2.acl.Action
- (HeaderType)(0), // 4: neo.fs.v2.acl.HeaderType
- (*EACLRecord)(nil), // 5: neo.fs.v2.acl.EACLRecord
- (*EACLTable)(nil), // 6: neo.fs.v2.acl.EACLTable
- (*BearerToken)(nil), // 7: neo.fs.v2.acl.BearerToken
- (*EACLRecord_Filter)(nil), // 8: neo.fs.v2.acl.EACLRecord.Filter
- (*EACLRecord_Target)(nil), // 9: neo.fs.v2.acl.EACLRecord.Target
- (*BearerToken_Body)(nil), // 10: neo.fs.v2.acl.BearerToken.Body
- (*BearerToken_Body_TokenLifetime)(nil), // 11: neo.fs.v2.acl.BearerToken.Body.TokenLifetime
- (*BearerToken_Body_APEOverride)(nil), // 12: neo.fs.v2.acl.BearerToken.Body.APEOverride
- (*grpc.Version)(nil), // 13: neo.fs.v2.refs.Version
- (*grpc.ContainerID)(nil), // 14: neo.fs.v2.refs.ContainerID
- (*grpc.Signature)(nil), // 15: neo.fs.v2.refs.Signature
- (*grpc.OwnerID)(nil), // 16: neo.fs.v2.refs.OwnerID
- (*grpc1.ChainTarget)(nil), // 17: frostfs.v2.ape.ChainTarget
- (*grpc1.Chain)(nil), // 18: frostfs.v2.ape.Chain
-}
-var file_acl_grpc_types_proto_depIdxs = []int32{
- 2, // 0: neo.fs.v2.acl.EACLRecord.operation:type_name -> neo.fs.v2.acl.Operation
- 3, // 1: neo.fs.v2.acl.EACLRecord.action:type_name -> neo.fs.v2.acl.Action
- 8, // 2: neo.fs.v2.acl.EACLRecord.filters:type_name -> neo.fs.v2.acl.EACLRecord.Filter
- 9, // 3: neo.fs.v2.acl.EACLRecord.targets:type_name -> neo.fs.v2.acl.EACLRecord.Target
- 13, // 4: neo.fs.v2.acl.EACLTable.version:type_name -> neo.fs.v2.refs.Version
- 14, // 5: neo.fs.v2.acl.EACLTable.container_id:type_name -> neo.fs.v2.refs.ContainerID
- 5, // 6: neo.fs.v2.acl.EACLTable.records:type_name -> neo.fs.v2.acl.EACLRecord
- 10, // 7: neo.fs.v2.acl.BearerToken.body:type_name -> neo.fs.v2.acl.BearerToken.Body
- 15, // 8: neo.fs.v2.acl.BearerToken.signature:type_name -> neo.fs.v2.refs.Signature
- 4, // 9: neo.fs.v2.acl.EACLRecord.Filter.header_type:type_name -> neo.fs.v2.acl.HeaderType
- 1, // 10: neo.fs.v2.acl.EACLRecord.Filter.match_type:type_name -> neo.fs.v2.acl.MatchType
- 0, // 11: neo.fs.v2.acl.EACLRecord.Target.role:type_name -> neo.fs.v2.acl.Role
- 6, // 12: neo.fs.v2.acl.BearerToken.Body.eacl_table:type_name -> neo.fs.v2.acl.EACLTable
- 16, // 13: neo.fs.v2.acl.BearerToken.Body.owner_id:type_name -> neo.fs.v2.refs.OwnerID
- 11, // 14: neo.fs.v2.acl.BearerToken.Body.lifetime:type_name -> neo.fs.v2.acl.BearerToken.Body.TokenLifetime
- 12, // 15: neo.fs.v2.acl.BearerToken.Body.ape_override:type_name -> neo.fs.v2.acl.BearerToken.Body.APEOverride
- 17, // 16: neo.fs.v2.acl.BearerToken.Body.APEOverride.target:type_name -> frostfs.v2.ape.ChainTarget
- 18, // 17: neo.fs.v2.acl.BearerToken.Body.APEOverride.chains:type_name -> frostfs.v2.ape.Chain
- 18, // [18:18] is the sub-list for method output_type
- 18, // [18:18] is the sub-list for method input_type
- 18, // [18:18] is the sub-list for extension type_name
- 18, // [18:18] is the sub-list for extension extendee
- 0, // [0:18] is the sub-list for field type_name
-}
-
-func init() { file_acl_grpc_types_proto_init() }
-func file_acl_grpc_types_proto_init() {
- if File_acl_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_acl_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EACLRecord); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_acl_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EACLTable); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_acl_grpc_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BearerToken); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_acl_grpc_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EACLRecord_Filter); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_acl_grpc_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*EACLRecord_Target); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_acl_grpc_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BearerToken_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_acl_grpc_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BearerToken_Body_TokenLifetime); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_acl_grpc_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*BearerToken_Body_APEOverride); 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_acl_grpc_types_proto_rawDesc,
- NumEnums: 5,
- NumMessages: 8,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_acl_grpc_types_proto_goTypes,
- DependencyIndexes: file_acl_grpc_types_proto_depIdxs,
- EnumInfos: file_acl_grpc_types_proto_enumTypes,
- MessageInfos: file_acl_grpc_types_proto_msgTypes,
- }.Build()
- File_acl_grpc_types_proto = out.File
- file_acl_grpc_types_proto_rawDesc = nil
- file_acl_grpc_types_proto_goTypes = nil
- file_acl_grpc_types_proto_depIdxs = nil
-}
diff --git a/acl/grpc/types_frostfs.pb.go b/acl/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..e542a19
--- /dev/null
+++ b/acl/grpc/types_frostfs.pb.go
@@ -0,0 +1,1994 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package acl
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
+)
+
+type Role int32
+
+const (
+ Role_ROLE_UNSPECIFIED Role = 0
+ Role_USER Role = 1
+ Role_SYSTEM Role = 2
+ Role_OTHERS Role = 3
+)
+
+var (
+ Role_name = map[int32]string{
+ 0: "ROLE_UNSPECIFIED",
+ 1: "USER",
+ 2: "SYSTEM",
+ 3: "OTHERS",
+ }
+ Role_value = map[string]int32{
+ "ROLE_UNSPECIFIED": 0,
+ "USER": 1,
+ "SYSTEM": 2,
+ "OTHERS": 3,
+ }
+)
+
+func (x Role) String() string {
+ if v, ok := Role_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Role) FromString(s string) bool {
+ if v, ok := Role_value[s]; ok {
+ *x = Role(v)
+ return true
+ }
+ return false
+}
+
+type MatchType int32
+
+const (
+ MatchType_MATCH_TYPE_UNSPECIFIED MatchType = 0
+ MatchType_STRING_EQUAL MatchType = 1
+ MatchType_STRING_NOT_EQUAL MatchType = 2
+)
+
+var (
+ MatchType_name = map[int32]string{
+ 0: "MATCH_TYPE_UNSPECIFIED",
+ 1: "STRING_EQUAL",
+ 2: "STRING_NOT_EQUAL",
+ }
+ MatchType_value = map[string]int32{
+ "MATCH_TYPE_UNSPECIFIED": 0,
+ "STRING_EQUAL": 1,
+ "STRING_NOT_EQUAL": 2,
+ }
+)
+
+func (x MatchType) String() string {
+ if v, ok := MatchType_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *MatchType) FromString(s string) bool {
+ if v, ok := MatchType_value[s]; ok {
+ *x = MatchType(v)
+ return true
+ }
+ return false
+}
+
+type Operation int32
+
+const (
+ Operation_OPERATION_UNSPECIFIED Operation = 0
+ Operation_GET Operation = 1
+ Operation_HEAD Operation = 2
+ Operation_PUT Operation = 3
+ Operation_DELETE Operation = 4
+ Operation_SEARCH Operation = 5
+ Operation_GETRANGE Operation = 6
+ Operation_GETRANGEHASH Operation = 7
+)
+
+var (
+ Operation_name = map[int32]string{
+ 0: "OPERATION_UNSPECIFIED",
+ 1: "GET",
+ 2: "HEAD",
+ 3: "PUT",
+ 4: "DELETE",
+ 5: "SEARCH",
+ 6: "GETRANGE",
+ 7: "GETRANGEHASH",
+ }
+ Operation_value = map[string]int32{
+ "OPERATION_UNSPECIFIED": 0,
+ "GET": 1,
+ "HEAD": 2,
+ "PUT": 3,
+ "DELETE": 4,
+ "SEARCH": 5,
+ "GETRANGE": 6,
+ "GETRANGEHASH": 7,
+ }
+)
+
+func (x Operation) String() string {
+ if v, ok := Operation_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Operation) FromString(s string) bool {
+ if v, ok := Operation_value[s]; ok {
+ *x = Operation(v)
+ return true
+ }
+ return false
+}
+
+type Action int32
+
+const (
+ Action_ACTION_UNSPECIFIED Action = 0
+ Action_ALLOW Action = 1
+ Action_DENY Action = 2
+)
+
+var (
+ Action_name = map[int32]string{
+ 0: "ACTION_UNSPECIFIED",
+ 1: "ALLOW",
+ 2: "DENY",
+ }
+ Action_value = map[string]int32{
+ "ACTION_UNSPECIFIED": 0,
+ "ALLOW": 1,
+ "DENY": 2,
+ }
+)
+
+func (x Action) String() string {
+ if v, ok := Action_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Action) FromString(s string) bool {
+ if v, ok := Action_value[s]; ok {
+ *x = Action(v)
+ return true
+ }
+ return false
+}
+
+type HeaderType int32
+
+const (
+ HeaderType_HEADER_UNSPECIFIED HeaderType = 0
+ HeaderType_REQUEST HeaderType = 1
+ HeaderType_OBJECT HeaderType = 2
+ HeaderType_SERVICE HeaderType = 3
+)
+
+var (
+ HeaderType_name = map[int32]string{
+ 0: "HEADER_UNSPECIFIED",
+ 1: "REQUEST",
+ 2: "OBJECT",
+ 3: "SERVICE",
+ }
+ HeaderType_value = map[string]int32{
+ "HEADER_UNSPECIFIED": 0,
+ "REQUEST": 1,
+ "OBJECT": 2,
+ "SERVICE": 3,
+ }
+)
+
+func (x HeaderType) String() string {
+ if v, ok := HeaderType_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *HeaderType) FromString(s string) bool {
+ if v, ok := HeaderType_value[s]; ok {
+ *x = HeaderType(v)
+ return true
+ }
+ return false
+}
+
+type EACLRecord_Filter struct {
+ HeaderType HeaderType `json:"headerType"`
+ MatchType MatchType `json:"matchType"`
+ Key string `json:"key"`
+ Value string `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*EACLRecord_Filter)(nil)
+ _ encoding.ProtoUnmarshaler = (*EACLRecord_Filter)(nil)
+ _ json.Marshaler = (*EACLRecord_Filter)(nil)
+ _ json.Unmarshaler = (*EACLRecord_Filter)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *EACLRecord_Filter) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.EnumSize(1, int32(x.HeaderType))
+ size += proto.EnumSize(2, int32(x.MatchType))
+ size += proto.StringSize(3, x.Key)
+ size += proto.StringSize(4, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *EACLRecord_Filter) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *EACLRecord_Filter) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if int32(x.HeaderType) != 0 {
+ mm.AppendInt32(1, int32(x.HeaderType))
+ }
+ if int32(x.MatchType) != 0 {
+ mm.AppendInt32(2, int32(x.MatchType))
+ }
+ if len(x.Key) != 0 {
+ mm.AppendString(3, x.Key)
+ }
+ if len(x.Value) != 0 {
+ mm.AppendString(4, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *EACLRecord_Filter) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "EACLRecord_Filter")
+ }
+ switch fc.FieldNum {
+ case 1: // HeaderType
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "HeaderType")
+ }
+ x.HeaderType = HeaderType(data)
+ case 2: // MatchType
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MatchType")
+ }
+ x.MatchType = MatchType(data)
+ case 3: // Key
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 4: // Value
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *EACLRecord_Filter) GetHeaderType() HeaderType {
+ if x != nil {
+ return x.HeaderType
+ }
+ return 0
+}
+func (x *EACLRecord_Filter) SetHeaderType(v HeaderType) {
+ x.HeaderType = v
+}
+func (x *EACLRecord_Filter) GetMatchType() MatchType {
+ if x != nil {
+ return x.MatchType
+ }
+ return 0
+}
+func (x *EACLRecord_Filter) SetMatchType(v MatchType) {
+ x.MatchType = v
+}
+func (x *EACLRecord_Filter) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+func (x *EACLRecord_Filter) SetKey(v string) {
+ x.Key = v
+}
+func (x *EACLRecord_Filter) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+func (x *EACLRecord_Filter) SetValue(v string) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *EACLRecord_Filter) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *EACLRecord_Filter) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"headerType\":"
+ out.RawString(prefix[1:])
+ out.Int32(int32(x.HeaderType))
+ }
+ {
+ const prefix string = ",\"matchType\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.MatchType))
+ }
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *EACLRecord_Filter) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *EACLRecord_Filter) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "headerType":
+ {
+ var f HeaderType
+ var parsedValue HeaderType
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := HeaderType_value[v]; ok {
+ parsedValue = HeaderType(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = HeaderType(vv)
+ case float64:
+ parsedValue = HeaderType(v)
+ }
+ f = parsedValue
+ x.HeaderType = f
+ }
+ case "matchType":
+ {
+ var f MatchType
+ var parsedValue MatchType
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := MatchType_value[v]; ok {
+ parsedValue = MatchType(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = MatchType(vv)
+ case float64:
+ parsedValue = MatchType(v)
+ }
+ f = parsedValue
+ x.MatchType = f
+ }
+ case "key":
+ {
+ var f string
+ f = in.String()
+ x.Key = f
+ }
+ case "value":
+ {
+ var f string
+ f = in.String()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type EACLRecord_Target struct {
+ Role Role `json:"role"`
+ Keys [][]byte `json:"keys"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*EACLRecord_Target)(nil)
+ _ encoding.ProtoUnmarshaler = (*EACLRecord_Target)(nil)
+ _ json.Marshaler = (*EACLRecord_Target)(nil)
+ _ json.Unmarshaler = (*EACLRecord_Target)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *EACLRecord_Target) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.EnumSize(1, int32(x.Role))
+ size += proto.RepeatedBytesSize(2, x.Keys)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *EACLRecord_Target) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *EACLRecord_Target) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if int32(x.Role) != 0 {
+ mm.AppendInt32(1, int32(x.Role))
+ }
+ for j := range x.Keys {
+ mm.AppendBytes(2, x.Keys[j])
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *EACLRecord_Target) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "EACLRecord_Target")
+ }
+ switch fc.FieldNum {
+ case 1: // Role
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Role")
+ }
+ x.Role = Role(data)
+ case 2: // Keys
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Keys")
+ }
+ x.Keys = append(x.Keys, data)
+ }
+ }
+ return nil
+}
+func (x *EACLRecord_Target) GetRole() Role {
+ if x != nil {
+ return x.Role
+ }
+ return 0
+}
+func (x *EACLRecord_Target) SetRole(v Role) {
+ x.Role = v
+}
+func (x *EACLRecord_Target) GetKeys() [][]byte {
+ if x != nil {
+ return x.Keys
+ }
+ return nil
+}
+func (x *EACLRecord_Target) SetKeys(v [][]byte) {
+ x.Keys = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *EACLRecord_Target) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *EACLRecord_Target) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"role\":"
+ out.RawString(prefix[1:])
+ out.Int32(int32(x.Role))
+ }
+ {
+ const prefix string = ",\"keys\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Keys {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Base64Bytes(x.Keys[i])
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *EACLRecord_Target) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *EACLRecord_Target) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "role":
+ {
+ var f Role
+ var parsedValue Role
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := Role_value[v]; ok {
+ parsedValue = Role(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = Role(vv)
+ case float64:
+ parsedValue = Role(v)
+ }
+ f = parsedValue
+ x.Role = f
+ }
+ case "keys":
+ {
+ var f []byte
+ var list [][]byte
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Bytes()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Keys = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type EACLRecord struct {
+ Operation Operation `json:"operation"`
+ Action Action `json:"action"`
+ Filters []*EACLRecord_Filter `json:"filters"`
+ Targets []*EACLRecord_Target `json:"targets"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*EACLRecord)(nil)
+ _ encoding.ProtoUnmarshaler = (*EACLRecord)(nil)
+ _ json.Marshaler = (*EACLRecord)(nil)
+ _ json.Unmarshaler = (*EACLRecord)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *EACLRecord) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.EnumSize(1, int32(x.Operation))
+ size += proto.EnumSize(2, int32(x.Action))
+ for i := range x.Filters {
+ size += proto.NestedStructureSize(3, x.Filters[i])
+ }
+ for i := range x.Targets {
+ size += proto.NestedStructureSize(4, x.Targets[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *EACLRecord) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *EACLRecord) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if int32(x.Operation) != 0 {
+ mm.AppendInt32(1, int32(x.Operation))
+ }
+ if int32(x.Action) != 0 {
+ mm.AppendInt32(2, int32(x.Action))
+ }
+ for i := range x.Filters {
+ if x.Filters[i] != nil && x.Filters[i].StableSize() != 0 {
+ x.Filters[i].EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+ for i := range x.Targets {
+ if x.Targets[i] != nil && x.Targets[i].StableSize() != 0 {
+ x.Targets[i].EmitProtobuf(mm.AppendMessage(4))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *EACLRecord) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "EACLRecord")
+ }
+ switch fc.FieldNum {
+ case 1: // Operation
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Operation")
+ }
+ x.Operation = Operation(data)
+ case 2: // Action
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Action")
+ }
+ x.Action = Action(data)
+ case 3: // Filters
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Filters")
+ }
+ x.Filters = append(x.Filters, new(EACLRecord_Filter))
+ ff := x.Filters[len(x.Filters)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // Targets
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Targets")
+ }
+ x.Targets = append(x.Targets, new(EACLRecord_Target))
+ ff := x.Targets[len(x.Targets)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *EACLRecord) GetOperation() Operation {
+ if x != nil {
+ return x.Operation
+ }
+ return 0
+}
+func (x *EACLRecord) SetOperation(v Operation) {
+ x.Operation = v
+}
+func (x *EACLRecord) GetAction() Action {
+ if x != nil {
+ return x.Action
+ }
+ return 0
+}
+func (x *EACLRecord) SetAction(v Action) {
+ x.Action = v
+}
+func (x *EACLRecord) GetFilters() []*EACLRecord_Filter {
+ if x != nil {
+ return x.Filters
+ }
+ return nil
+}
+func (x *EACLRecord) SetFilters(v []*EACLRecord_Filter) {
+ x.Filters = v
+}
+func (x *EACLRecord) GetTargets() []*EACLRecord_Target {
+ if x != nil {
+ return x.Targets
+ }
+ return nil
+}
+func (x *EACLRecord) SetTargets(v []*EACLRecord_Target) {
+ x.Targets = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *EACLRecord) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *EACLRecord) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"operation\":"
+ out.RawString(prefix[1:])
+ out.Int32(int32(x.Operation))
+ }
+ {
+ const prefix string = ",\"action\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.Action))
+ }
+ {
+ const prefix string = ",\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"targets\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Targets {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Targets[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *EACLRecord) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *EACLRecord) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "operation":
+ {
+ var f Operation
+ var parsedValue Operation
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := Operation_value[v]; ok {
+ parsedValue = Operation(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = Operation(vv)
+ case float64:
+ parsedValue = Operation(v)
+ }
+ f = parsedValue
+ x.Operation = f
+ }
+ case "action":
+ {
+ var f Action
+ var parsedValue Action
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := Action_value[v]; ok {
+ parsedValue = Action(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = Action(vv)
+ case float64:
+ parsedValue = Action(v)
+ }
+ f = parsedValue
+ x.Action = f
+ }
+ case "filters":
+ {
+ var f *EACLRecord_Filter
+ var list []*EACLRecord_Filter
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(EACLRecord_Filter)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Filters = list
+ in.Delim(']')
+ }
+ case "targets":
+ {
+ var f *EACLRecord_Target
+ var list []*EACLRecord_Target
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(EACLRecord_Target)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Targets = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type EACLTable struct {
+ Version *grpc.Version `json:"version"`
+ ContainerId *grpc.ContainerID `json:"containerID"`
+ Records []*EACLRecord `json:"records"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*EACLTable)(nil)
+ _ encoding.ProtoUnmarshaler = (*EACLTable)(nil)
+ _ json.Marshaler = (*EACLTable)(nil)
+ _ json.Unmarshaler = (*EACLTable)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *EACLTable) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Version)
+ size += proto.NestedStructureSize(2, x.ContainerId)
+ for i := range x.Records {
+ size += proto.NestedStructureSize(3, x.Records[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *EACLTable) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *EACLTable) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Version != nil && x.Version.StableSize() != 0 {
+ x.Version.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ x.ContainerId.EmitProtobuf(mm.AppendMessage(2))
+ }
+ for i := range x.Records {
+ if x.Records[i] != nil && x.Records[i].StableSize() != 0 {
+ x.Records[i].EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *EACLTable) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "EACLTable")
+ }
+ switch fc.FieldNum {
+ case 1: // Version
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Version")
+ }
+ x.Version = new(grpc.Version)
+ if err := x.Version.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // ContainerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
+ }
+ x.ContainerId = new(grpc.ContainerID)
+ if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Records
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Records")
+ }
+ x.Records = append(x.Records, new(EACLRecord))
+ ff := x.Records[len(x.Records)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *EACLTable) GetVersion() *grpc.Version {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+func (x *EACLTable) SetVersion(v *grpc.Version) {
+ x.Version = v
+}
+func (x *EACLTable) GetContainerId() *grpc.ContainerID {
+ if x != nil {
+ return x.ContainerId
+ }
+ return nil
+}
+func (x *EACLTable) SetContainerId(v *grpc.ContainerID) {
+ x.ContainerId = v
+}
+func (x *EACLTable) GetRecords() []*EACLRecord {
+ if x != nil {
+ return x.Records
+ }
+ return nil
+}
+func (x *EACLTable) SetRecords(v []*EACLRecord) {
+ x.Records = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *EACLTable) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *EACLTable) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"version\":"
+ out.RawString(prefix[1:])
+ x.Version.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"records\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Records {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Records[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *EACLTable) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *EACLTable) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "version":
+ {
+ var f *grpc.Version
+ f = new(grpc.Version)
+ f.UnmarshalEasyJSON(in)
+ x.Version = f
+ }
+ case "containerID":
+ {
+ var f *grpc.ContainerID
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.ContainerId = f
+ }
+ case "records":
+ {
+ var f *EACLRecord
+ var list []*EACLRecord
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(EACLRecord)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Records = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type BearerToken_Body_TokenLifetime struct {
+ Exp uint64 `json:"exp"`
+ Nbf uint64 `json:"nbf"`
+ Iat uint64 `json:"iat"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*BearerToken_Body_TokenLifetime)(nil)
+ _ encoding.ProtoUnmarshaler = (*BearerToken_Body_TokenLifetime)(nil)
+ _ json.Marshaler = (*BearerToken_Body_TokenLifetime)(nil)
+ _ json.Unmarshaler = (*BearerToken_Body_TokenLifetime)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *BearerToken_Body_TokenLifetime) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt64Size(1, x.Exp)
+ size += proto.UInt64Size(2, x.Nbf)
+ size += proto.UInt64Size(3, x.Iat)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *BearerToken_Body_TokenLifetime) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *BearerToken_Body_TokenLifetime) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Exp != 0 {
+ mm.AppendUint64(1, x.Exp)
+ }
+ if x.Nbf != 0 {
+ mm.AppendUint64(2, x.Nbf)
+ }
+ if x.Iat != 0 {
+ mm.AppendUint64(3, x.Iat)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *BearerToken_Body_TokenLifetime) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "BearerToken_Body_TokenLifetime")
+ }
+ switch fc.FieldNum {
+ case 1: // Exp
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Exp")
+ }
+ x.Exp = data
+ case 2: // Nbf
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Nbf")
+ }
+ x.Nbf = data
+ case 3: // Iat
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Iat")
+ }
+ x.Iat = data
+ }
+ }
+ return nil
+}
+func (x *BearerToken_Body_TokenLifetime) GetExp() uint64 {
+ if x != nil {
+ return x.Exp
+ }
+ return 0
+}
+func (x *BearerToken_Body_TokenLifetime) SetExp(v uint64) {
+ x.Exp = v
+}
+func (x *BearerToken_Body_TokenLifetime) GetNbf() uint64 {
+ if x != nil {
+ return x.Nbf
+ }
+ return 0
+}
+func (x *BearerToken_Body_TokenLifetime) SetNbf(v uint64) {
+ x.Nbf = v
+}
+func (x *BearerToken_Body_TokenLifetime) GetIat() uint64 {
+ if x != nil {
+ return x.Iat
+ }
+ return 0
+}
+func (x *BearerToken_Body_TokenLifetime) SetIat(v uint64) {
+ x.Iat = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *BearerToken_Body_TokenLifetime) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *BearerToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"exp\":"
+ out.RawString(prefix[1:])
+ out.Uint64(x.Exp)
+ }
+ {
+ const prefix string = ",\"nbf\":"
+ out.RawString(prefix)
+ out.Uint64(x.Nbf)
+ }
+ {
+ const prefix string = ",\"iat\":"
+ out.RawString(prefix)
+ out.Uint64(x.Iat)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *BearerToken_Body_TokenLifetime) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *BearerToken_Body_TokenLifetime) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "exp":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Exp = f
+ }
+ case "nbf":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Nbf = f
+ }
+ case "iat":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Iat = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type BearerToken_Body_APEOverride struct {
+ Target *grpc1.ChainTarget `json:"target"`
+ Chains []*grpc1.Chain `json:"chains"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*BearerToken_Body_APEOverride)(nil)
+ _ encoding.ProtoUnmarshaler = (*BearerToken_Body_APEOverride)(nil)
+ _ json.Marshaler = (*BearerToken_Body_APEOverride)(nil)
+ _ json.Unmarshaler = (*BearerToken_Body_APEOverride)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *BearerToken_Body_APEOverride) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Target)
+ for i := range x.Chains {
+ size += proto.NestedStructureSize(2, x.Chains[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *BearerToken_Body_APEOverride) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *BearerToken_Body_APEOverride) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Target != nil && x.Target.StableSize() != 0 {
+ x.Target.EmitProtobuf(mm.AppendMessage(1))
+ }
+ for i := range x.Chains {
+ if x.Chains[i] != nil && x.Chains[i].StableSize() != 0 {
+ x.Chains[i].EmitProtobuf(mm.AppendMessage(2))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *BearerToken_Body_APEOverride) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "BearerToken_Body_APEOverride")
+ }
+ switch fc.FieldNum {
+ case 1: // Target
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Target")
+ }
+ x.Target = new(grpc1.ChainTarget)
+ if err := x.Target.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Chains
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Chains")
+ }
+ x.Chains = append(x.Chains, new(grpc1.Chain))
+ ff := x.Chains[len(x.Chains)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *BearerToken_Body_APEOverride) GetTarget() *grpc1.ChainTarget {
+ if x != nil {
+ return x.Target
+ }
+ return nil
+}
+func (x *BearerToken_Body_APEOverride) SetTarget(v *grpc1.ChainTarget) {
+ x.Target = v
+}
+func (x *BearerToken_Body_APEOverride) GetChains() []*grpc1.Chain {
+ if x != nil {
+ return x.Chains
+ }
+ return nil
+}
+func (x *BearerToken_Body_APEOverride) SetChains(v []*grpc1.Chain) {
+ x.Chains = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *BearerToken_Body_APEOverride) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *BearerToken_Body_APEOverride) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"target\":"
+ out.RawString(prefix[1:])
+ x.Target.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"chains\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Chains {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Chains[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *BearerToken_Body_APEOverride) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *BearerToken_Body_APEOverride) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "target":
+ {
+ var f *grpc1.ChainTarget
+ f = new(grpc1.ChainTarget)
+ f.UnmarshalEasyJSON(in)
+ x.Target = f
+ }
+ case "chains":
+ {
+ var f *grpc1.Chain
+ var list []*grpc1.Chain
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(grpc1.Chain)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Chains = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type BearerToken_Body struct {
+ EaclTable *EACLTable `json:"eaclTable"`
+ OwnerId *grpc.OwnerID `json:"ownerID"`
+ Lifetime *BearerToken_Body_TokenLifetime `json:"lifetime"`
+ AllowImpersonate bool `json:"allowImpersonate"`
+ ApeOverride *BearerToken_Body_APEOverride `json:"apeOverride"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*BearerToken_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*BearerToken_Body)(nil)
+ _ json.Marshaler = (*BearerToken_Body)(nil)
+ _ json.Unmarshaler = (*BearerToken_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *BearerToken_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.EaclTable)
+ size += proto.NestedStructureSize(2, x.OwnerId)
+ size += proto.NestedStructureSize(3, x.Lifetime)
+ size += proto.BoolSize(4, x.AllowImpersonate)
+ size += proto.NestedStructureSize(5, x.ApeOverride)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *BearerToken_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *BearerToken_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.EaclTable != nil && x.EaclTable.StableSize() != 0 {
+ x.EaclTable.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ x.OwnerId.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.Lifetime != nil && x.Lifetime.StableSize() != 0 {
+ x.Lifetime.EmitProtobuf(mm.AppendMessage(3))
+ }
+ if x.AllowImpersonate {
+ mm.AppendBool(4, x.AllowImpersonate)
+ }
+ if x.ApeOverride != nil && x.ApeOverride.StableSize() != 0 {
+ x.ApeOverride.EmitProtobuf(mm.AppendMessage(5))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *BearerToken_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "BearerToken_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // EaclTable
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "EaclTable")
+ }
+ x.EaclTable = new(EACLTable)
+ if err := x.EaclTable.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // OwnerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OwnerId")
+ }
+ x.OwnerId = new(grpc.OwnerID)
+ if err := x.OwnerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Lifetime
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Lifetime")
+ }
+ x.Lifetime = new(BearerToken_Body_TokenLifetime)
+ if err := x.Lifetime.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // AllowImpersonate
+ data, ok := fc.Bool()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "AllowImpersonate")
+ }
+ x.AllowImpersonate = data
+ case 5: // ApeOverride
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ApeOverride")
+ }
+ x.ApeOverride = new(BearerToken_Body_APEOverride)
+ if err := x.ApeOverride.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *BearerToken_Body) GetEaclTable() *EACLTable {
+ if x != nil {
+ return x.EaclTable
+ }
+ return nil
+}
+func (x *BearerToken_Body) SetEaclTable(v *EACLTable) {
+ x.EaclTable = v
+}
+func (x *BearerToken_Body) GetOwnerId() *grpc.OwnerID {
+ if x != nil {
+ return x.OwnerId
+ }
+ return nil
+}
+func (x *BearerToken_Body) SetOwnerId(v *grpc.OwnerID) {
+ x.OwnerId = v
+}
+func (x *BearerToken_Body) GetLifetime() *BearerToken_Body_TokenLifetime {
+ if x != nil {
+ return x.Lifetime
+ }
+ return nil
+}
+func (x *BearerToken_Body) SetLifetime(v *BearerToken_Body_TokenLifetime) {
+ x.Lifetime = v
+}
+func (x *BearerToken_Body) GetAllowImpersonate() bool {
+ if x != nil {
+ return x.AllowImpersonate
+ }
+ return false
+}
+func (x *BearerToken_Body) SetAllowImpersonate(v bool) {
+ x.AllowImpersonate = v
+}
+func (x *BearerToken_Body) GetApeOverride() *BearerToken_Body_APEOverride {
+ if x != nil {
+ return x.ApeOverride
+ }
+ return nil
+}
+func (x *BearerToken_Body) SetApeOverride(v *BearerToken_Body_APEOverride) {
+ x.ApeOverride = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *BearerToken_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *BearerToken_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"eaclTable\":"
+ out.RawString(prefix[1:])
+ x.EaclTable.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"lifetime\":"
+ out.RawString(prefix)
+ x.Lifetime.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"allowImpersonate\":"
+ out.RawString(prefix)
+ out.Bool(x.AllowImpersonate)
+ }
+ {
+ const prefix string = ",\"apeOverride\":"
+ out.RawString(prefix)
+ x.ApeOverride.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *BearerToken_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *BearerToken_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "eaclTable":
+ {
+ var f *EACLTable
+ f = new(EACLTable)
+ f.UnmarshalEasyJSON(in)
+ x.EaclTable = f
+ }
+ case "ownerID":
+ {
+ var f *grpc.OwnerID
+ f = new(grpc.OwnerID)
+ f.UnmarshalEasyJSON(in)
+ x.OwnerId = f
+ }
+ case "lifetime":
+ {
+ var f *BearerToken_Body_TokenLifetime
+ f = new(BearerToken_Body_TokenLifetime)
+ f.UnmarshalEasyJSON(in)
+ x.Lifetime = f
+ }
+ case "allowImpersonate":
+ {
+ var f bool
+ f = in.Bool()
+ x.AllowImpersonate = f
+ }
+ case "apeOverride":
+ {
+ var f *BearerToken_Body_APEOverride
+ f = new(BearerToken_Body_APEOverride)
+ f.UnmarshalEasyJSON(in)
+ x.ApeOverride = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type BearerToken struct {
+ Body *BearerToken_Body `json:"body"`
+ Signature *grpc.Signature `json:"signature"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*BearerToken)(nil)
+ _ encoding.ProtoUnmarshaler = (*BearerToken)(nil)
+ _ json.Marshaler = (*BearerToken)(nil)
+ _ json.Unmarshaler = (*BearerToken)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *BearerToken) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.Signature)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *BearerToken) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *BearerToken) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *BearerToken) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "BearerToken")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(BearerToken_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.Signature)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *BearerToken) GetBody() *BearerToken_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *BearerToken) SetBody(v *BearerToken_Body) {
+ x.Body = v
+}
+func (x *BearerToken) GetSignature() *grpc.Signature {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *BearerToken) SetSignature(v *grpc.Signature) {
+ x.Signature = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *BearerToken) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *BearerToken) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *BearerToken) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *BearerToken) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *BearerToken_Body
+ f = new(BearerToken_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "signature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/acl/grpc/types_frostfs_fuzz.go b/acl/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..5d5b763
--- /dev/null
+++ b/acl/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,64 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package acl
+
+func DoFuzzProtoEACLRecord(data []byte) int {
+ msg := new(EACLRecord)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONEACLRecord(data []byte) int {
+ msg := new(EACLRecord)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoEACLTable(data []byte) int {
+ msg := new(EACLTable)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONEACLTable(data []byte) int {
+ msg := new(EACLTable)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoBearerToken(data []byte) int {
+ msg := new(BearerToken)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONBearerToken(data []byte) int {
+ msg := new(BearerToken)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/acl/grpc/types_frostfs_test.go b/acl/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..c6d1c43
--- /dev/null
+++ b/acl/grpc/types_frostfs_test.go
@@ -0,0 +1,41 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package acl
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoEACLRecord(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoEACLRecord(data)
+ })
+}
+func FuzzJSONEACLRecord(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONEACLRecord(data)
+ })
+}
+func FuzzProtoEACLTable(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoEACLTable(data)
+ })
+}
+func FuzzJSONEACLTable(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONEACLTable(data)
+ })
+}
+func FuzzProtoBearerToken(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoBearerToken(data)
+ })
+}
+func FuzzJSONBearerToken(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONBearerToken(data)
+ })
+}
diff --git a/ape/grpc/types.go b/ape/grpc/types.go
deleted file mode 100644
index 931b6a3..0000000
--- a/ape/grpc/types.go
+++ /dev/null
@@ -1,21 +0,0 @@
-package ape
-
-func (t *ChainTarget) SetType(typ TargetType) {
- t.Type = typ
-}
-
-func (t *ChainTarget) SetName(name string) {
- t.Name = name
-}
-
-func (c *Chain) SetKind(kind isChain_Kind) {
- c.Kind = kind
-}
-
-func (cr *Chain_Raw) SetRaw(raw []byte) {
- cr.Raw = raw
-}
-
-func (cr *Chain_Raw) GetRaw() []byte {
- return cr.Raw
-}
diff --git a/ape/grpc/types.pb.go b/ape/grpc/types.pb.go
deleted file mode 100644
index ee8e0a7..0000000
--- a/ape/grpc/types.pb.go
+++ /dev/null
@@ -1,310 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: ape/grpc/types.proto
-
-package ape
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// TargetType is a type target to which a rule chain is defined.
-type TargetType int32
-
-const (
- TargetType_UNDEFINED TargetType = 0
- TargetType_NAMESPACE TargetType = 1
- TargetType_CONTAINER TargetType = 2
- TargetType_USER TargetType = 3
- TargetType_GROUP TargetType = 4
-)
-
-// Enum value maps for TargetType.
-var (
- TargetType_name = map[int32]string{
- 0: "UNDEFINED",
- 1: "NAMESPACE",
- 2: "CONTAINER",
- 3: "USER",
- 4: "GROUP",
- }
- TargetType_value = map[string]int32{
- "UNDEFINED": 0,
- "NAMESPACE": 1,
- "CONTAINER": 2,
- "USER": 3,
- "GROUP": 4,
- }
-)
-
-func (x TargetType) Enum() *TargetType {
- p := new(TargetType)
- *p = x
- return p
-}
-
-func (x TargetType) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (TargetType) Descriptor() protoreflect.EnumDescriptor {
- return file_ape_grpc_types_proto_enumTypes[0].Descriptor()
-}
-
-func (TargetType) Type() protoreflect.EnumType {
- return &file_ape_grpc_types_proto_enumTypes[0]
-}
-
-func (x TargetType) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use TargetType.Descriptor instead.
-func (TargetType) EnumDescriptor() ([]byte, []int) {
- return file_ape_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-// ChainTarget is an object to which a rule chain is defined.
-type ChainTarget struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Type TargetType `protobuf:"varint,1,opt,name=type,proto3,enum=frostfs.v2.ape.TargetType" json:"type,omitempty"`
- Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
-}
-
-func (x *ChainTarget) Reset() {
- *x = ChainTarget{}
- if protoimpl.UnsafeEnabled {
- mi := &file_ape_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ChainTarget) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ChainTarget) ProtoMessage() {}
-
-func (x *ChainTarget) ProtoReflect() protoreflect.Message {
- mi := &file_ape_grpc_types_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 ChainTarget.ProtoReflect.Descriptor instead.
-func (*ChainTarget) Descriptor() ([]byte, []int) {
- return file_ape_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ChainTarget) GetType() TargetType {
- if x != nil {
- return x.Type
- }
- return TargetType_UNDEFINED
-}
-
-func (x *ChainTarget) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-// Chain is a chain of rules defined for a specific target.
-type Chain struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Types that are assignable to Kind:
- //
- // *Chain_Raw
- Kind isChain_Kind `protobuf_oneof:"kind"`
-}
-
-func (x *Chain) Reset() {
- *x = Chain{}
- if protoimpl.UnsafeEnabled {
- mi := &file_ape_grpc_types_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Chain) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Chain) ProtoMessage() {}
-
-func (x *Chain) ProtoReflect() protoreflect.Message {
- mi := &file_ape_grpc_types_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 Chain.ProtoReflect.Descriptor instead.
-func (*Chain) Descriptor() ([]byte, []int) {
- return file_ape_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-func (m *Chain) GetKind() isChain_Kind {
- if m != nil {
- return m.Kind
- }
- return nil
-}
-
-func (x *Chain) GetRaw() []byte {
- if x, ok := x.GetKind().(*Chain_Raw); ok {
- return x.Raw
- }
- return nil
-}
-
-type isChain_Kind interface {
- isChain_Kind()
-}
-
-type Chain_Raw struct {
- // Raw representation of a serizalized rule chain.
- Raw []byte `protobuf:"bytes,1,opt,name=raw,proto3,oneof"`
-}
-
-func (*Chain_Raw) isChain_Kind() {}
-
-var File_ape_grpc_types_proto protoreflect.FileDescriptor
-
-var file_ape_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x14, 0x61, 0x70, 0x65, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x22, 0x51, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54,
- 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x61, 0x70, 0x65, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
- 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x05, 0x43, 0x68, 0x61,
- 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48,
- 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x2a, 0x4e,
- 0x0a, 0x0a, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09,
- 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e,
- 0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f,
- 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45,
- 0x52, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x04, 0x42, 0x3e,
- 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e,
- 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f,
- 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76,
- 0x32, 0x2f, 0x61, 0x70, 0x65, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x61, 0x70, 0x65, 0x62, 0x06,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_ape_grpc_types_proto_rawDescOnce sync.Once
- file_ape_grpc_types_proto_rawDescData = file_ape_grpc_types_proto_rawDesc
-)
-
-func file_ape_grpc_types_proto_rawDescGZIP() []byte {
- file_ape_grpc_types_proto_rawDescOnce.Do(func() {
- file_ape_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_ape_grpc_types_proto_rawDescData)
- })
- return file_ape_grpc_types_proto_rawDescData
-}
-
-var file_ape_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_ape_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_ape_grpc_types_proto_goTypes = []interface{}{
- (TargetType)(0), // 0: frostfs.v2.ape.TargetType
- (*ChainTarget)(nil), // 1: frostfs.v2.ape.ChainTarget
- (*Chain)(nil), // 2: frostfs.v2.ape.Chain
-}
-var file_ape_grpc_types_proto_depIdxs = []int32{
- 0, // 0: frostfs.v2.ape.ChainTarget.type:type_name -> frostfs.v2.ape.TargetType
- 1, // [1:1] is the sub-list for method output_type
- 1, // [1:1] is the sub-list for method input_type
- 1, // [1:1] is the sub-list for extension type_name
- 1, // [1:1] is the sub-list for extension extendee
- 0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_ape_grpc_types_proto_init() }
-func file_ape_grpc_types_proto_init() {
- if File_ape_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_ape_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ChainTarget); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_ape_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Chain); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_ape_grpc_types_proto_msgTypes[1].OneofWrappers = []interface{}{
- (*Chain_Raw)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_ape_grpc_types_proto_rawDesc,
- NumEnums: 1,
- NumMessages: 2,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_ape_grpc_types_proto_goTypes,
- DependencyIndexes: file_ape_grpc_types_proto_depIdxs,
- EnumInfos: file_ape_grpc_types_proto_enumTypes,
- MessageInfos: file_ape_grpc_types_proto_msgTypes,
- }.Build()
- File_ape_grpc_types_proto = out.File
- file_ape_grpc_types_proto_rawDesc = nil
- file_ape_grpc_types_proto_goTypes = nil
- file_ape_grpc_types_proto_depIdxs = nil
-}
diff --git a/ape/grpc/types_frostfs.pb.go b/ape/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..1e92f22
--- /dev/null
+++ b/ape/grpc/types_frostfs.pb.go
@@ -0,0 +1,400 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package ape
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
+)
+
+type TargetType int32
+
+const (
+ TargetType_UNDEFINED TargetType = 0
+ TargetType_NAMESPACE TargetType = 1
+ TargetType_CONTAINER TargetType = 2
+ TargetType_USER TargetType = 3
+ TargetType_GROUP TargetType = 4
+)
+
+var (
+ TargetType_name = map[int32]string{
+ 0: "UNDEFINED",
+ 1: "NAMESPACE",
+ 2: "CONTAINER",
+ 3: "USER",
+ 4: "GROUP",
+ }
+ TargetType_value = map[string]int32{
+ "UNDEFINED": 0,
+ "NAMESPACE": 1,
+ "CONTAINER": 2,
+ "USER": 3,
+ "GROUP": 4,
+ }
+)
+
+func (x TargetType) String() string {
+ if v, ok := TargetType_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *TargetType) FromString(s string) bool {
+ if v, ok := TargetType_value[s]; ok {
+ *x = TargetType(v)
+ return true
+ }
+ return false
+}
+
+type ChainTarget struct {
+ Type TargetType `json:"type"`
+ Name string `json:"name"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ChainTarget)(nil)
+ _ encoding.ProtoUnmarshaler = (*ChainTarget)(nil)
+ _ json.Marshaler = (*ChainTarget)(nil)
+ _ json.Unmarshaler = (*ChainTarget)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ChainTarget) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.EnumSize(1, int32(x.Type))
+ size += proto.StringSize(2, x.Name)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ChainTarget) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ChainTarget) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if int32(x.Type) != 0 {
+ mm.AppendInt32(1, int32(x.Type))
+ }
+ if len(x.Name) != 0 {
+ mm.AppendString(2, x.Name)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ChainTarget) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ChainTarget")
+ }
+ switch fc.FieldNum {
+ case 1: // Type
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Type")
+ }
+ x.Type = TargetType(data)
+ case 2: // Name
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Name")
+ }
+ x.Name = data
+ }
+ }
+ return nil
+}
+func (x *ChainTarget) GetType() TargetType {
+ if x != nil {
+ return x.Type
+ }
+ return 0
+}
+func (x *ChainTarget) SetType(v TargetType) {
+ x.Type = v
+}
+func (x *ChainTarget) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+func (x *ChainTarget) SetName(v string) {
+ x.Name = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ChainTarget) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ChainTarget) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"type\":"
+ out.RawString(prefix[1:])
+ out.Int32(int32(x.Type))
+ }
+ {
+ const prefix string = ",\"name\":"
+ out.RawString(prefix)
+ out.String(x.Name)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ChainTarget) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ChainTarget) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "type":
+ {
+ var f TargetType
+ var parsedValue TargetType
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := TargetType_value[v]; ok {
+ parsedValue = TargetType(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = TargetType(vv)
+ case float64:
+ parsedValue = TargetType(v)
+ }
+ f = parsedValue
+ x.Type = f
+ }
+ case "name":
+ {
+ var f string
+ f = in.String()
+ x.Name = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Chain struct {
+ Kind isChain_Kind
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Chain)(nil)
+ _ encoding.ProtoUnmarshaler = (*Chain)(nil)
+ _ json.Marshaler = (*Chain)(nil)
+ _ json.Unmarshaler = (*Chain)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Chain) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ if inner, ok := x.Kind.(*Chain_Raw); ok {
+ size += proto.BytesSize(1, inner.Raw)
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Chain) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Chain) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if inner, ok := x.Kind.(*Chain_Raw); ok {
+ if len(inner.Raw) != 0 {
+ mm.AppendBytes(1, inner.Raw)
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Chain) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Chain")
+ }
+ switch fc.FieldNum {
+ case 1: // Raw
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Raw")
+ }
+ x.Kind = &Chain_Raw{Raw: data}
+ }
+ }
+ return nil
+}
+func (x *Chain) GetKind() isChain_Kind {
+ if x != nil {
+ return x.Kind
+ }
+ return nil
+}
+func (x *Chain) SetKind(v isChain_Kind) {
+ x.Kind = v
+}
+func (x *Chain) GetRaw() *Chain_Raw {
+ if xx, ok := x.GetKind().(*Chain_Raw); ok {
+ return xx
+ }
+ return nil
+}
+func (x *Chain) SetRaw(v *Chain_Raw) {
+ x.Kind = v
+}
+func (x *Chain_Raw) GetRaw() []byte {
+ if x != nil {
+ return x.Raw
+ }
+ return nil
+}
+func (x *Chain_Raw) SetRaw(v []byte) {
+ x.Raw = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Chain) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Chain) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ switch xx := x.Kind.(type) {
+ case *Chain_Raw:
+ {
+ const prefix string = ",\"raw\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(xx.Raw)
+ }
+ default:
+ out.RawString("null")
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Chain) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Chain) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "raw":
+ xx := new(Chain_Raw)
+ x.Kind = xx
+ {
+ var f []byte
+ f = in.Bytes()
+ xx.Raw = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type isChain_Kind interface {
+ isChain_Kind()
+}
+
+type Chain_Raw struct {
+ Raw []byte
+}
+
+func (*Chain_Raw) isChain_Kind() {}
diff --git a/ape/grpc/types_frostfs_fuzz.go b/ape/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..b7bf367
--- /dev/null
+++ b/ape/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,45 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package ape
+
+func DoFuzzProtoChainTarget(data []byte) int {
+ msg := new(ChainTarget)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONChainTarget(data []byte) int {
+ msg := new(ChainTarget)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoChain(data []byte) int {
+ msg := new(Chain)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONChain(data []byte) int {
+ msg := new(Chain)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/ape/grpc/types_frostfs_test.go b/ape/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..93d7eea
--- /dev/null
+++ b/ape/grpc/types_frostfs_test.go
@@ -0,0 +1,31 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package ape
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoChainTarget(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoChainTarget(data)
+ })
+}
+func FuzzJSONChainTarget(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONChainTarget(data)
+ })
+}
+func FuzzProtoChain(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoChain(data)
+ })
+}
+func FuzzJSONChain(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONChain(data)
+ })
+}
diff --git a/apemanager/grpc/service.go b/apemanager/grpc/service.go
deleted file mode 100644
index bd77db0..0000000
--- a/apemanager/grpc/service.go
+++ /dev/null
@@ -1,106 +0,0 @@
-package apemanager
-
-import (
- ape "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
- session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
-)
-
-func (rb *AddChainRequest_Body) SetTarget(t *ape.ChainTarget) {
- rb.Target = t
-}
-
-func (rb *AddChainRequest_Body) SetChain(chain *ape.Chain) {
- rb.Chain = chain
-}
-
-func (r *AddChainRequest) SetBody(rb *AddChainRequest_Body) {
- r.Body = rb
-}
-
-func (r *AddChainRequest) SetMetaHeader(mh *session.RequestMetaHeader) {
- r.MetaHeader = mh
-}
-
-func (r *AddChainRequest) SetVerifyHeader(vh *session.RequestVerificationHeader) {
- r.VerifyHeader = vh
-}
-
-func (rb *AddChainResponse_Body) SetChainId(chainID []byte) {
- rb.ChainId = chainID
-}
-
-func (r *AddChainResponse) SetBody(rb *AddChainResponse_Body) {
- r.Body = rb
-}
-
-func (r *AddChainResponse) SetMetaHeader(mh *session.ResponseMetaHeader) {
- r.MetaHeader = mh
-}
-
-func (r *AddChainResponse) SetVerifyHeader(vh *session.ResponseVerificationHeader) {
- r.VerifyHeader = vh
-}
-
-func (rb *RemoveChainRequest_Body) SetTarget(t *ape.ChainTarget) {
- rb.Target = t
-}
-
-func (rb *RemoveChainRequest_Body) SetChainId(chainID []byte) {
- rb.ChainId = chainID
-}
-
-func (r *RemoveChainRequest) SetBody(rb *RemoveChainRequest_Body) {
- r.Body = rb
-}
-
-func (r *RemoveChainRequest) SetMetaHeader(mh *session.RequestMetaHeader) {
- r.MetaHeader = mh
-}
-
-func (r *RemoveChainRequest) SetVerifyHeader(vh *session.RequestVerificationHeader) {
- r.VerifyHeader = vh
-}
-
-func (r *RemoveChainResponse) SetBody(rb *RemoveChainResponse_Body) {
- r.Body = rb
-}
-
-func (r *RemoveChainResponse) SetMetaHeader(mh *session.ResponseMetaHeader) {
- r.MetaHeader = mh
-}
-
-func (r *RemoveChainResponse) SetVerifyHeader(vh *session.ResponseVerificationHeader) {
- r.VerifyHeader = vh
-}
-
-func (r *ListChainsRequest_Body) SetTarget(t *ape.ChainTarget) {
- r.Target = t
-}
-
-func (r *ListChainsRequest) SetBody(rb *ListChainsRequest_Body) {
- r.Body = rb
-}
-
-func (r *ListChainsRequest) SetMetaHeader(mh *session.RequestMetaHeader) {
- r.MetaHeader = mh
-}
-
-func (r *ListChainsRequest) SetVerifyHeader(vh *session.RequestVerificationHeader) {
- r.VerifyHeader = vh
-}
-
-func (rb *ListChainsResponse_Body) SetChains(chains []*ape.Chain) {
- rb.Chains = chains
-}
-
-func (r *ListChainsResponse) SetBody(rb *ListChainsResponse_Body) {
- r.Body = rb
-}
-
-func (r *ListChainsResponse) SetMetaHeader(mh *session.ResponseMetaHeader) {
- r.MetaHeader = mh
-}
-
-func (r *ListChainsResponse) SetVerifyHeader(vh *session.ResponseVerificationHeader) {
- r.VerifyHeader = vh
-}
diff --git a/apemanager/grpc/service.pb.go b/apemanager/grpc/service.pb.go
deleted file mode 100644
index 3baf193..0000000
--- a/apemanager/grpc/service.pb.go
+++ /dev/null
@@ -1,1129 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: apemanager/grpc/service.proto
-
-package apemanager
-
-import (
- grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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 AddChainRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The request's body.
- Body *AddChainRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *AddChainRequest) Reset() {
- *x = AddChainRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *AddChainRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*AddChainRequest) ProtoMessage() {}
-
-func (x *AddChainRequest) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use AddChainRequest.ProtoReflect.Descriptor instead.
-func (*AddChainRequest) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *AddChainRequest) GetBody() *AddChainRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *AddChainRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *AddChainRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-type AddChainResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The response's body.
- Body *AddChainResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *AddChainResponse) Reset() {
- *x = AddChainResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *AddChainResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*AddChainResponse) ProtoMessage() {}
-
-func (x *AddChainResponse) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use AddChainResponse.ProtoReflect.Descriptor instead.
-func (*AddChainResponse) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *AddChainResponse) GetBody() *AddChainResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *AddChainResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *AddChainResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-type RemoveChainRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The request's body.
- Body *RemoveChainRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *RemoveChainRequest) Reset() {
- *x = RemoveChainRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *RemoveChainRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*RemoveChainRequest) ProtoMessage() {}
-
-func (x *RemoveChainRequest) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use RemoveChainRequest.ProtoReflect.Descriptor instead.
-func (*RemoveChainRequest) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *RemoveChainRequest) GetBody() *RemoveChainRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *RemoveChainRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *RemoveChainRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-type RemoveChainResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The response's body.
- Body *RemoveChainResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *RemoveChainResponse) Reset() {
- *x = RemoveChainResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *RemoveChainResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*RemoveChainResponse) ProtoMessage() {}
-
-func (x *RemoveChainResponse) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use RemoveChainResponse.ProtoReflect.Descriptor instead.
-func (*RemoveChainResponse) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *RemoveChainResponse) GetBody() *RemoveChainResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *RemoveChainResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *RemoveChainResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-type ListChainsRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The request's body.
- Body *ListChainsRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *ListChainsRequest) Reset() {
- *x = ListChainsRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ListChainsRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ListChainsRequest) ProtoMessage() {}
-
-func (x *ListChainsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ListChainsRequest.ProtoReflect.Descriptor instead.
-func (*ListChainsRequest) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *ListChainsRequest) GetBody() *ListChainsRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *ListChainsRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *ListChainsRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-type ListChainsResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The response's body.
- Body *ListChainsResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *ListChainsResponse) Reset() {
- *x = ListChainsResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ListChainsResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ListChainsResponse) ProtoMessage() {}
-
-func (x *ListChainsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use ListChainsResponse.ProtoReflect.Descriptor instead.
-func (*ListChainsResponse) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *ListChainsResponse) GetBody() *ListChainsResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *ListChainsResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *ListChainsResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-type AddChainRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // A target for which a rule chain is added.
- Target *grpc1.ChainTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
- // The chain to set for the target.
- Chain *grpc1.Chain `protobuf:"bytes,2,opt,name=chain,proto3" json:"chain,omitempty"`
-}
-
-func (x *AddChainRequest_Body) Reset() {
- *x = AddChainRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *AddChainRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*AddChainRequest_Body) ProtoMessage() {}
-
-func (x *AddChainRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_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 AddChainRequest_Body.ProtoReflect.Descriptor instead.
-func (*AddChainRequest_Body) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *AddChainRequest_Body) GetTarget() *grpc1.ChainTarget {
- if x != nil {
- return x.Target
- }
- return nil
-}
-
-func (x *AddChainRequest_Body) GetChain() *grpc1.Chain {
- if x != nil {
- return x.Chain
- }
- return nil
-}
-
-type AddChainResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Chain ID assigned for the added rule chain.
- // If chain ID is left empty in the request, then
- // it will be generated.
- ChainId []byte `protobuf:"bytes,1,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
-}
-
-func (x *AddChainResponse_Body) Reset() {
- *x = AddChainResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *AddChainResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*AddChainResponse_Body) ProtoMessage() {}
-
-func (x *AddChainResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_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 AddChainResponse_Body.ProtoReflect.Descriptor instead.
-func (*AddChainResponse_Body) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (x *AddChainResponse_Body) GetChainId() []byte {
- if x != nil {
- return x.ChainId
- }
- return nil
-}
-
-type RemoveChainRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Target for which a rule chain is removed.
- Target *grpc1.ChainTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
- // Chain ID assigned for the rule chain.
- ChainId []byte `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"`
-}
-
-func (x *RemoveChainRequest_Body) Reset() {
- *x = RemoveChainRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *RemoveChainRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*RemoveChainRequest_Body) ProtoMessage() {}
-
-func (x *RemoveChainRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_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 RemoveChainRequest_Body.ProtoReflect.Descriptor instead.
-func (*RemoveChainRequest_Body) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{2, 0}
-}
-
-func (x *RemoveChainRequest_Body) GetTarget() *grpc1.ChainTarget {
- if x != nil {
- return x.Target
- }
- return nil
-}
-
-func (x *RemoveChainRequest_Body) GetChainId() []byte {
- if x != nil {
- return x.ChainId
- }
- return nil
-}
-
-// Since RemoveChain is an idempotent operation, then the only indicator that
-// operation could not be performed is an error returning to a client.
-type RemoveChainResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-}
-
-func (x *RemoveChainResponse_Body) Reset() {
- *x = RemoveChainResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *RemoveChainResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*RemoveChainResponse_Body) ProtoMessage() {}
-
-func (x *RemoveChainResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_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 RemoveChainResponse_Body.ProtoReflect.Descriptor instead.
-func (*RemoveChainResponse_Body) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{3, 0}
-}
-
-type ListChainsRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Target for which rule chains are listed.
- Target *grpc1.ChainTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
-}
-
-func (x *ListChainsRequest_Body) Reset() {
- *x = ListChainsRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ListChainsRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ListChainsRequest_Body) ProtoMessage() {}
-
-func (x *ListChainsRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_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 ListChainsRequest_Body.ProtoReflect.Descriptor instead.
-func (*ListChainsRequest_Body) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{4, 0}
-}
-
-func (x *ListChainsRequest_Body) GetTarget() *grpc1.ChainTarget {
- if x != nil {
- return x.Target
- }
- return nil
-}
-
-type ListChainsResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The list of chains defined for the reqeusted target.
- Chains []*grpc1.Chain `protobuf:"bytes,1,rep,name=chains,proto3" json:"chains,omitempty"`
-}
-
-func (x *ListChainsResponse_Body) Reset() {
- *x = ListChainsResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_apemanager_grpc_service_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ListChainsResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ListChainsResponse_Body) ProtoMessage() {}
-
-func (x *ListChainsResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_apemanager_grpc_service_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 ListChainsResponse_Body.ProtoReflect.Descriptor instead.
-func (*ListChainsResponse_Body) Descriptor() ([]byte, []int) {
- return file_apemanager_grpc_service_proto_rawDescGZIP(), []int{5, 0}
-}
-
-func (x *ListChainsResponse_Body) GetChains() []*grpc1.Chain {
- if x != nil {
- return x.Chains
- }
- return nil
-}
-
-var File_apemanager_grpc_service_proto protoreflect.FileDescriptor
-
-var file_apemanager_grpc_service_proto_rawDesc = []byte{
- 0x0a, 0x1d, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x67, 0x72, 0x70,
- 0x63, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
- 0x15, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x1a, 0x14, 0x61, 0x70, 0x65, 0x2f, 0x67, 0x72, 0x70, 0x63,
- 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x73, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd6, 0x02, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x43, 0x68,
- 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x62, 0x6f,
- 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x2e, 0x41, 0x64, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d,
- 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x68, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x33, 0x0a,
- 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e,
- 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x2e, 0x43,
- 0x68, 0x61, 0x69, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67,
- 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x05, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61,
- 0x70, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x05, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x22,
- 0x93, 0x02, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x68,
- 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79,
- 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52,
- 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x1a, 0x21, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68,
- 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x68,
- 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xca, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
- 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04,
- 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x66, 0x72, 0x6f,
- 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67,
- 0x65, 0x72, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79,
- 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65,
- 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x56, 0x0a, 0x04, 0x42, 0x6f,
- 0x64, 0x79, 0x12, 0x33, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x61, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52,
- 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x69, 0x6e,
- 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x68, 0x61, 0x69, 0x6e,
- 0x49, 0x64, 0x22, 0xfe, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x61,
- 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x62, 0x6f,
- 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12,
- 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76,
- 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x06, 0x0a, 0x04, 0x42,
- 0x6f, 0x64, 0x79, 0x22, 0xad, 0x02, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x69,
- 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x62, 0x6f, 0x64,
- 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e,
- 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b,
- 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x3b, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x33,
- 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
- 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x2e,
- 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72,
- 0x67, 0x65, 0x74, 0x22, 0xab, 0x02, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x69,
- 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x62, 0x6f,
- 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46,
- 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
- 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65,
- 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x35, 0x0a, 0x04, 0x42, 0x6f,
- 0x64, 0x79, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x61, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e,
- 0x73, 0x32, 0xb9, 0x02, 0x0a, 0x11, 0x41, 0x50, 0x45, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x43, 0x68,
- 0x61, 0x69, 0x6e, 0x12, 0x26, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x43,
- 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x66, 0x72,
- 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68,
- 0x61, 0x69, 0x6e, 0x12, 0x29, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x6d, 0x6f,
- 0x76, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a,
- 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x6d,
- 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x61,
- 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0a, 0x4c, 0x69,
- 0x73, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x28, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72,
- 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43,
- 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x4c, 0x5a,
- 0x4a, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66,
- 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66,
- 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32,
- 0x2f, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x67, 0x72, 0x70, 0x63,
- 0x3b, 0x61, 0x70, 0x65, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x33,
-}
-
-var (
- file_apemanager_grpc_service_proto_rawDescOnce sync.Once
- file_apemanager_grpc_service_proto_rawDescData = file_apemanager_grpc_service_proto_rawDesc
-)
-
-func file_apemanager_grpc_service_proto_rawDescGZIP() []byte {
- file_apemanager_grpc_service_proto_rawDescOnce.Do(func() {
- file_apemanager_grpc_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_apemanager_grpc_service_proto_rawDescData)
- })
- return file_apemanager_grpc_service_proto_rawDescData
-}
-
-var file_apemanager_grpc_service_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
-var file_apemanager_grpc_service_proto_goTypes = []interface{}{
- (*AddChainRequest)(nil), // 0: frostfs.v2.apemanager.AddChainRequest
- (*AddChainResponse)(nil), // 1: frostfs.v2.apemanager.AddChainResponse
- (*RemoveChainRequest)(nil), // 2: frostfs.v2.apemanager.RemoveChainRequest
- (*RemoveChainResponse)(nil), // 3: frostfs.v2.apemanager.RemoveChainResponse
- (*ListChainsRequest)(nil), // 4: frostfs.v2.apemanager.ListChainsRequest
- (*ListChainsResponse)(nil), // 5: frostfs.v2.apemanager.ListChainsResponse
- (*AddChainRequest_Body)(nil), // 6: frostfs.v2.apemanager.AddChainRequest.Body
- (*AddChainResponse_Body)(nil), // 7: frostfs.v2.apemanager.AddChainResponse.Body
- (*RemoveChainRequest_Body)(nil), // 8: frostfs.v2.apemanager.RemoveChainRequest.Body
- (*RemoveChainResponse_Body)(nil), // 9: frostfs.v2.apemanager.RemoveChainResponse.Body
- (*ListChainsRequest_Body)(nil), // 10: frostfs.v2.apemanager.ListChainsRequest.Body
- (*ListChainsResponse_Body)(nil), // 11: frostfs.v2.apemanager.ListChainsResponse.Body
- (*grpc.RequestMetaHeader)(nil), // 12: neo.fs.v2.session.RequestMetaHeader
- (*grpc.RequestVerificationHeader)(nil), // 13: neo.fs.v2.session.RequestVerificationHeader
- (*grpc.ResponseMetaHeader)(nil), // 14: neo.fs.v2.session.ResponseMetaHeader
- (*grpc.ResponseVerificationHeader)(nil), // 15: neo.fs.v2.session.ResponseVerificationHeader
- (*grpc1.ChainTarget)(nil), // 16: frostfs.v2.ape.ChainTarget
- (*grpc1.Chain)(nil), // 17: frostfs.v2.ape.Chain
-}
-var file_apemanager_grpc_service_proto_depIdxs = []int32{
- 6, // 0: frostfs.v2.apemanager.AddChainRequest.body:type_name -> frostfs.v2.apemanager.AddChainRequest.Body
- 12, // 1: frostfs.v2.apemanager.AddChainRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 13, // 2: frostfs.v2.apemanager.AddChainRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 7, // 3: frostfs.v2.apemanager.AddChainResponse.body:type_name -> frostfs.v2.apemanager.AddChainResponse.Body
- 14, // 4: frostfs.v2.apemanager.AddChainResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 15, // 5: frostfs.v2.apemanager.AddChainResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 8, // 6: frostfs.v2.apemanager.RemoveChainRequest.body:type_name -> frostfs.v2.apemanager.RemoveChainRequest.Body
- 12, // 7: frostfs.v2.apemanager.RemoveChainRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 13, // 8: frostfs.v2.apemanager.RemoveChainRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 9, // 9: frostfs.v2.apemanager.RemoveChainResponse.body:type_name -> frostfs.v2.apemanager.RemoveChainResponse.Body
- 14, // 10: frostfs.v2.apemanager.RemoveChainResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 15, // 11: frostfs.v2.apemanager.RemoveChainResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 10, // 12: frostfs.v2.apemanager.ListChainsRequest.body:type_name -> frostfs.v2.apemanager.ListChainsRequest.Body
- 12, // 13: frostfs.v2.apemanager.ListChainsRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 13, // 14: frostfs.v2.apemanager.ListChainsRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 11, // 15: frostfs.v2.apemanager.ListChainsResponse.body:type_name -> frostfs.v2.apemanager.ListChainsResponse.Body
- 14, // 16: frostfs.v2.apemanager.ListChainsResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 15, // 17: frostfs.v2.apemanager.ListChainsResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 16, // 18: frostfs.v2.apemanager.AddChainRequest.Body.target:type_name -> frostfs.v2.ape.ChainTarget
- 17, // 19: frostfs.v2.apemanager.AddChainRequest.Body.chain:type_name -> frostfs.v2.ape.Chain
- 16, // 20: frostfs.v2.apemanager.RemoveChainRequest.Body.target:type_name -> frostfs.v2.ape.ChainTarget
- 16, // 21: frostfs.v2.apemanager.ListChainsRequest.Body.target:type_name -> frostfs.v2.ape.ChainTarget
- 17, // 22: frostfs.v2.apemanager.ListChainsResponse.Body.chains:type_name -> frostfs.v2.ape.Chain
- 0, // 23: frostfs.v2.apemanager.APEManagerService.AddChain:input_type -> frostfs.v2.apemanager.AddChainRequest
- 2, // 24: frostfs.v2.apemanager.APEManagerService.RemoveChain:input_type -> frostfs.v2.apemanager.RemoveChainRequest
- 4, // 25: frostfs.v2.apemanager.APEManagerService.ListChains:input_type -> frostfs.v2.apemanager.ListChainsRequest
- 1, // 26: frostfs.v2.apemanager.APEManagerService.AddChain:output_type -> frostfs.v2.apemanager.AddChainResponse
- 3, // 27: frostfs.v2.apemanager.APEManagerService.RemoveChain:output_type -> frostfs.v2.apemanager.RemoveChainResponse
- 5, // 28: frostfs.v2.apemanager.APEManagerService.ListChains:output_type -> frostfs.v2.apemanager.ListChainsResponse
- 26, // [26:29] is the sub-list for method output_type
- 23, // [23:26] is the sub-list for method input_type
- 23, // [23:23] is the sub-list for extension type_name
- 23, // [23:23] is the sub-list for extension extendee
- 0, // [0:23] is the sub-list for field type_name
-}
-
-func init() { file_apemanager_grpc_service_proto_init() }
-func file_apemanager_grpc_service_proto_init() {
- if File_apemanager_grpc_service_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_apemanager_grpc_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AddChainRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AddChainResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RemoveChainRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RemoveChainResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListChainsRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListChainsResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AddChainRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AddChainResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RemoveChainRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RemoveChainResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListChainsRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_apemanager_grpc_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListChainsResponse_Body); 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_apemanager_grpc_service_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 12,
- NumExtensions: 0,
- NumServices: 1,
- },
- GoTypes: file_apemanager_grpc_service_proto_goTypes,
- DependencyIndexes: file_apemanager_grpc_service_proto_depIdxs,
- MessageInfos: file_apemanager_grpc_service_proto_msgTypes,
- }.Build()
- File_apemanager_grpc_service_proto = out.File
- file_apemanager_grpc_service_proto_rawDesc = nil
- file_apemanager_grpc_service_proto_goTypes = nil
- file_apemanager_grpc_service_proto_depIdxs = nil
-}
diff --git a/apemanager/grpc/service_frostfs.pb.go b/apemanager/grpc/service_frostfs.pb.go
new file mode 100644
index 0000000..380ba30
--- /dev/null
+++ b/apemanager/grpc/service_frostfs.pb.go
@@ -0,0 +1,2183 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package apemanager
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
+ grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+type AddChainRequest_Body struct {
+ Target *grpc.ChainTarget `json:"target"`
+ Chain *grpc.Chain `json:"chain"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*AddChainRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*AddChainRequest_Body)(nil)
+ _ json.Marshaler = (*AddChainRequest_Body)(nil)
+ _ json.Unmarshaler = (*AddChainRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *AddChainRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Target)
+ size += proto.NestedStructureSize(2, x.Chain)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *AddChainRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *AddChainRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Target != nil && x.Target.StableSize() != 0 {
+ x.Target.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Chain != nil && x.Chain.StableSize() != 0 {
+ x.Chain.EmitProtobuf(mm.AppendMessage(2))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *AddChainRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "AddChainRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Target
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Target")
+ }
+ x.Target = new(grpc.ChainTarget)
+ if err := x.Target.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Chain
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Chain")
+ }
+ x.Chain = new(grpc.Chain)
+ if err := x.Chain.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *AddChainRequest_Body) GetTarget() *grpc.ChainTarget {
+ if x != nil {
+ return x.Target
+ }
+ return nil
+}
+func (x *AddChainRequest_Body) SetTarget(v *grpc.ChainTarget) {
+ x.Target = v
+}
+func (x *AddChainRequest_Body) GetChain() *grpc.Chain {
+ if x != nil {
+ return x.Chain
+ }
+ return nil
+}
+func (x *AddChainRequest_Body) SetChain(v *grpc.Chain) {
+ x.Chain = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *AddChainRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *AddChainRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"target\":"
+ out.RawString(prefix[1:])
+ x.Target.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"chain\":"
+ out.RawString(prefix)
+ x.Chain.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *AddChainRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *AddChainRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "target":
+ {
+ var f *grpc.ChainTarget
+ f = new(grpc.ChainTarget)
+ f.UnmarshalEasyJSON(in)
+ x.Target = f
+ }
+ case "chain":
+ {
+ var f *grpc.Chain
+ f = new(grpc.Chain)
+ f.UnmarshalEasyJSON(in)
+ x.Chain = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type AddChainRequest struct {
+ Body *AddChainRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*AddChainRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*AddChainRequest)(nil)
+ _ json.Marshaler = (*AddChainRequest)(nil)
+ _ json.Unmarshaler = (*AddChainRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *AddChainRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *AddChainRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *AddChainRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *AddChainRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *AddChainRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *AddChainRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "AddChainRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(AddChainRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *AddChainRequest) GetBody() *AddChainRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *AddChainRequest) SetBody(v *AddChainRequest_Body) {
+ x.Body = v
+}
+func (x *AddChainRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *AddChainRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *AddChainRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *AddChainRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *AddChainRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *AddChainRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *AddChainRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *AddChainRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *AddChainRequest_Body
+ f = new(AddChainRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type AddChainResponse_Body struct {
+ ChainId []byte `json:"chainId"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*AddChainResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*AddChainResponse_Body)(nil)
+ _ json.Marshaler = (*AddChainResponse_Body)(nil)
+ _ json.Unmarshaler = (*AddChainResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *AddChainResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.ChainId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *AddChainResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *AddChainResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.ChainId) != 0 {
+ mm.AppendBytes(1, x.ChainId)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *AddChainResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "AddChainResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // ChainId
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ChainId")
+ }
+ x.ChainId = data
+ }
+ }
+ return nil
+}
+func (x *AddChainResponse_Body) GetChainId() []byte {
+ if x != nil {
+ return x.ChainId
+ }
+ return nil
+}
+func (x *AddChainResponse_Body) SetChainId(v []byte) {
+ x.ChainId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *AddChainResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *AddChainResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"chainId\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.ChainId)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *AddChainResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *AddChainResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "chainId":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.ChainId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type AddChainResponse struct {
+ Body *AddChainResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*AddChainResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*AddChainResponse)(nil)
+ _ json.Marshaler = (*AddChainResponse)(nil)
+ _ json.Unmarshaler = (*AddChainResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *AddChainResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *AddChainResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *AddChainResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *AddChainResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *AddChainResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *AddChainResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "AddChainResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(AddChainResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *AddChainResponse) GetBody() *AddChainResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *AddChainResponse) SetBody(v *AddChainResponse_Body) {
+ x.Body = v
+}
+func (x *AddChainResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *AddChainResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *AddChainResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *AddChainResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *AddChainResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *AddChainResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *AddChainResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *AddChainResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *AddChainResponse_Body
+ f = new(AddChainResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type RemoveChainRequest_Body struct {
+ Target *grpc.ChainTarget `json:"target"`
+ ChainId []byte `json:"chainId"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*RemoveChainRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*RemoveChainRequest_Body)(nil)
+ _ json.Marshaler = (*RemoveChainRequest_Body)(nil)
+ _ json.Unmarshaler = (*RemoveChainRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *RemoveChainRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Target)
+ size += proto.BytesSize(2, x.ChainId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *RemoveChainRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *RemoveChainRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Target != nil && x.Target.StableSize() != 0 {
+ x.Target.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if len(x.ChainId) != 0 {
+ mm.AppendBytes(2, x.ChainId)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *RemoveChainRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "RemoveChainRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Target
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Target")
+ }
+ x.Target = new(grpc.ChainTarget)
+ if err := x.Target.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // ChainId
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ChainId")
+ }
+ x.ChainId = data
+ }
+ }
+ return nil
+}
+func (x *RemoveChainRequest_Body) GetTarget() *grpc.ChainTarget {
+ if x != nil {
+ return x.Target
+ }
+ return nil
+}
+func (x *RemoveChainRequest_Body) SetTarget(v *grpc.ChainTarget) {
+ x.Target = v
+}
+func (x *RemoveChainRequest_Body) GetChainId() []byte {
+ if x != nil {
+ return x.ChainId
+ }
+ return nil
+}
+func (x *RemoveChainRequest_Body) SetChainId(v []byte) {
+ x.ChainId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *RemoveChainRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *RemoveChainRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"target\":"
+ out.RawString(prefix[1:])
+ x.Target.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"chainId\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.ChainId)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *RemoveChainRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *RemoveChainRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "target":
+ {
+ var f *grpc.ChainTarget
+ f = new(grpc.ChainTarget)
+ f.UnmarshalEasyJSON(in)
+ x.Target = f
+ }
+ case "chainId":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.ChainId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type RemoveChainRequest struct {
+ Body *RemoveChainRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*RemoveChainRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*RemoveChainRequest)(nil)
+ _ json.Marshaler = (*RemoveChainRequest)(nil)
+ _ json.Unmarshaler = (*RemoveChainRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *RemoveChainRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *RemoveChainRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *RemoveChainRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *RemoveChainRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *RemoveChainRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *RemoveChainRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "RemoveChainRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(RemoveChainRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *RemoveChainRequest) GetBody() *RemoveChainRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *RemoveChainRequest) SetBody(v *RemoveChainRequest_Body) {
+ x.Body = v
+}
+func (x *RemoveChainRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *RemoveChainRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *RemoveChainRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *RemoveChainRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *RemoveChainRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *RemoveChainRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *RemoveChainRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *RemoveChainRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *RemoveChainRequest_Body
+ f = new(RemoveChainRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type RemoveChainResponse_Body struct {
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*RemoveChainResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*RemoveChainResponse_Body)(nil)
+ _ json.Marshaler = (*RemoveChainResponse_Body)(nil)
+ _ json.Unmarshaler = (*RemoveChainResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *RemoveChainResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *RemoveChainResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *RemoveChainResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *RemoveChainResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "RemoveChainResponse_Body")
+ }
+ switch fc.FieldNum {
+ }
+ }
+ return nil
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *RemoveChainResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *RemoveChainResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *RemoveChainResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *RemoveChainResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type RemoveChainResponse struct {
+ Body *RemoveChainResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*RemoveChainResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*RemoveChainResponse)(nil)
+ _ json.Marshaler = (*RemoveChainResponse)(nil)
+ _ json.Unmarshaler = (*RemoveChainResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *RemoveChainResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *RemoveChainResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *RemoveChainResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *RemoveChainResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *RemoveChainResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *RemoveChainResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "RemoveChainResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(RemoveChainResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *RemoveChainResponse) GetBody() *RemoveChainResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *RemoveChainResponse) SetBody(v *RemoveChainResponse_Body) {
+ x.Body = v
+}
+func (x *RemoveChainResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *RemoveChainResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *RemoveChainResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *RemoveChainResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *RemoveChainResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *RemoveChainResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *RemoveChainResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *RemoveChainResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *RemoveChainResponse_Body
+ f = new(RemoveChainResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ListChainsRequest_Body struct {
+ Target *grpc.ChainTarget `json:"target"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ListChainsRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*ListChainsRequest_Body)(nil)
+ _ json.Marshaler = (*ListChainsRequest_Body)(nil)
+ _ json.Unmarshaler = (*ListChainsRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ListChainsRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Target)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ListChainsRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ListChainsRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Target != nil && x.Target.StableSize() != 0 {
+ x.Target.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ListChainsRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ListChainsRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Target
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Target")
+ }
+ x.Target = new(grpc.ChainTarget)
+ if err := x.Target.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ListChainsRequest_Body) GetTarget() *grpc.ChainTarget {
+ if x != nil {
+ return x.Target
+ }
+ return nil
+}
+func (x *ListChainsRequest_Body) SetTarget(v *grpc.ChainTarget) {
+ x.Target = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ListChainsRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ListChainsRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"target\":"
+ out.RawString(prefix[1:])
+ x.Target.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ListChainsRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ListChainsRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "target":
+ {
+ var f *grpc.ChainTarget
+ f = new(grpc.ChainTarget)
+ f.UnmarshalEasyJSON(in)
+ x.Target = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ListChainsRequest struct {
+ Body *ListChainsRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ListChainsRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*ListChainsRequest)(nil)
+ _ json.Marshaler = (*ListChainsRequest)(nil)
+ _ json.Unmarshaler = (*ListChainsRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ListChainsRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *ListChainsRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *ListChainsRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ListChainsRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ListChainsRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ListChainsRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ListChainsRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(ListChainsRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ListChainsRequest) GetBody() *ListChainsRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *ListChainsRequest) SetBody(v *ListChainsRequest_Body) {
+ x.Body = v
+}
+func (x *ListChainsRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *ListChainsRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *ListChainsRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *ListChainsRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ListChainsRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ListChainsRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ListChainsRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ListChainsRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *ListChainsRequest_Body
+ f = new(ListChainsRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ListChainsResponse_Body struct {
+ Chains []*grpc.Chain `json:"chains"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ListChainsResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*ListChainsResponse_Body)(nil)
+ _ json.Marshaler = (*ListChainsResponse_Body)(nil)
+ _ json.Unmarshaler = (*ListChainsResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ListChainsResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ for i := range x.Chains {
+ size += proto.NestedStructureSize(1, x.Chains[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ListChainsResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ListChainsResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ for i := range x.Chains {
+ if x.Chains[i] != nil && x.Chains[i].StableSize() != 0 {
+ x.Chains[i].EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ListChainsResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ListChainsResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Chains
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Chains")
+ }
+ x.Chains = append(x.Chains, new(grpc.Chain))
+ ff := x.Chains[len(x.Chains)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ListChainsResponse_Body) GetChains() []*grpc.Chain {
+ if x != nil {
+ return x.Chains
+ }
+ return nil
+}
+func (x *ListChainsResponse_Body) SetChains(v []*grpc.Chain) {
+ x.Chains = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ListChainsResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ListChainsResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"chains\":"
+ out.RawString(prefix[1:])
+ out.RawByte('[')
+ for i := range x.Chains {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Chains[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ListChainsResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ListChainsResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "chains":
+ {
+ var f *grpc.Chain
+ var list []*grpc.Chain
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(grpc.Chain)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Chains = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ListChainsResponse struct {
+ Body *ListChainsResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ListChainsResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*ListChainsResponse)(nil)
+ _ json.Marshaler = (*ListChainsResponse)(nil)
+ _ json.Unmarshaler = (*ListChainsResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ListChainsResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *ListChainsResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *ListChainsResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ListChainsResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ListChainsResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ListChainsResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ListChainsResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(ListChainsResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ListChainsResponse) GetBody() *ListChainsResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *ListChainsResponse) SetBody(v *ListChainsResponse_Body) {
+ x.Body = v
+}
+func (x *ListChainsResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *ListChainsResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *ListChainsResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *ListChainsResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ListChainsResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ListChainsResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ListChainsResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ListChainsResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *ListChainsResponse_Body
+ f = new(ListChainsResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/apemanager/grpc/service_frostfs_fuzz.go b/apemanager/grpc/service_frostfs_fuzz.go
new file mode 100644
index 0000000..08af63e
--- /dev/null
+++ b/apemanager/grpc/service_frostfs_fuzz.go
@@ -0,0 +1,121 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package apemanager
+
+func DoFuzzProtoAddChainRequest(data []byte) int {
+ msg := new(AddChainRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONAddChainRequest(data []byte) int {
+ msg := new(AddChainRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoAddChainResponse(data []byte) int {
+ msg := new(AddChainResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONAddChainResponse(data []byte) int {
+ msg := new(AddChainResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoRemoveChainRequest(data []byte) int {
+ msg := new(RemoveChainRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONRemoveChainRequest(data []byte) int {
+ msg := new(RemoveChainRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoRemoveChainResponse(data []byte) int {
+ msg := new(RemoveChainResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONRemoveChainResponse(data []byte) int {
+ msg := new(RemoveChainResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoListChainsRequest(data []byte) int {
+ msg := new(ListChainsRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONListChainsRequest(data []byte) int {
+ msg := new(ListChainsRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoListChainsResponse(data []byte) int {
+ msg := new(ListChainsResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONListChainsResponse(data []byte) int {
+ msg := new(ListChainsResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/apemanager/grpc/service_frostfs_test.go b/apemanager/grpc/service_frostfs_test.go
new file mode 100644
index 0000000..5c4653c
--- /dev/null
+++ b/apemanager/grpc/service_frostfs_test.go
@@ -0,0 +1,71 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package apemanager
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoAddChainRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoAddChainRequest(data)
+ })
+}
+func FuzzJSONAddChainRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONAddChainRequest(data)
+ })
+}
+func FuzzProtoAddChainResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoAddChainResponse(data)
+ })
+}
+func FuzzJSONAddChainResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONAddChainResponse(data)
+ })
+}
+func FuzzProtoRemoveChainRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoRemoveChainRequest(data)
+ })
+}
+func FuzzJSONRemoveChainRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONRemoveChainRequest(data)
+ })
+}
+func FuzzProtoRemoveChainResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoRemoveChainResponse(data)
+ })
+}
+func FuzzJSONRemoveChainResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONRemoveChainResponse(data)
+ })
+}
+func FuzzProtoListChainsRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoListChainsRequest(data)
+ })
+}
+func FuzzJSONListChainsRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONListChainsRequest(data)
+ })
+}
+func FuzzProtoListChainsResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoListChainsResponse(data)
+ })
+}
+func FuzzJSONListChainsResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONListChainsResponse(data)
+ })
+}
diff --git a/container/grpc/service.go b/container/grpc/service.go
deleted file mode 100644
index d19add1..0000000
--- a/container/grpc/service.go
+++ /dev/null
@@ -1,234 +0,0 @@
-package container
-
-import (
- acl "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
-)
-
-// SetContainer sets container of the request.
-func (m *PutRequest_Body) SetContainer(v *Container) {
- m.Container = v
-}
-
-// SetSignature sets signature of the container structure.
-func (m *PutRequest_Body) SetSignature(v *refs.SignatureRFC6979) {
- m.Signature = v
-}
-
-// SetBody sets body of the request.
-func (m *PutRequest) SetBody(v *PutRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *PutRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *PutRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetContainerId sets identifier of the container.
-func (m *PutResponse_Body) SetContainerId(v *refs.ContainerID) {
- m.ContainerId = v
-}
-
-// SetBody sets body of the response.
-func (m *PutResponse) SetBody(v *PutResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *PutResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *PutResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetContainerId sets identifier of the container.
-func (m *DeleteRequest_Body) SetContainerId(v *refs.ContainerID) {
- m.ContainerId = v
-}
-
-// SetSignature sets signature of the container identifier.
-func (m *DeleteRequest_Body) SetSignature(v *refs.SignatureRFC6979) {
- m.Signature = v
-}
-
-// SetBody sets body of the request.
-func (m *DeleteRequest) SetBody(v *DeleteRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *DeleteRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *DeleteRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetBody sets body of the response.
-func (m *DeleteResponse) SetBody(v *DeleteResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *DeleteResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *DeleteResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetContainerId sets identifier of the container.
-func (m *GetRequest_Body) SetContainerId(v *refs.ContainerID) {
- m.ContainerId = v
-}
-
-// SetBody sets body of the request.
-func (m *GetRequest) SetBody(v *GetRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *GetRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *GetRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetContainer sets the container structure.
-func (m *GetResponse_Body) SetContainer(v *Container) {
- m.Container = v
-}
-
-// SetSessionToken sets token of the session within which requested
-// container was created.
-func (m *GetResponse_Body) SetSessionToken(v *session.SessionToken) {
- m.SessionToken = v
-}
-
-// SetSignature sets signature of the container structure.
-func (m *GetResponse_Body) SetSignature(v *refs.SignatureRFC6979) {
- m.Signature = v
-}
-
-// SetBody sets body of the response.
-func (m *GetResponse) SetBody(v *GetResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *GetResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *GetResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetOwnerId sets identifier of the container owner.
-func (m *ListRequest_Body) SetOwnerId(v *refs.OwnerID) {
- m.OwnerId = v
-}
-
-// SetBody sets body of the request.
-func (m *ListRequest) SetBody(v *ListRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *ListRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *ListRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetContainerIds sets list of the container identifiers.
-func (m *ListResponse_Body) SetContainerIds(v []*refs.ContainerID) {
- m.ContainerIds = v
-}
-
-// SetBody sets body of the response.
-func (m *ListResponse) SetBody(v *ListResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *ListResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *ListResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetContainerId sets identifier of the container.
-func (m *GetExtendedACLRequest_Body) SetContainerId(v *refs.ContainerID) {
- m.ContainerId = v
-}
-
-// SetBody sets body of the request.
-func (m *GetExtendedACLRequest) SetBody(v *GetExtendedACLRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *GetExtendedACLRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *GetExtendedACLRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetEacl sets eACL table structure.
-func (m *GetExtendedACLResponse_Body) SetEacl(v *acl.EACLTable) {
- m.Eacl = v
-}
-
-// SetSignature sets signature of the eACL table structure.
-func (m *GetExtendedACLResponse_Body) SetSignature(v *refs.SignatureRFC6979) {
- m.Signature = v
-}
-
-// SetSessionToken sets token of the session within which requested
-// eACl table was set.
-func (m *GetExtendedACLResponse_Body) SetSessionToken(v *session.SessionToken) {
- m.SessionToken = v
-}
-
-// SetBody sets body of the response.
-func (m *GetExtendedACLResponse) SetBody(v *GetExtendedACLResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *GetExtendedACLResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *GetExtendedACLResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
diff --git a/container/grpc/service.pb.go b/container/grpc/service.pb.go
deleted file mode 100644
index 3bf1e14..0000000
--- a/container/grpc/service.pb.go
+++ /dev/null
@@ -1,1909 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: container/grpc/service.proto
-
-package container
-
-import (
- grpc2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
- grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// New NeoFS Container creation request
-type PutRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of container put request message.
- Body *PutRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *PutRequest) Reset() {
- *x = PutRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutRequest) ProtoMessage() {}
-
-func (x *PutRequest) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use PutRequest.ProtoReflect.Descriptor instead.
-func (*PutRequest) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *PutRequest) GetBody() *PutRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *PutRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *PutRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// New NeoFS Container creation response
-type PutResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of container put response message.
- Body *PutResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *PutResponse) Reset() {
- *x = PutResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutResponse) ProtoMessage() {}
-
-func (x *PutResponse) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use PutResponse.ProtoReflect.Descriptor instead.
-func (*PutResponse) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *PutResponse) GetBody() *PutResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *PutResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *PutResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Container removal request
-type DeleteRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of container delete request message.
- Body *DeleteRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *DeleteRequest) Reset() {
- *x = DeleteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DeleteRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteRequest) ProtoMessage() {}
-
-func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.
-func (*DeleteRequest) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *DeleteRequest) GetBody() *DeleteRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *DeleteRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *DeleteRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// `DeleteResponse` has an empty body because delete operation is asynchronous
-// and done via consensus in Inner Ring nodes.
-type DeleteResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of container delete response message.
- Body *DeleteResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *DeleteResponse) Reset() {
- *x = DeleteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DeleteResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteResponse) ProtoMessage() {}
-
-func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead.
-func (*DeleteResponse) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *DeleteResponse) GetBody() *DeleteResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *DeleteResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *DeleteResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Get container structure
-type GetRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of container get request message.
- Body *GetRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetRequest) Reset() {
- *x = GetRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRequest) ProtoMessage() {}
-
-func (x *GetRequest) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.
-func (*GetRequest) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *GetRequest) GetBody() *GetRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Get container structure
-type GetResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of container get response message.
- Body *GetResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetResponse) Reset() {
- *x = GetResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetResponse) ProtoMessage() {}
-
-func (x *GetResponse) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.
-func (*GetResponse) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *GetResponse) GetBody() *GetResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// List containers
-type ListRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of list containers request message
- Body *ListRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *ListRequest) Reset() {
- *x = ListRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ListRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ListRequest) ProtoMessage() {}
-
-func (x *ListRequest) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 ListRequest.ProtoReflect.Descriptor instead.
-func (*ListRequest) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *ListRequest) GetBody() *ListRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *ListRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *ListRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// List containers
-type ListResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of list containers response message.
- Body *ListResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *ListResponse) Reset() {
- *x = ListResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ListResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ListResponse) ProtoMessage() {}
-
-func (x *ListResponse) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 ListResponse.ProtoReflect.Descriptor instead.
-func (*ListResponse) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *ListResponse) GetBody() *ListResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *ListResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *ListResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Get Extended ACL
-type GetExtendedACLRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get extended acl request message.
- Body *GetExtendedACLRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetExtendedACLRequest) Reset() {
- *x = GetExtendedACLRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetExtendedACLRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetExtendedACLRequest) ProtoMessage() {}
-
-func (x *GetExtendedACLRequest) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 GetExtendedACLRequest.ProtoReflect.Descriptor instead.
-func (*GetExtendedACLRequest) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{8}
-}
-
-func (x *GetExtendedACLRequest) GetBody() *GetExtendedACLRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetExtendedACLRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetExtendedACLRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Get Extended ACL
-type GetExtendedACLResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get extended acl response message.
- Body *GetExtendedACLResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetExtendedACLResponse) Reset() {
- *x = GetExtendedACLResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetExtendedACLResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetExtendedACLResponse) ProtoMessage() {}
-
-func (x *GetExtendedACLResponse) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 GetExtendedACLResponse.ProtoReflect.Descriptor instead.
-func (*GetExtendedACLResponse) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{9}
-}
-
-func (x *GetExtendedACLResponse) GetBody() *GetExtendedACLResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetExtendedACLResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetExtendedACLResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Container creation request has container structure's signature as a
-// separate field. It's not stored in sidechain, just verified on container
-// creation by `Container` smart contract. `ContainerID` is a SHA256 hash of
-// the stable-marshalled container strucutre, hence there is no need for
-// additional signature checks.
-type PutRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Container structure to register in NeoFS
- Container *Container `protobuf:"bytes,1,opt,name=container,proto3" json:"container,omitempty"`
- // Signature of a stable-marshalled container according to RFC-6979.
- Signature *grpc1.SignatureRFC6979 `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
-}
-
-func (x *PutRequest_Body) Reset() {
- *x = PutRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutRequest_Body) ProtoMessage() {}
-
-func (x *PutRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 PutRequest_Body.ProtoReflect.Descriptor instead.
-func (*PutRequest_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *PutRequest_Body) GetContainer() *Container {
- if x != nil {
- return x.Container
- }
- return nil
-}
-
-func (x *PutRequest_Body) GetSignature() *grpc1.SignatureRFC6979 {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-// Container put response body contains information about the newly registered
-// container as seen by `Container` smart contract. `ContainerID` can be
-// calculated beforehand from the container structure and compared to the one
-// returned here to make sure everything has been done as expected.
-type PutResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Unique identifier of the newly created container
- ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
-}
-
-func (x *PutResponse_Body) Reset() {
- *x = PutResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutResponse_Body) ProtoMessage() {}
-
-func (x *PutResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 PutResponse_Body.ProtoReflect.Descriptor instead.
-func (*PutResponse_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (x *PutResponse_Body) GetContainerId() *grpc1.ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-
-// Container removal request body has signed `ContainerID` as a proof of
-// the container owner's intent. The signature will be verified by `Container`
-// smart contract, so signing algorithm must be supported by NeoVM.
-type DeleteRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier of the container to delete from NeoFS
- ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
- // `ContainerID` signed with the container owner's key according to
- // RFC-6979.
- Signature *grpc1.SignatureRFC6979 `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
-}
-
-func (x *DeleteRequest_Body) Reset() {
- *x = DeleteRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DeleteRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteRequest_Body) ProtoMessage() {}
-
-func (x *DeleteRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 DeleteRequest_Body.ProtoReflect.Descriptor instead.
-func (*DeleteRequest_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{2, 0}
-}
-
-func (x *DeleteRequest_Body) GetContainerId() *grpc1.ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-
-func (x *DeleteRequest_Body) GetSignature() *grpc1.SignatureRFC6979 {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-// `DeleteResponse` has an empty body because delete operation is asynchronous
-// and done via consensus in Inner Ring nodes.
-type DeleteResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-}
-
-func (x *DeleteResponse_Body) Reset() {
- *x = DeleteResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DeleteResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteResponse_Body) ProtoMessage() {}
-
-func (x *DeleteResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 DeleteResponse_Body.ProtoReflect.Descriptor instead.
-func (*DeleteResponse_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{3, 0}
-}
-
-// Get container structure request body.
-type GetRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier of the container to get
- ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
-}
-
-func (x *GetRequest_Body) Reset() {
- *x = GetRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRequest_Body) ProtoMessage() {}
-
-func (x *GetRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 GetRequest_Body.ProtoReflect.Descriptor instead.
-func (*GetRequest_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{4, 0}
-}
-
-func (x *GetRequest_Body) GetContainerId() *grpc1.ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-
-// Get container response body does not have container structure signature. It
-// has been already verified upon container creation.
-type GetResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Requested container structure
- Container *Container `protobuf:"bytes,1,opt,name=container,proto3" json:"container,omitempty"`
- // Signature of a stable-marshalled container according to RFC-6979.
- Signature *grpc1.SignatureRFC6979 `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
- // Session token if the container has been created within the session
- SessionToken *grpc.SessionToken `protobuf:"bytes,3,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
-}
-
-func (x *GetResponse_Body) Reset() {
- *x = GetResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetResponse_Body) ProtoMessage() {}
-
-func (x *GetResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 GetResponse_Body.ProtoReflect.Descriptor instead.
-func (*GetResponse_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{5, 0}
-}
-
-func (x *GetResponse_Body) GetContainer() *Container {
- if x != nil {
- return x.Container
- }
- return nil
-}
-
-func (x *GetResponse_Body) GetSignature() *grpc1.SignatureRFC6979 {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-func (x *GetResponse_Body) GetSessionToken() *grpc.SessionToken {
- if x != nil {
- return x.SessionToken
- }
- return nil
-}
-
-// List containers request body.
-type ListRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier of the container owner
- OwnerId *grpc1.OwnerID `protobuf:"bytes,1,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
-}
-
-func (x *ListRequest_Body) Reset() {
- *x = ListRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ListRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ListRequest_Body) ProtoMessage() {}
-
-func (x *ListRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 ListRequest_Body.ProtoReflect.Descriptor instead.
-func (*ListRequest_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{6, 0}
-}
-
-func (x *ListRequest_Body) GetOwnerId() *grpc1.OwnerID {
- if x != nil {
- return x.OwnerId
- }
- return nil
-}
-
-// List containers response body.
-type ListResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // List of `ContainerID`s belonging to the requested `OwnerID`
- ContainerIds []*grpc1.ContainerID `protobuf:"bytes,1,rep,name=container_ids,json=containerIds,proto3" json:"container_ids,omitempty"`
-}
-
-func (x *ListResponse_Body) Reset() {
- *x = ListResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ListResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ListResponse_Body) ProtoMessage() {}
-
-func (x *ListResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 ListResponse_Body.ProtoReflect.Descriptor instead.
-func (*ListResponse_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{7, 0}
-}
-
-func (x *ListResponse_Body) GetContainerIds() []*grpc1.ContainerID {
- if x != nil {
- return x.ContainerIds
- }
- return nil
-}
-
-// Get Extended ACL request body
-type GetExtendedACLRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier of the container having Extended ACL
- ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
-}
-
-func (x *GetExtendedACLRequest_Body) Reset() {
- *x = GetExtendedACLRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetExtendedACLRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetExtendedACLRequest_Body) ProtoMessage() {}
-
-func (x *GetExtendedACLRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 GetExtendedACLRequest_Body.ProtoReflect.Descriptor instead.
-func (*GetExtendedACLRequest_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{8, 0}
-}
-
-func (x *GetExtendedACLRequest_Body) GetContainerId() *grpc1.ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-
-// Get Extended ACL Response body can be empty if the requested container does
-// not have Extended ACL Table attached or Extended ACL has not been allowed
-// at the time of container creation.
-type GetExtendedACLResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Extended ACL requested, if available
- Eacl *grpc2.EACLTable `protobuf:"bytes,1,opt,name=eacl,proto3" json:"eacl,omitempty"`
- // Signature of stable-marshalled Extended ACL according to RFC-6979.
- Signature *grpc1.SignatureRFC6979 `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
- // Session token if Extended ACL was set within a session
- SessionToken *grpc.SessionToken `protobuf:"bytes,3,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
-}
-
-func (x *GetExtendedACLResponse_Body) Reset() {
- *x = GetExtendedACLResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_service_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetExtendedACLResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetExtendedACLResponse_Body) ProtoMessage() {}
-
-func (x *GetExtendedACLResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_service_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 GetExtendedACLResponse_Body.ProtoReflect.Descriptor instead.
-func (*GetExtendedACLResponse_Body) Descriptor() ([]byte, []int) {
- return file_container_grpc_service_proto_rawDescGZIP(), []int{9, 0}
-}
-
-func (x *GetExtendedACLResponse_Body) GetEacl() *grpc2.EACLTable {
- if x != nil {
- return x.Eacl
- }
- return nil
-}
-
-func (x *GetExtendedACLResponse_Body) GetSignature() *grpc1.SignatureRFC6979 {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-func (x *GetExtendedACLResponse_Body) GetSessionToken() *grpc.SessionToken {
- if x != nil {
- return x.SessionToken
- }
- return nil
-}
-
-var File_container_grpc_service_proto protoreflect.FileDescriptor
-
-var file_container_grpc_service_proto_rawDesc = []byte{
- 0x0a, 0x1c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2f, 0x67, 0x72, 0x70, 0x63,
- 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
- 0x6e, 0x65, 0x72, 0x1a, 0x14, 0x61, 0x63, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x63, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63,
- 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x73, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe7, 0x02, 0x0a, 0x0a, 0x50, 0x75, 0x74, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12,
- 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
- 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72,
- 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x84, 0x01, 0x0a, 0x04, 0x42, 0x6f,
- 0x64, 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74,
- 0x61, 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
- 0x12, 0x3e, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x46,
- 0x43, 0x36, 0x39, 0x37, 0x39, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
- 0x22, 0xac, 0x02, 0x0a, 0x0b, 0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d,
- 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x46, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12,
- 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
- 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22,
- 0xef, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
- 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45,
- 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d,
- 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f,
- 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69,
- 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x86, 0x01, 0x0a, 0x04, 0x42, 0x6f, 0x64,
- 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69,
- 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
- 0x65, 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49,
- 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52,
- 0x46, 0x43, 0x36, 0x39, 0x37, 0x39, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
- 0x65, 0x22, 0xf2, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63,
- 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f,
- 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a,
- 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65,
- 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65,
- 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x06,
- 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xa8, 0x02, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12,
- 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
- 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72,
- 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x46, 0x0a, 0x04, 0x42, 0x6f, 0x64,
- 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69,
- 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
- 0x65, 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49,
- 0x64, 0x22, 0xb1, 0x03, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
- 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b,
- 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65,
- 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69,
- 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0xca, 0x01, 0x0a, 0x04, 0x42, 0x6f, 0x64,
- 0x79, 0x12, 0x3c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12,
- 0x3e, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72,
- 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x46, 0x43,
- 0x36, 0x39, 0x37, 0x39, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12,
- 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9e, 0x02, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79,
- 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69,
- 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65,
- 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x3a, 0x0a, 0x04, 0x42, 0x6f,
- 0x64, 0x79, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x6f,
- 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0xb0, 0x02, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x4c, 0x69, 0x73, 0x74,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62,
- 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
- 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76,
- 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56,
- 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a,
- 0x48, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
- 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x63, 0x6f, 0x6e,
- 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0xbe, 0x02, 0x0a, 0x15, 0x47, 0x65,
- 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x2f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f,
- 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e,
- 0x64, 0x65, 0x64, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f,
- 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61,
- 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
- 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x1a, 0x46, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f,
- 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
- 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63,
- 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0xb7, 0x03, 0x0a, 0x16, 0x47,
- 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74,
- 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d,
- 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0xba, 0x01, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79,
- 0x12, 0x2c, 0x0a, 0x04, 0x65, 0x61, 0x63, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x45,
- 0x41, 0x43, 0x4c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x04, 0x65, 0x61, 0x63, 0x6c, 0x12, 0x3e,
- 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
- 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x46, 0x43, 0x36,
- 0x39, 0x37, 0x39, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x44,
- 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54,
- 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xb1, 0x03, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
- 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x03, 0x50, 0x75, 0x74,
- 0x12, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e,
- 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f,
- 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x22, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
- 0x6e, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f,
- 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x1f, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
- 0x6e, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x4b, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x4c,
- 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
- 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a,
- 0x0e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x43, 0x4c, 0x12,
- 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
- 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65,
- 0x64, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x43, 0x4c,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6a, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x2e,
- 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75,
- 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
- 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6e, 0x74,
- 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x63, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0xaa, 0x02, 0x1d, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53,
- 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_container_grpc_service_proto_rawDescOnce sync.Once
- file_container_grpc_service_proto_rawDescData = file_container_grpc_service_proto_rawDesc
-)
-
-func file_container_grpc_service_proto_rawDescGZIP() []byte {
- file_container_grpc_service_proto_rawDescOnce.Do(func() {
- file_container_grpc_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_container_grpc_service_proto_rawDescData)
- })
- return file_container_grpc_service_proto_rawDescData
-}
-
-var file_container_grpc_service_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
-var file_container_grpc_service_proto_goTypes = []interface{}{
- (*PutRequest)(nil), // 0: neo.fs.v2.container.PutRequest
- (*PutResponse)(nil), // 1: neo.fs.v2.container.PutResponse
- (*DeleteRequest)(nil), // 2: neo.fs.v2.container.DeleteRequest
- (*DeleteResponse)(nil), // 3: neo.fs.v2.container.DeleteResponse
- (*GetRequest)(nil), // 4: neo.fs.v2.container.GetRequest
- (*GetResponse)(nil), // 5: neo.fs.v2.container.GetResponse
- (*ListRequest)(nil), // 6: neo.fs.v2.container.ListRequest
- (*ListResponse)(nil), // 7: neo.fs.v2.container.ListResponse
- (*GetExtendedACLRequest)(nil), // 8: neo.fs.v2.container.GetExtendedACLRequest
- (*GetExtendedACLResponse)(nil), // 9: neo.fs.v2.container.GetExtendedACLResponse
- (*PutRequest_Body)(nil), // 10: neo.fs.v2.container.PutRequest.Body
- (*PutResponse_Body)(nil), // 11: neo.fs.v2.container.PutResponse.Body
- (*DeleteRequest_Body)(nil), // 12: neo.fs.v2.container.DeleteRequest.Body
- (*DeleteResponse_Body)(nil), // 13: neo.fs.v2.container.DeleteResponse.Body
- (*GetRequest_Body)(nil), // 14: neo.fs.v2.container.GetRequest.Body
- (*GetResponse_Body)(nil), // 15: neo.fs.v2.container.GetResponse.Body
- (*ListRequest_Body)(nil), // 16: neo.fs.v2.container.ListRequest.Body
- (*ListResponse_Body)(nil), // 17: neo.fs.v2.container.ListResponse.Body
- (*GetExtendedACLRequest_Body)(nil), // 18: neo.fs.v2.container.GetExtendedACLRequest.Body
- (*GetExtendedACLResponse_Body)(nil), // 19: neo.fs.v2.container.GetExtendedACLResponse.Body
- (*grpc.RequestMetaHeader)(nil), // 20: neo.fs.v2.session.RequestMetaHeader
- (*grpc.RequestVerificationHeader)(nil), // 21: neo.fs.v2.session.RequestVerificationHeader
- (*grpc.ResponseMetaHeader)(nil), // 22: neo.fs.v2.session.ResponseMetaHeader
- (*grpc.ResponseVerificationHeader)(nil), // 23: neo.fs.v2.session.ResponseVerificationHeader
- (*Container)(nil), // 24: neo.fs.v2.container.Container
- (*grpc1.SignatureRFC6979)(nil), // 25: neo.fs.v2.refs.SignatureRFC6979
- (*grpc1.ContainerID)(nil), // 26: neo.fs.v2.refs.ContainerID
- (*grpc.SessionToken)(nil), // 27: neo.fs.v2.session.SessionToken
- (*grpc1.OwnerID)(nil), // 28: neo.fs.v2.refs.OwnerID
- (*grpc2.EACLTable)(nil), // 29: neo.fs.v2.acl.EACLTable
-}
-var file_container_grpc_service_proto_depIdxs = []int32{
- 10, // 0: neo.fs.v2.container.PutRequest.body:type_name -> neo.fs.v2.container.PutRequest.Body
- 20, // 1: neo.fs.v2.container.PutRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 21, // 2: neo.fs.v2.container.PutRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 11, // 3: neo.fs.v2.container.PutResponse.body:type_name -> neo.fs.v2.container.PutResponse.Body
- 22, // 4: neo.fs.v2.container.PutResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 23, // 5: neo.fs.v2.container.PutResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 12, // 6: neo.fs.v2.container.DeleteRequest.body:type_name -> neo.fs.v2.container.DeleteRequest.Body
- 20, // 7: neo.fs.v2.container.DeleteRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 21, // 8: neo.fs.v2.container.DeleteRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 13, // 9: neo.fs.v2.container.DeleteResponse.body:type_name -> neo.fs.v2.container.DeleteResponse.Body
- 22, // 10: neo.fs.v2.container.DeleteResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 23, // 11: neo.fs.v2.container.DeleteResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 14, // 12: neo.fs.v2.container.GetRequest.body:type_name -> neo.fs.v2.container.GetRequest.Body
- 20, // 13: neo.fs.v2.container.GetRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 21, // 14: neo.fs.v2.container.GetRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 15, // 15: neo.fs.v2.container.GetResponse.body:type_name -> neo.fs.v2.container.GetResponse.Body
- 22, // 16: neo.fs.v2.container.GetResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 23, // 17: neo.fs.v2.container.GetResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 16, // 18: neo.fs.v2.container.ListRequest.body:type_name -> neo.fs.v2.container.ListRequest.Body
- 20, // 19: neo.fs.v2.container.ListRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 21, // 20: neo.fs.v2.container.ListRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 17, // 21: neo.fs.v2.container.ListResponse.body:type_name -> neo.fs.v2.container.ListResponse.Body
- 22, // 22: neo.fs.v2.container.ListResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 23, // 23: neo.fs.v2.container.ListResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 18, // 24: neo.fs.v2.container.GetExtendedACLRequest.body:type_name -> neo.fs.v2.container.GetExtendedACLRequest.Body
- 20, // 25: neo.fs.v2.container.GetExtendedACLRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 21, // 26: neo.fs.v2.container.GetExtendedACLRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 19, // 27: neo.fs.v2.container.GetExtendedACLResponse.body:type_name -> neo.fs.v2.container.GetExtendedACLResponse.Body
- 22, // 28: neo.fs.v2.container.GetExtendedACLResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 23, // 29: neo.fs.v2.container.GetExtendedACLResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 24, // 30: neo.fs.v2.container.PutRequest.Body.container:type_name -> neo.fs.v2.container.Container
- 25, // 31: neo.fs.v2.container.PutRequest.Body.signature:type_name -> neo.fs.v2.refs.SignatureRFC6979
- 26, // 32: neo.fs.v2.container.PutResponse.Body.container_id:type_name -> neo.fs.v2.refs.ContainerID
- 26, // 33: neo.fs.v2.container.DeleteRequest.Body.container_id:type_name -> neo.fs.v2.refs.ContainerID
- 25, // 34: neo.fs.v2.container.DeleteRequest.Body.signature:type_name -> neo.fs.v2.refs.SignatureRFC6979
- 26, // 35: neo.fs.v2.container.GetRequest.Body.container_id:type_name -> neo.fs.v2.refs.ContainerID
- 24, // 36: neo.fs.v2.container.GetResponse.Body.container:type_name -> neo.fs.v2.container.Container
- 25, // 37: neo.fs.v2.container.GetResponse.Body.signature:type_name -> neo.fs.v2.refs.SignatureRFC6979
- 27, // 38: neo.fs.v2.container.GetResponse.Body.session_token:type_name -> neo.fs.v2.session.SessionToken
- 28, // 39: neo.fs.v2.container.ListRequest.Body.owner_id:type_name -> neo.fs.v2.refs.OwnerID
- 26, // 40: neo.fs.v2.container.ListResponse.Body.container_ids:type_name -> neo.fs.v2.refs.ContainerID
- 26, // 41: neo.fs.v2.container.GetExtendedACLRequest.Body.container_id:type_name -> neo.fs.v2.refs.ContainerID
- 29, // 42: neo.fs.v2.container.GetExtendedACLResponse.Body.eacl:type_name -> neo.fs.v2.acl.EACLTable
- 25, // 43: neo.fs.v2.container.GetExtendedACLResponse.Body.signature:type_name -> neo.fs.v2.refs.SignatureRFC6979
- 27, // 44: neo.fs.v2.container.GetExtendedACLResponse.Body.session_token:type_name -> neo.fs.v2.session.SessionToken
- 0, // 45: neo.fs.v2.container.ContainerService.Put:input_type -> neo.fs.v2.container.PutRequest
- 2, // 46: neo.fs.v2.container.ContainerService.Delete:input_type -> neo.fs.v2.container.DeleteRequest
- 4, // 47: neo.fs.v2.container.ContainerService.Get:input_type -> neo.fs.v2.container.GetRequest
- 6, // 48: neo.fs.v2.container.ContainerService.List:input_type -> neo.fs.v2.container.ListRequest
- 8, // 49: neo.fs.v2.container.ContainerService.GetExtendedACL:input_type -> neo.fs.v2.container.GetExtendedACLRequest
- 1, // 50: neo.fs.v2.container.ContainerService.Put:output_type -> neo.fs.v2.container.PutResponse
- 3, // 51: neo.fs.v2.container.ContainerService.Delete:output_type -> neo.fs.v2.container.DeleteResponse
- 5, // 52: neo.fs.v2.container.ContainerService.Get:output_type -> neo.fs.v2.container.GetResponse
- 7, // 53: neo.fs.v2.container.ContainerService.List:output_type -> neo.fs.v2.container.ListResponse
- 9, // 54: neo.fs.v2.container.ContainerService.GetExtendedACL:output_type -> neo.fs.v2.container.GetExtendedACLResponse
- 50, // [50:55] is the sub-list for method output_type
- 45, // [45:50] is the sub-list for method input_type
- 45, // [45:45] is the sub-list for extension type_name
- 45, // [45:45] is the sub-list for extension extendee
- 0, // [0:45] is the sub-list for field type_name
-}
-
-func init() { file_container_grpc_service_proto_init() }
-func file_container_grpc_service_proto_init() {
- if File_container_grpc_service_proto != nil {
- return
- }
- file_container_grpc_types_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_container_grpc_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetExtendedACLRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetExtendedACLResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetExtendedACLRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetExtendedACLResponse_Body); 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_container_grpc_service_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 20,
- NumExtensions: 0,
- NumServices: 1,
- },
- GoTypes: file_container_grpc_service_proto_goTypes,
- DependencyIndexes: file_container_grpc_service_proto_depIdxs,
- MessageInfos: file_container_grpc_service_proto_msgTypes,
- }.Build()
- File_container_grpc_service_proto = out.File
- file_container_grpc_service_proto_rawDesc = nil
- file_container_grpc_service_proto_goTypes = nil
- file_container_grpc_service_proto_depIdxs = nil
-}
diff --git a/container/grpc/service_frostfs.pb.go b/container/grpc/service_frostfs.pb.go
new file mode 100644
index 0000000..7590435
--- /dev/null
+++ b/container/grpc/service_frostfs.pb.go
@@ -0,0 +1,3748 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package container
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+type PutRequest_Body struct {
+ Container *Container `json:"container"`
+ Signature *grpc.SignatureRFC6979 `json:"signature"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutRequest_Body)(nil)
+ _ json.Marshaler = (*PutRequest_Body)(nil)
+ _ json.Unmarshaler = (*PutRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Container)
+ size += proto.NestedStructureSize(2, x.Signature)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Container != nil && x.Container.StableSize() != 0 {
+ x.Container.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Container
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Container")
+ }
+ x.Container = new(Container)
+ if err := x.Container.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.SignatureRFC6979)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PutRequest_Body) GetContainer() *Container {
+ if x != nil {
+ return x.Container
+ }
+ return nil
+}
+func (x *PutRequest_Body) SetContainer(v *Container) {
+ x.Container = v
+}
+func (x *PutRequest_Body) GetSignature() *grpc.SignatureRFC6979 {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *PutRequest_Body) SetSignature(v *grpc.SignatureRFC6979) {
+ x.Signature = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"container\":"
+ out.RawString(prefix[1:])
+ x.Container.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "container":
+ {
+ var f *Container
+ f = new(Container)
+ f.UnmarshalEasyJSON(in)
+ x.Container = f
+ }
+ case "signature":
+ {
+ var f *grpc.SignatureRFC6979
+ f = new(grpc.SignatureRFC6979)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutRequest struct {
+ Body *PutRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutRequest)(nil)
+ _ json.Marshaler = (*PutRequest)(nil)
+ _ json.Unmarshaler = (*PutRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *PutRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *PutRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(PutRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PutRequest) GetBody() *PutRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *PutRequest) SetBody(v *PutRequest_Body) {
+ x.Body = v
+}
+func (x *PutRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *PutRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *PutRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *PutRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *PutRequest_Body
+ f = new(PutRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutResponse_Body struct {
+ ContainerId *grpc.ContainerID `json:"containerId"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutResponse_Body)(nil)
+ _ json.Marshaler = (*PutResponse_Body)(nil)
+ _ json.Unmarshaler = (*PutResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ContainerId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // ContainerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
+ }
+ x.ContainerId = new(grpc.ContainerID)
+ if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PutResponse_Body) GetContainerId() *grpc.ContainerID {
+ if x != nil {
+ return x.ContainerId
+ }
+ return nil
+}
+func (x *PutResponse_Body) SetContainerId(v *grpc.ContainerID) {
+ x.ContainerId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"containerId\":"
+ out.RawString(prefix[1:])
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "containerId":
+ {
+ var f *grpc.ContainerID
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.ContainerId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutResponse struct {
+ Body *PutResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutResponse)(nil)
+ _ json.Marshaler = (*PutResponse)(nil)
+ _ json.Unmarshaler = (*PutResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *PutResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *PutResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(PutResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PutResponse) GetBody() *PutResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *PutResponse) SetBody(v *PutResponse_Body) {
+ x.Body = v
+}
+func (x *PutResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *PutResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *PutResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *PutResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *PutResponse_Body
+ f = new(PutResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type DeleteRequest_Body struct {
+ ContainerId *grpc.ContainerID `json:"containerId"`
+ Signature *grpc.SignatureRFC6979 `json:"signature"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*DeleteRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*DeleteRequest_Body)(nil)
+ _ json.Marshaler = (*DeleteRequest_Body)(nil)
+ _ json.Unmarshaler = (*DeleteRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *DeleteRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ContainerId)
+ size += proto.NestedStructureSize(2, x.Signature)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *DeleteRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *DeleteRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *DeleteRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "DeleteRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // ContainerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
+ }
+ x.ContainerId = new(grpc.ContainerID)
+ if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.SignatureRFC6979)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *DeleteRequest_Body) GetContainerId() *grpc.ContainerID {
+ if x != nil {
+ return x.ContainerId
+ }
+ return nil
+}
+func (x *DeleteRequest_Body) SetContainerId(v *grpc.ContainerID) {
+ x.ContainerId = v
+}
+func (x *DeleteRequest_Body) GetSignature() *grpc.SignatureRFC6979 {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *DeleteRequest_Body) SetSignature(v *grpc.SignatureRFC6979) {
+ x.Signature = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *DeleteRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *DeleteRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"containerId\":"
+ out.RawString(prefix[1:])
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *DeleteRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *DeleteRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "containerId":
+ {
+ var f *grpc.ContainerID
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.ContainerId = f
+ }
+ case "signature":
+ {
+ var f *grpc.SignatureRFC6979
+ f = new(grpc.SignatureRFC6979)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type DeleteRequest struct {
+ Body *DeleteRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*DeleteRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*DeleteRequest)(nil)
+ _ json.Marshaler = (*DeleteRequest)(nil)
+ _ json.Unmarshaler = (*DeleteRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *DeleteRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *DeleteRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *DeleteRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *DeleteRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *DeleteRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *DeleteRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "DeleteRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(DeleteRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *DeleteRequest) GetBody() *DeleteRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *DeleteRequest) SetBody(v *DeleteRequest_Body) {
+ x.Body = v
+}
+func (x *DeleteRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *DeleteRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *DeleteRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *DeleteRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *DeleteRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *DeleteRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *DeleteRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *DeleteRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *DeleteRequest_Body
+ f = new(DeleteRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type DeleteResponse_Body struct {
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*DeleteResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*DeleteResponse_Body)(nil)
+ _ json.Marshaler = (*DeleteResponse_Body)(nil)
+ _ json.Unmarshaler = (*DeleteResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *DeleteResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *DeleteResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *DeleteResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *DeleteResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "DeleteResponse_Body")
+ }
+ switch fc.FieldNum {
+ }
+ }
+ return nil
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *DeleteResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *DeleteResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *DeleteResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *DeleteResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type DeleteResponse struct {
+ Body *DeleteResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*DeleteResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*DeleteResponse)(nil)
+ _ json.Marshaler = (*DeleteResponse)(nil)
+ _ json.Unmarshaler = (*DeleteResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *DeleteResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *DeleteResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *DeleteResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *DeleteResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *DeleteResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *DeleteResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "DeleteResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(DeleteResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *DeleteResponse) GetBody() *DeleteResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *DeleteResponse) SetBody(v *DeleteResponse_Body) {
+ x.Body = v
+}
+func (x *DeleteResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *DeleteResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *DeleteResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *DeleteResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *DeleteResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *DeleteResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *DeleteResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *DeleteResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *DeleteResponse_Body
+ f = new(DeleteResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRequest_Body struct {
+ ContainerId *grpc.ContainerID `json:"containerId"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRequest_Body)(nil)
+ _ json.Marshaler = (*GetRequest_Body)(nil)
+ _ json.Unmarshaler = (*GetRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ContainerId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // ContainerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
+ }
+ x.ContainerId = new(grpc.ContainerID)
+ if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetRequest_Body) GetContainerId() *grpc.ContainerID {
+ if x != nil {
+ return x.ContainerId
+ }
+ return nil
+}
+func (x *GetRequest_Body) SetContainerId(v *grpc.ContainerID) {
+ x.ContainerId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"containerId\":"
+ out.RawString(prefix[1:])
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "containerId":
+ {
+ var f *grpc.ContainerID
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.ContainerId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRequest struct {
+ Body *GetRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRequest)(nil)
+ _ json.Marshaler = (*GetRequest)(nil)
+ _ json.Unmarshaler = (*GetRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetRequest) GetBody() *GetRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetRequest) SetBody(v *GetRequest_Body) {
+ x.Body = v
+}
+func (x *GetRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetRequest_Body
+ f = new(GetRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetResponse_Body struct {
+ Container *Container `json:"container"`
+ Signature *grpc.SignatureRFC6979 `json:"signature"`
+ SessionToken *grpc1.SessionToken `json:"sessionToken"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetResponse_Body)(nil)
+ _ json.Marshaler = (*GetResponse_Body)(nil)
+ _ json.Unmarshaler = (*GetResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Container)
+ size += proto.NestedStructureSize(2, x.Signature)
+ size += proto.NestedStructureSize(3, x.SessionToken)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Container != nil && x.Container.StableSize() != 0 {
+ x.Container.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.SessionToken != nil && x.SessionToken.StableSize() != 0 {
+ x.SessionToken.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Container
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Container")
+ }
+ x.Container = new(Container)
+ if err := x.Container.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.SignatureRFC6979)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // SessionToken
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SessionToken")
+ }
+ x.SessionToken = new(grpc1.SessionToken)
+ if err := x.SessionToken.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetResponse_Body) GetContainer() *Container {
+ if x != nil {
+ return x.Container
+ }
+ return nil
+}
+func (x *GetResponse_Body) SetContainer(v *Container) {
+ x.Container = v
+}
+func (x *GetResponse_Body) GetSignature() *grpc.SignatureRFC6979 {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *GetResponse_Body) SetSignature(v *grpc.SignatureRFC6979) {
+ x.Signature = v
+}
+func (x *GetResponse_Body) GetSessionToken() *grpc1.SessionToken {
+ if x != nil {
+ return x.SessionToken
+ }
+ return nil
+}
+func (x *GetResponse_Body) SetSessionToken(v *grpc1.SessionToken) {
+ x.SessionToken = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"container\":"
+ out.RawString(prefix[1:])
+ x.Container.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "container":
+ {
+ var f *Container
+ f = new(Container)
+ f.UnmarshalEasyJSON(in)
+ x.Container = f
+ }
+ case "signature":
+ {
+ var f *grpc.SignatureRFC6979
+ f = new(grpc.SignatureRFC6979)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ case "sessionToken":
+ {
+ var f *grpc1.SessionToken
+ f = new(grpc1.SessionToken)
+ f.UnmarshalEasyJSON(in)
+ x.SessionToken = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetResponse struct {
+ Body *GetResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetResponse)(nil)
+ _ json.Marshaler = (*GetResponse)(nil)
+ _ json.Unmarshaler = (*GetResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetResponse) GetBody() *GetResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetResponse) SetBody(v *GetResponse_Body) {
+ x.Body = v
+}
+func (x *GetResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetResponse_Body
+ f = new(GetResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ListRequest_Body struct {
+ OwnerId *grpc.OwnerID `json:"ownerId"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ListRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*ListRequest_Body)(nil)
+ _ json.Marshaler = (*ListRequest_Body)(nil)
+ _ json.Unmarshaler = (*ListRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ListRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.OwnerId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ListRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ListRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ x.OwnerId.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ListRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ListRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // OwnerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OwnerId")
+ }
+ x.OwnerId = new(grpc.OwnerID)
+ if err := x.OwnerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ListRequest_Body) GetOwnerId() *grpc.OwnerID {
+ if x != nil {
+ return x.OwnerId
+ }
+ return nil
+}
+func (x *ListRequest_Body) SetOwnerId(v *grpc.OwnerID) {
+ x.OwnerId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ListRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ListRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"ownerId\":"
+ out.RawString(prefix[1:])
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ListRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ListRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "ownerId":
+ {
+ var f *grpc.OwnerID
+ f = new(grpc.OwnerID)
+ f.UnmarshalEasyJSON(in)
+ x.OwnerId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ListRequest struct {
+ Body *ListRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ListRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*ListRequest)(nil)
+ _ json.Marshaler = (*ListRequest)(nil)
+ _ json.Unmarshaler = (*ListRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ListRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *ListRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *ListRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ListRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ListRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ListRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ListRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(ListRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ListRequest) GetBody() *ListRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *ListRequest) SetBody(v *ListRequest_Body) {
+ x.Body = v
+}
+func (x *ListRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *ListRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *ListRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *ListRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ListRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ListRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ListRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ListRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *ListRequest_Body
+ f = new(ListRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ListResponse_Body struct {
+ ContainerIds []*grpc.ContainerID `json:"containerIds"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ListResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*ListResponse_Body)(nil)
+ _ json.Marshaler = (*ListResponse_Body)(nil)
+ _ json.Unmarshaler = (*ListResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ListResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ for i := range x.ContainerIds {
+ size += proto.NestedStructureSize(1, x.ContainerIds[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ListResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ListResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ for i := range x.ContainerIds {
+ if x.ContainerIds[i] != nil && x.ContainerIds[i].StableSize() != 0 {
+ x.ContainerIds[i].EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ListResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ListResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // ContainerIds
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerIds")
+ }
+ x.ContainerIds = append(x.ContainerIds, new(grpc.ContainerID))
+ ff := x.ContainerIds[len(x.ContainerIds)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ListResponse_Body) GetContainerIds() []*grpc.ContainerID {
+ if x != nil {
+ return x.ContainerIds
+ }
+ return nil
+}
+func (x *ListResponse_Body) SetContainerIds(v []*grpc.ContainerID) {
+ x.ContainerIds = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ListResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ListResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"containerIds\":"
+ out.RawString(prefix[1:])
+ out.RawByte('[')
+ for i := range x.ContainerIds {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.ContainerIds[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ListResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ListResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "containerIds":
+ {
+ var f *grpc.ContainerID
+ var list []*grpc.ContainerID
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.ContainerIds = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ListResponse struct {
+ Body *ListResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ListResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*ListResponse)(nil)
+ _ json.Marshaler = (*ListResponse)(nil)
+ _ json.Unmarshaler = (*ListResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ListResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *ListResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *ListResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ListResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ListResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ListResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ListResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(ListResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ListResponse) GetBody() *ListResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *ListResponse) SetBody(v *ListResponse_Body) {
+ x.Body = v
+}
+func (x *ListResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *ListResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *ListResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *ListResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ListResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ListResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ListResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ListResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *ListResponse_Body
+ f = new(ListResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetExtendedACLRequest_Body struct {
+ ContainerId *grpc.ContainerID `json:"containerId"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetExtendedACLRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetExtendedACLRequest_Body)(nil)
+ _ json.Marshaler = (*GetExtendedACLRequest_Body)(nil)
+ _ json.Unmarshaler = (*GetExtendedACLRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetExtendedACLRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ContainerId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetExtendedACLRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetExtendedACLRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetExtendedACLRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetExtendedACLRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // ContainerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
+ }
+ x.ContainerId = new(grpc.ContainerID)
+ if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetExtendedACLRequest_Body) GetContainerId() *grpc.ContainerID {
+ if x != nil {
+ return x.ContainerId
+ }
+ return nil
+}
+func (x *GetExtendedACLRequest_Body) SetContainerId(v *grpc.ContainerID) {
+ x.ContainerId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetExtendedACLRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetExtendedACLRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"containerId\":"
+ out.RawString(prefix[1:])
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetExtendedACLRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetExtendedACLRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "containerId":
+ {
+ var f *grpc.ContainerID
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.ContainerId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetExtendedACLRequest struct {
+ Body *GetExtendedACLRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetExtendedACLRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetExtendedACLRequest)(nil)
+ _ json.Marshaler = (*GetExtendedACLRequest)(nil)
+ _ json.Unmarshaler = (*GetExtendedACLRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetExtendedACLRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetExtendedACLRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetExtendedACLRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetExtendedACLRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetExtendedACLRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetExtendedACLRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetExtendedACLRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetExtendedACLRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetExtendedACLRequest) GetBody() *GetExtendedACLRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetExtendedACLRequest) SetBody(v *GetExtendedACLRequest_Body) {
+ x.Body = v
+}
+func (x *GetExtendedACLRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetExtendedACLRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetExtendedACLRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetExtendedACLRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetExtendedACLRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetExtendedACLRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetExtendedACLRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetExtendedACLRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetExtendedACLRequest_Body
+ f = new(GetExtendedACLRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetExtendedACLResponse_Body struct {
+ Eacl *grpc2.EACLTable `json:"eacl"`
+ Signature *grpc.SignatureRFC6979 `json:"signature"`
+ SessionToken *grpc1.SessionToken `json:"sessionToken"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetExtendedACLResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetExtendedACLResponse_Body)(nil)
+ _ json.Marshaler = (*GetExtendedACLResponse_Body)(nil)
+ _ json.Unmarshaler = (*GetExtendedACLResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetExtendedACLResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Eacl)
+ size += proto.NestedStructureSize(2, x.Signature)
+ size += proto.NestedStructureSize(3, x.SessionToken)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetExtendedACLResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetExtendedACLResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Eacl != nil && x.Eacl.StableSize() != 0 {
+ x.Eacl.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.SessionToken != nil && x.SessionToken.StableSize() != 0 {
+ x.SessionToken.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetExtendedACLResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetExtendedACLResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Eacl
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Eacl")
+ }
+ x.Eacl = new(grpc2.EACLTable)
+ if err := x.Eacl.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.SignatureRFC6979)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // SessionToken
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SessionToken")
+ }
+ x.SessionToken = new(grpc1.SessionToken)
+ if err := x.SessionToken.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetExtendedACLResponse_Body) GetEacl() *grpc2.EACLTable {
+ if x != nil {
+ return x.Eacl
+ }
+ return nil
+}
+func (x *GetExtendedACLResponse_Body) SetEacl(v *grpc2.EACLTable) {
+ x.Eacl = v
+}
+func (x *GetExtendedACLResponse_Body) GetSignature() *grpc.SignatureRFC6979 {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *GetExtendedACLResponse_Body) SetSignature(v *grpc.SignatureRFC6979) {
+ x.Signature = v
+}
+func (x *GetExtendedACLResponse_Body) GetSessionToken() *grpc1.SessionToken {
+ if x != nil {
+ return x.SessionToken
+ }
+ return nil
+}
+func (x *GetExtendedACLResponse_Body) SetSessionToken(v *grpc1.SessionToken) {
+ x.SessionToken = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetExtendedACLResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetExtendedACLResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"eacl\":"
+ out.RawString(prefix[1:])
+ x.Eacl.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetExtendedACLResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetExtendedACLResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "eacl":
+ {
+ var f *grpc2.EACLTable
+ f = new(grpc2.EACLTable)
+ f.UnmarshalEasyJSON(in)
+ x.Eacl = f
+ }
+ case "signature":
+ {
+ var f *grpc.SignatureRFC6979
+ f = new(grpc.SignatureRFC6979)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ case "sessionToken":
+ {
+ var f *grpc1.SessionToken
+ f = new(grpc1.SessionToken)
+ f.UnmarshalEasyJSON(in)
+ x.SessionToken = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetExtendedACLResponse struct {
+ Body *GetExtendedACLResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetExtendedACLResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetExtendedACLResponse)(nil)
+ _ json.Marshaler = (*GetExtendedACLResponse)(nil)
+ _ json.Unmarshaler = (*GetExtendedACLResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetExtendedACLResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetExtendedACLResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetExtendedACLResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetExtendedACLResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetExtendedACLResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetExtendedACLResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetExtendedACLResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetExtendedACLResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetExtendedACLResponse) GetBody() *GetExtendedACLResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetExtendedACLResponse) SetBody(v *GetExtendedACLResponse_Body) {
+ x.Body = v
+}
+func (x *GetExtendedACLResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetExtendedACLResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetExtendedACLResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetExtendedACLResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetExtendedACLResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetExtendedACLResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetExtendedACLResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetExtendedACLResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetExtendedACLResponse_Body
+ f = new(GetExtendedACLResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/container/grpc/service_frostfs_fuzz.go b/container/grpc/service_frostfs_fuzz.go
new file mode 100644
index 0000000..496a2d6
--- /dev/null
+++ b/container/grpc/service_frostfs_fuzz.go
@@ -0,0 +1,197 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package container
+
+func DoFuzzProtoPutRequest(data []byte) int {
+ msg := new(PutRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONPutRequest(data []byte) int {
+ msg := new(PutRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoPutResponse(data []byte) int {
+ msg := new(PutResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONPutResponse(data []byte) int {
+ msg := new(PutResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoDeleteRequest(data []byte) int {
+ msg := new(DeleteRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONDeleteRequest(data []byte) int {
+ msg := new(DeleteRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoDeleteResponse(data []byte) int {
+ msg := new(DeleteResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONDeleteResponse(data []byte) int {
+ msg := new(DeleteResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoGetRequest(data []byte) int {
+ msg := new(GetRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetRequest(data []byte) int {
+ msg := new(GetRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoGetResponse(data []byte) int {
+ msg := new(GetResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetResponse(data []byte) int {
+ msg := new(GetResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoListRequest(data []byte) int {
+ msg := new(ListRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONListRequest(data []byte) int {
+ msg := new(ListRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoListResponse(data []byte) int {
+ msg := new(ListResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONListResponse(data []byte) int {
+ msg := new(ListResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoGetExtendedACLRequest(data []byte) int {
+ msg := new(GetExtendedACLRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetExtendedACLRequest(data []byte) int {
+ msg := new(GetExtendedACLRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoGetExtendedACLResponse(data []byte) int {
+ msg := new(GetExtendedACLResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetExtendedACLResponse(data []byte) int {
+ msg := new(GetExtendedACLResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/container/grpc/service_frostfs_test.go b/container/grpc/service_frostfs_test.go
new file mode 100644
index 0000000..05eb48a
--- /dev/null
+++ b/container/grpc/service_frostfs_test.go
@@ -0,0 +1,111 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package container
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoPutRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoPutRequest(data)
+ })
+}
+func FuzzJSONPutRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONPutRequest(data)
+ })
+}
+func FuzzProtoPutResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoPutResponse(data)
+ })
+}
+func FuzzJSONPutResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONPutResponse(data)
+ })
+}
+func FuzzProtoDeleteRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoDeleteRequest(data)
+ })
+}
+func FuzzJSONDeleteRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONDeleteRequest(data)
+ })
+}
+func FuzzProtoDeleteResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoDeleteResponse(data)
+ })
+}
+func FuzzJSONDeleteResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONDeleteResponse(data)
+ })
+}
+func FuzzProtoGetRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetRequest(data)
+ })
+}
+func FuzzJSONGetRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetRequest(data)
+ })
+}
+func FuzzProtoGetResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetResponse(data)
+ })
+}
+func FuzzJSONGetResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetResponse(data)
+ })
+}
+func FuzzProtoListRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoListRequest(data)
+ })
+}
+func FuzzJSONListRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONListRequest(data)
+ })
+}
+func FuzzProtoListResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoListResponse(data)
+ })
+}
+func FuzzJSONListResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONListResponse(data)
+ })
+}
+func FuzzProtoGetExtendedACLRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetExtendedACLRequest(data)
+ })
+}
+func FuzzJSONGetExtendedACLRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetExtendedACLRequest(data)
+ })
+}
+func FuzzProtoGetExtendedACLResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetExtendedACLResponse(data)
+ })
+}
+func FuzzJSONGetExtendedACLResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetExtendedACLResponse(data)
+ })
+}
diff --git a/container/grpc/types.go b/container/grpc/types.go
deleted file mode 100644
index 7308f9e..0000000
--- a/container/grpc/types.go
+++ /dev/null
@@ -1,46 +0,0 @@
-package container
-
-import (
- netmap "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/grpc"
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
-)
-
-// SetKey sets key to the container attribute.
-func (m *Container_Attribute) SetKey(v string) {
- m.Key = v
-}
-
-// SetValue sets value of the container attribute.
-func (m *Container_Attribute) SetValue(v string) {
- m.Value = v
-}
-
-// SetOwnerId sets identifier of the container owner,
-func (m *Container) SetOwnerId(v *refs.OwnerID) {
- m.OwnerId = v
-}
-
-// SetNonce sets nonce of the container structure.
-func (m *Container) SetNonce(v []byte) {
- m.Nonce = v
-}
-
-// SetBasicAcl sets basic ACL of the container.
-func (m *Container) SetBasicAcl(v uint32) {
- m.BasicAcl = v
-}
-
-// SetAttributes sets list of the container attributes.
-func (m *Container) SetAttributes(v []*Container_Attribute) {
- m.Attributes = v
-}
-
-// SetPlacementPolicy sets placement policy of the container.
-func (m *Container) SetPlacementPolicy(v *netmap.PlacementPolicy) {
- m.PlacementPolicy = v
-}
-
-// SetVersion sets version of the container.
-func (m *Container) SetVersion(v *refs.Version) {
- m.Version = v
-}
diff --git a/container/grpc/types.pb.go b/container/grpc/types.pb.go
deleted file mode 100644
index d0e19ec..0000000
--- a/container/grpc/types.pb.go
+++ /dev/null
@@ -1,337 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: container/grpc/types.proto
-
-package container
-
-import (
- grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/grpc"
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Container is a structure that defines object placement behaviour. Objects can
-// be stored only within containers. They define placement rule, attributes and
-// access control information. An ID of a container is a 32 byte long SHA256
-// hash of stable-marshalled container message.
-type Container struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Container format version. Effectively, the version of API library used to
- // create the container.
- Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
- // Identifier of the container owner
- OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
- // Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s
- Nonce []byte `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
- // `BasicACL` contains access control rules for the owner, system and others
- // groups, as well as permission bits for `BearerToken` and `Extended ACL`
- BasicAcl uint32 `protobuf:"varint,4,opt,name=basic_acl,json=basicACL,proto3" json:"basic_acl,omitempty"`
- // Attributes represent immutable container's meta data
- Attributes []*Container_Attribute `protobuf:"bytes,5,rep,name=attributes,proto3" json:"attributes,omitempty"`
- // Placement policy for the object inside the container
- PlacementPolicy *grpc1.PlacementPolicy `protobuf:"bytes,6,opt,name=placement_policy,json=placementPolicy,proto3" json:"placement_policy,omitempty"`
-}
-
-func (x *Container) Reset() {
- *x = Container{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Container) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Container) ProtoMessage() {}
-
-func (x *Container) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_types_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 Container.ProtoReflect.Descriptor instead.
-func (*Container) Descriptor() ([]byte, []int) {
- return file_container_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Container) GetVersion() *grpc.Version {
- if x != nil {
- return x.Version
- }
- return nil
-}
-
-func (x *Container) GetOwnerId() *grpc.OwnerID {
- if x != nil {
- return x.OwnerId
- }
- return nil
-}
-
-func (x *Container) GetNonce() []byte {
- if x != nil {
- return x.Nonce
- }
- return nil
-}
-
-func (x *Container) GetBasicAcl() uint32 {
- if x != nil {
- return x.BasicAcl
- }
- return 0
-}
-
-func (x *Container) GetAttributes() []*Container_Attribute {
- if x != nil {
- return x.Attributes
- }
- return nil
-}
-
-func (x *Container) GetPlacementPolicy() *grpc1.PlacementPolicy {
- if x != nil {
- return x.PlacementPolicy
- }
- return nil
-}
-
-// `Attribute` is a user-defined Key-Value metadata pair attached to the
-// container. Container attributes are immutable. They are set at the moment
-// of container creation and can never be added or updated.
-//
-// Key name must be a container-unique valid UTF-8 string. Value can't be
-// empty. Containers with duplicated attribute names or attributes with empty
-// values will be considered invalid.
-//
-// There are some "well-known" attributes affecting system behaviour:
-//
-// - [ __SYSTEM__NAME ] \
-// (`__NEOFS__NAME` is deprecated) \
-// String of a human-friendly container name registered as a domain in
-// NNS contract.
-// - [ __SYSTEM__ZONE ] \
-// (`__NEOFS__ZONE` is deprecated) \
-// String of a zone for `__SYSTEM__NAME` (`__NEOFS__NAME` is deprecated).
-// Used as a TLD of a domain name in NNS contract. If no zone is specified,
-// use default zone: `container`.
-// - [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \
-// (`__NEOFS__DISABLE_HOMOMORPHIC_HASHING` is deprecated) \
-// Disables homomorphic hashing for the container if the value equals "true"
-// string. Any other values are interpreted as missing attribute. Container
-// could be accepted in a NeoFS network only if the global network hashing
-// configuration value corresponds with that attribute's value. After
-// container inclusion, network setting is ignored.
-//
-// And some well-known attributes used by applications only:
-//
-// - Name \
-// Human-friendly name
-// - Timestamp \
-// User-defined local time of container creation in Unix Timestamp format
-type Container_Attribute struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Attribute name key
- Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- // Attribute value
- Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *Container_Attribute) Reset() {
- *x = Container_Attribute{}
- if protoimpl.UnsafeEnabled {
- mi := &file_container_grpc_types_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Container_Attribute) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Container_Attribute) ProtoMessage() {}
-
-func (x *Container_Attribute) ProtoReflect() protoreflect.Message {
- mi := &file_container_grpc_types_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 Container_Attribute.ProtoReflect.Descriptor instead.
-func (*Container_Attribute) Descriptor() ([]byte, []int) {
- return file_container_grpc_types_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *Container_Attribute) GetKey() string {
- if x != nil {
- return x.Key
- }
- return ""
-}
-
-func (x *Container_Attribute) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-var File_container_grpc_types_proto protoreflect.FileDescriptor
-
-var file_container_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x1a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2f, 0x67, 0x72, 0x70, 0x63,
- 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x1a, 0x17, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74,
- 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73,
- 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x22, 0xf2, 0x02, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12,
- 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
- 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
- 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x6f,
- 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09,
- 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
- 0x08, 0x62, 0x61, 0x73, 0x69, 0x63, 0x41, 0x43, 0x4c, 0x12, 0x48, 0x0a, 0x0a, 0x61, 0x74, 0x74,
- 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
- 0x6e, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x41, 0x74,
- 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
- 0x74, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x10, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74,
- 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70,
- 0x2e, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
- 0x52, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63,
- 0x79, 0x1a, 0x33, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10,
- 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
- 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x6a, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72,
- 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43,
- 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d,
- 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
- 0x6e, 0x65, 0x72, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
- 0x65, 0x72, 0xaa, 0x02, 0x1d, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f,
- 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
- 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_container_grpc_types_proto_rawDescOnce sync.Once
- file_container_grpc_types_proto_rawDescData = file_container_grpc_types_proto_rawDesc
-)
-
-func file_container_grpc_types_proto_rawDescGZIP() []byte {
- file_container_grpc_types_proto_rawDescOnce.Do(func() {
- file_container_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_container_grpc_types_proto_rawDescData)
- })
- return file_container_grpc_types_proto_rawDescData
-}
-
-var file_container_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_container_grpc_types_proto_goTypes = []interface{}{
- (*Container)(nil), // 0: neo.fs.v2.container.Container
- (*Container_Attribute)(nil), // 1: neo.fs.v2.container.Container.Attribute
- (*grpc.Version)(nil), // 2: neo.fs.v2.refs.Version
- (*grpc.OwnerID)(nil), // 3: neo.fs.v2.refs.OwnerID
- (*grpc1.PlacementPolicy)(nil), // 4: neo.fs.v2.netmap.PlacementPolicy
-}
-var file_container_grpc_types_proto_depIdxs = []int32{
- 2, // 0: neo.fs.v2.container.Container.version:type_name -> neo.fs.v2.refs.Version
- 3, // 1: neo.fs.v2.container.Container.owner_id:type_name -> neo.fs.v2.refs.OwnerID
- 1, // 2: neo.fs.v2.container.Container.attributes:type_name -> neo.fs.v2.container.Container.Attribute
- 4, // 3: neo.fs.v2.container.Container.placement_policy:type_name -> neo.fs.v2.netmap.PlacementPolicy
- 4, // [4:4] is the sub-list for method output_type
- 4, // [4:4] is the sub-list for method input_type
- 4, // [4:4] is the sub-list for extension type_name
- 4, // [4:4] is the sub-list for extension extendee
- 0, // [0:4] is the sub-list for field type_name
-}
-
-func init() { file_container_grpc_types_proto_init() }
-func file_container_grpc_types_proto_init() {
- if File_container_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_container_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Container); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_container_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Container_Attribute); 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_container_grpc_types_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 2,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_container_grpc_types_proto_goTypes,
- DependencyIndexes: file_container_grpc_types_proto_depIdxs,
- MessageInfos: file_container_grpc_types_proto_msgTypes,
- }.Build()
- File_container_grpc_types_proto = out.File
- file_container_grpc_types_proto_rawDesc = nil
- file_container_grpc_types_proto_goTypes = nil
- file_container_grpc_types_proto_depIdxs = nil
-}
diff --git a/container/grpc/types_frostfs.pb.go b/container/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..3e0d882
--- /dev/null
+++ b/container/grpc/types_frostfs.pb.go
@@ -0,0 +1,495 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package container
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/grpc"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+type Container_Attribute struct {
+ Key string `json:"key"`
+ Value string `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Container_Attribute)(nil)
+ _ encoding.ProtoUnmarshaler = (*Container_Attribute)(nil)
+ _ json.Marshaler = (*Container_Attribute)(nil)
+ _ json.Unmarshaler = (*Container_Attribute)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Container_Attribute) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.StringSize(1, x.Key)
+ size += proto.StringSize(2, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Container_Attribute) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Container_Attribute) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Key) != 0 {
+ mm.AppendString(1, x.Key)
+ }
+ if len(x.Value) != 0 {
+ mm.AppendString(2, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Container_Attribute) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Container_Attribute")
+ }
+ switch fc.FieldNum {
+ case 1: // Key
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 2: // Value
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *Container_Attribute) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+func (x *Container_Attribute) SetKey(v string) {
+ x.Key = v
+}
+func (x *Container_Attribute) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+func (x *Container_Attribute) SetValue(v string) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Container_Attribute) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Container_Attribute) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix[1:])
+ out.String(x.Key)
+ }
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Container_Attribute) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Container_Attribute) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "key":
+ {
+ var f string
+ f = in.String()
+ x.Key = f
+ }
+ case "value":
+ {
+ var f string
+ f = in.String()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Container struct {
+ Version *grpc.Version `json:"version"`
+ OwnerId *grpc.OwnerID `json:"ownerID"`
+ Nonce []byte `json:"nonce"`
+ BasicAcl uint32 `json:"basicACL"`
+ Attributes []*Container_Attribute `json:"attributes"`
+ PlacementPolicy *grpc1.PlacementPolicy `json:"placementPolicy"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Container)(nil)
+ _ encoding.ProtoUnmarshaler = (*Container)(nil)
+ _ json.Marshaler = (*Container)(nil)
+ _ json.Unmarshaler = (*Container)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Container) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Version)
+ size += proto.NestedStructureSize(2, x.OwnerId)
+ size += proto.BytesSize(3, x.Nonce)
+ size += proto.UInt32Size(4, x.BasicAcl)
+ for i := range x.Attributes {
+ size += proto.NestedStructureSize(5, x.Attributes[i])
+ }
+ size += proto.NestedStructureSize(6, x.PlacementPolicy)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Container) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Container) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Version != nil && x.Version.StableSize() != 0 {
+ x.Version.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ x.OwnerId.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if len(x.Nonce) != 0 {
+ mm.AppendBytes(3, x.Nonce)
+ }
+ if x.BasicAcl != 0 {
+ mm.AppendUint32(4, x.BasicAcl)
+ }
+ for i := range x.Attributes {
+ if x.Attributes[i] != nil && x.Attributes[i].StableSize() != 0 {
+ x.Attributes[i].EmitProtobuf(mm.AppendMessage(5))
+ }
+ }
+ if x.PlacementPolicy != nil && x.PlacementPolicy.StableSize() != 0 {
+ x.PlacementPolicy.EmitProtobuf(mm.AppendMessage(6))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Container) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Container")
+ }
+ switch fc.FieldNum {
+ case 1: // Version
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Version")
+ }
+ x.Version = new(grpc.Version)
+ if err := x.Version.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // OwnerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OwnerId")
+ }
+ x.OwnerId = new(grpc.OwnerID)
+ if err := x.OwnerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Nonce
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Nonce")
+ }
+ x.Nonce = data
+ case 4: // BasicAcl
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "BasicAcl")
+ }
+ x.BasicAcl = data
+ case 5: // Attributes
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Attributes")
+ }
+ x.Attributes = append(x.Attributes, new(Container_Attribute))
+ ff := x.Attributes[len(x.Attributes)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 6: // PlacementPolicy
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "PlacementPolicy")
+ }
+ x.PlacementPolicy = new(grpc1.PlacementPolicy)
+ if err := x.PlacementPolicy.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *Container) GetVersion() *grpc.Version {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+func (x *Container) SetVersion(v *grpc.Version) {
+ x.Version = v
+}
+func (x *Container) GetOwnerId() *grpc.OwnerID {
+ if x != nil {
+ return x.OwnerId
+ }
+ return nil
+}
+func (x *Container) SetOwnerId(v *grpc.OwnerID) {
+ x.OwnerId = v
+}
+func (x *Container) GetNonce() []byte {
+ if x != nil {
+ return x.Nonce
+ }
+ return nil
+}
+func (x *Container) SetNonce(v []byte) {
+ x.Nonce = v
+}
+func (x *Container) GetBasicAcl() uint32 {
+ if x != nil {
+ return x.BasicAcl
+ }
+ return 0
+}
+func (x *Container) SetBasicAcl(v uint32) {
+ x.BasicAcl = v
+}
+func (x *Container) GetAttributes() []*Container_Attribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+func (x *Container) SetAttributes(v []*Container_Attribute) {
+ x.Attributes = v
+}
+func (x *Container) GetPlacementPolicy() *grpc1.PlacementPolicy {
+ if x != nil {
+ return x.PlacementPolicy
+ }
+ return nil
+}
+func (x *Container) SetPlacementPolicy(v *grpc1.PlacementPolicy) {
+ x.PlacementPolicy = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Container) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Container) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"version\":"
+ out.RawString(prefix[1:])
+ x.Version.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"nonce\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Nonce)
+ }
+ {
+ const prefix string = ",\"basicACL\":"
+ out.RawString(prefix)
+ out.Uint32(x.BasicAcl)
+ }
+ {
+ const prefix string = ",\"attributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Attributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Attributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"placementPolicy\":"
+ out.RawString(prefix)
+ x.PlacementPolicy.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Container) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Container) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "version":
+ {
+ var f *grpc.Version
+ f = new(grpc.Version)
+ f.UnmarshalEasyJSON(in)
+ x.Version = f
+ }
+ case "ownerID":
+ {
+ var f *grpc.OwnerID
+ f = new(grpc.OwnerID)
+ f.UnmarshalEasyJSON(in)
+ x.OwnerId = f
+ }
+ case "nonce":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Nonce = f
+ }
+ case "basicACL":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.BasicAcl = f
+ }
+ case "attributes":
+ {
+ var f *Container_Attribute
+ var list []*Container_Attribute
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Container_Attribute)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Attributes = list
+ in.Delim(']')
+ }
+ case "placementPolicy":
+ {
+ var f *grpc1.PlacementPolicy
+ f = new(grpc1.PlacementPolicy)
+ f.UnmarshalEasyJSON(in)
+ x.PlacementPolicy = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/container/grpc/types_frostfs_fuzz.go b/container/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..5551978
--- /dev/null
+++ b/container/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,26 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package container
+
+func DoFuzzProtoContainer(data []byte) int {
+ msg := new(Container)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONContainer(data []byte) int {
+ msg := new(Container)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/container/grpc/types_frostfs_test.go b/container/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..64d840e
--- /dev/null
+++ b/container/grpc/types_frostfs_test.go
@@ -0,0 +1,21 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package container
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoContainer(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoContainer(data)
+ })
+}
+func FuzzJSONContainer(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONContainer(data)
+ })
+}
diff --git a/go.mod b/go.mod
index e00f012..13fa1b7 100644
--- a/go.mod
+++ b/go.mod
@@ -4,6 +4,8 @@ go 1.20
require (
git.frostfs.info/TrueCloudLab/frostfs-crypto v0.6.0
+ github.com/VictoriaMetrics/easyproto v0.1.4
+ github.com/mailru/easyjson v0.7.7
github.com/stretchr/testify v1.8.3
golang.org/x/sync v0.6.0
google.golang.org/grpc v1.63.2
@@ -13,6 +15,7 @@ require (
require (
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
+ github.com/josharian/intern v1.0.0 // indirect
github.com/kr/pretty v0.1.0 // indirect
github.com/mr-tron/base58 v1.2.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
diff --git a/go.sum b/go.sum
index 6ce46f7..620642f 100644
--- a/go.sum
+++ b/go.sum
@@ -2,15 +2,21 @@ git.frostfs.info/TrueCloudLab/frostfs-crypto v0.6.0 h1:FxqFDhQYYgpe41qsIHVOcdzSV
git.frostfs.info/TrueCloudLab/frostfs-crypto v0.6.0/go.mod h1:RUIKZATQLJ+TaYQa60X2fTDwfuhMfm8Ar60bQ5fr+vU=
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0 h1:M2KR3iBj7WpY3hP10IevfIB9MURr4O9mwVfJ+SjT3HA=
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0/go.mod h1:okpbKfVYf/BpejtfFTfhZqFP+sZ8rsHrP8Rr/jYPNRc=
+github.com/VictoriaMetrics/easyproto v0.1.4 h1:r8cNvo8o6sR4QShBXQd1bKw/VVLSQma/V2KhTBPf+Sc=
+github.com/VictoriaMetrics/easyproto v0.1.4/go.mod h1:QlGlzaJnDfFd8Lk6Ci/fuLxfTo3/GThPs2KH23mv710=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
+github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
+github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o=
github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
diff --git a/lock/grpc/types.go b/lock/grpc/types.go
deleted file mode 100644
index 9d5719f..0000000
--- a/lock/grpc/types.go
+++ /dev/null
@@ -1,8 +0,0 @@
-package lock
-
-import refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
-
-// SetMembers sets `members` field.
-func (x *Lock) SetMembers(ids []*refs.ObjectID) {
- x.Members = ids
-}
diff --git a/lock/grpc/types.pb.go b/lock/grpc/types.pb.go
deleted file mode 100644
index 38b62fe..0000000
--- a/lock/grpc/types.pb.go
+++ /dev/null
@@ -1,160 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: lock/grpc/types.proto
-
-package lock
-
-import (
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Lock objects protects a list of objects from being deleted. The lifetime of a
-// lock object is limited similar to regular objects in
-// `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated)
-// attribute. Lock object MUST have expiration epoch. It is impossible to delete
-// a lock object via ObjectService.Delete RPC call.
-type Lock struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // List of objects to lock. Must not be empty or carry empty IDs.
- // All members must be of the `REGULAR` type.
- Members []*grpc.ObjectID `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"`
-}
-
-func (x *Lock) Reset() {
- *x = Lock{}
- if protoimpl.UnsafeEnabled {
- mi := &file_lock_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Lock) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Lock) ProtoMessage() {}
-
-func (x *Lock) ProtoReflect() protoreflect.Message {
- mi := &file_lock_grpc_types_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 Lock.ProtoReflect.Descriptor instead.
-func (*Lock) Descriptor() ([]byte, []int) {
- return file_lock_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Lock) GetMembers() []*grpc.ObjectID {
- if x != nil {
- return x.Members
- }
- return nil
-}
-
-var File_lock_grpc_types_proto protoreflect.FileDescriptor
-
-var file_lock_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x15, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x6c, 0x6f, 0x63, 0x6b, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72,
- 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3a,
- 0x0a, 0x04, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72,
- 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49,
- 0x44, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x42, 0x5b, 0x5a, 0x3e, 0x67, 0x69,
- 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54,
- 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73,
- 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x6c, 0x6f,
- 0x63, 0x6b, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x6c, 0x6f, 0x63, 0x6b, 0xaa, 0x02, 0x18, 0x4e,
- 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41,
- 0x50, 0x49, 0x2e, 0x4c, 0x6f, 0x63, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_lock_grpc_types_proto_rawDescOnce sync.Once
- file_lock_grpc_types_proto_rawDescData = file_lock_grpc_types_proto_rawDesc
-)
-
-func file_lock_grpc_types_proto_rawDescGZIP() []byte {
- file_lock_grpc_types_proto_rawDescOnce.Do(func() {
- file_lock_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_lock_grpc_types_proto_rawDescData)
- })
- return file_lock_grpc_types_proto_rawDescData
-}
-
-var file_lock_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_lock_grpc_types_proto_goTypes = []interface{}{
- (*Lock)(nil), // 0: neo.fs.v2.lock.Lock
- (*grpc.ObjectID)(nil), // 1: neo.fs.v2.refs.ObjectID
-}
-var file_lock_grpc_types_proto_depIdxs = []int32{
- 1, // 0: neo.fs.v2.lock.Lock.members:type_name -> neo.fs.v2.refs.ObjectID
- 1, // [1:1] is the sub-list for method output_type
- 1, // [1:1] is the sub-list for method input_type
- 1, // [1:1] is the sub-list for extension type_name
- 1, // [1:1] is the sub-list for extension extendee
- 0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_lock_grpc_types_proto_init() }
-func file_lock_grpc_types_proto_init() {
- if File_lock_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_lock_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Lock); 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_lock_grpc_types_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 1,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_lock_grpc_types_proto_goTypes,
- DependencyIndexes: file_lock_grpc_types_proto_depIdxs,
- MessageInfos: file_lock_grpc_types_proto_msgTypes,
- }.Build()
- File_lock_grpc_types_proto = out.File
- file_lock_grpc_types_proto_rawDesc = nil
- file_lock_grpc_types_proto_goTypes = nil
- file_lock_grpc_types_proto_depIdxs = nil
-}
diff --git a/lock/grpc/types_frostfs.pb.go b/lock/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..3012111
--- /dev/null
+++ b/lock/grpc/types_frostfs.pb.go
@@ -0,0 +1,167 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package lock
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+type Lock struct {
+ Members []*grpc.ObjectID `json:"members"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Lock)(nil)
+ _ encoding.ProtoUnmarshaler = (*Lock)(nil)
+ _ json.Marshaler = (*Lock)(nil)
+ _ json.Unmarshaler = (*Lock)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Lock) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ for i := range x.Members {
+ size += proto.NestedStructureSize(1, x.Members[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Lock) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Lock) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ for i := range x.Members {
+ if x.Members[i] != nil && x.Members[i].StableSize() != 0 {
+ x.Members[i].EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Lock) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Lock")
+ }
+ switch fc.FieldNum {
+ case 1: // Members
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Members")
+ }
+ x.Members = append(x.Members, new(grpc.ObjectID))
+ ff := x.Members[len(x.Members)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *Lock) GetMembers() []*grpc.ObjectID {
+ if x != nil {
+ return x.Members
+ }
+ return nil
+}
+func (x *Lock) SetMembers(v []*grpc.ObjectID) {
+ x.Members = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Lock) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Lock) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"members\":"
+ out.RawString(prefix[1:])
+ out.RawByte('[')
+ for i := range x.Members {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Members[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Lock) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Lock) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "members":
+ {
+ var f *grpc.ObjectID
+ var list []*grpc.ObjectID
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Members = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/lock/grpc/types_frostfs_fuzz.go b/lock/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..cb55151
--- /dev/null
+++ b/lock/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,26 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package lock
+
+func DoFuzzProtoLock(data []byte) int {
+ msg := new(Lock)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONLock(data []byte) int {
+ msg := new(Lock)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/lock/grpc/types_frostfs_test.go b/lock/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..7c69064
--- /dev/null
+++ b/lock/grpc/types_frostfs_test.go
@@ -0,0 +1,21 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package lock
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoLock(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoLock(data)
+ })
+}
+func FuzzJSONLock(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONLock(data)
+ })
+}
diff --git a/netmap/grpc/service.go b/netmap/grpc/service.go
deleted file mode 100644
index 882db6b..0000000
--- a/netmap/grpc/service.go
+++ /dev/null
@@ -1,116 +0,0 @@
-package netmap
-
-import (
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
-)
-
-// SetBody sets body of the request.
-func (m *LocalNodeInfoRequest) SetBody(v *LocalNodeInfoRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *LocalNodeInfoRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *LocalNodeInfoRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetVersion sets version of response body.
-func (m *LocalNodeInfoResponse_Body) SetVersion(v *refs.Version) {
- m.Version = v
-}
-
-// SetNodeInfo sets node info of response body.
-func (m *LocalNodeInfoResponse_Body) SetNodeInfo(v *NodeInfo) {
- m.NodeInfo = v
-}
-
-// SetBody sets body of the response.
-func (m *LocalNodeInfoResponse) SetBody(v *LocalNodeInfoResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *LocalNodeInfoResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *LocalNodeInfoResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetBody sets body of the request.
-func (x *NetworkInfoRequest) SetBody(v *NetworkInfoRequest_Body) {
- x.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (x *NetworkInfoRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- x.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (x *NetworkInfoRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- x.VerifyHeader = v
-}
-
-// SetNetworkInfo sets information about the network.
-func (x *NetworkInfoResponse_Body) SetNetworkInfo(v *NetworkInfo) {
- x.NetworkInfo = v
-}
-
-// SetBody sets body of the response.
-func (x *NetworkInfoResponse) SetBody(v *NetworkInfoResponse_Body) {
- x.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (x *NetworkInfoResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- x.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (x *NetworkInfoResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- x.VerifyHeader = v
-}
-
-// SetBody sets body of the request.
-func (x *NetmapSnapshotRequest) SetBody(v *NetmapSnapshotRequest_Body) {
- x.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (x *NetmapSnapshotRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- x.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (x *NetmapSnapshotRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- x.VerifyHeader = v
-}
-
-// SetNetmap sets current Netmap.
-func (x *NetmapSnapshotResponse_Body) SetNetmap(v *Netmap) {
- x.Netmap = v
-}
-
-// SetBody sets body of the response.
-func (x *NetmapSnapshotResponse) SetBody(v *NetmapSnapshotResponse_Body) {
- x.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (x *NetmapSnapshotResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- x.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (x *NetmapSnapshotResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- x.VerifyHeader = v
-}
diff --git a/netmap/grpc/service.pb.go b/netmap/grpc/service.pb.go
deleted file mode 100644
index eb91862..0000000
--- a/netmap/grpc/service.pb.go
+++ /dev/null
@@ -1,1108 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: netmap/grpc/service.proto
-
-package netmap
-
-import (
- grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Get NodeInfo structure directly from a particular node
-type LocalNodeInfoRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of the LocalNodeInfo request message
- Body *LocalNodeInfoRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *LocalNodeInfoRequest) Reset() {
- *x = LocalNodeInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *LocalNodeInfoRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LocalNodeInfoRequest) ProtoMessage() {}
-
-func (x *LocalNodeInfoRequest) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use LocalNodeInfoRequest.ProtoReflect.Descriptor instead.
-func (*LocalNodeInfoRequest) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *LocalNodeInfoRequest) GetBody() *LocalNodeInfoRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *LocalNodeInfoRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *LocalNodeInfoRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Local Node Info, including API Version in use
-type LocalNodeInfoResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of the balance response message.
- Body *LocalNodeInfoResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect response execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *LocalNodeInfoResponse) Reset() {
- *x = LocalNodeInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *LocalNodeInfoResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LocalNodeInfoResponse) ProtoMessage() {}
-
-func (x *LocalNodeInfoResponse) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use LocalNodeInfoResponse.ProtoReflect.Descriptor instead.
-func (*LocalNodeInfoResponse) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *LocalNodeInfoResponse) GetBody() *LocalNodeInfoResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *LocalNodeInfoResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *LocalNodeInfoResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Get NetworkInfo structure with the network view from a particular node.
-type NetworkInfoRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of the NetworkInfo request message
- Body *NetworkInfoRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *NetworkInfoRequest) Reset() {
- *x = NetworkInfoRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetworkInfoRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetworkInfoRequest) ProtoMessage() {}
-
-func (x *NetworkInfoRequest) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use NetworkInfoRequest.ProtoReflect.Descriptor instead.
-func (*NetworkInfoRequest) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *NetworkInfoRequest) GetBody() *NetworkInfoRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *NetworkInfoRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *NetworkInfoRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Response with NetworkInfo structure including current epoch and
-// sidechain magic number.
-type NetworkInfoResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of the NetworkInfo response message.
- Body *NetworkInfoResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect response execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *NetworkInfoResponse) Reset() {
- *x = NetworkInfoResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetworkInfoResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetworkInfoResponse) ProtoMessage() {}
-
-func (x *NetworkInfoResponse) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use NetworkInfoResponse.ProtoReflect.Descriptor instead.
-func (*NetworkInfoResponse) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *NetworkInfoResponse) GetBody() *NetworkInfoResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *NetworkInfoResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *NetworkInfoResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Get netmap snapshot request
-type NetmapSnapshotRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get netmap snapshot request message.
- Body *NetmapSnapshotRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *NetmapSnapshotRequest) Reset() {
- *x = NetmapSnapshotRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetmapSnapshotRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetmapSnapshotRequest) ProtoMessage() {}
-
-func (x *NetmapSnapshotRequest) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use NetmapSnapshotRequest.ProtoReflect.Descriptor instead.
-func (*NetmapSnapshotRequest) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *NetmapSnapshotRequest) GetBody() *NetmapSnapshotRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *NetmapSnapshotRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *NetmapSnapshotRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Response with current netmap snapshot
-type NetmapSnapshotResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get netmap snapshot response message.
- Body *NetmapSnapshotResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect response execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *NetmapSnapshotResponse) Reset() {
- *x = NetmapSnapshotResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetmapSnapshotResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetmapSnapshotResponse) ProtoMessage() {}
-
-func (x *NetmapSnapshotResponse) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use NetmapSnapshotResponse.ProtoReflect.Descriptor instead.
-func (*NetmapSnapshotResponse) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *NetmapSnapshotResponse) GetBody() *NetmapSnapshotResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *NetmapSnapshotResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *NetmapSnapshotResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// LocalNodeInfo request body is empty.
-type LocalNodeInfoRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-}
-
-func (x *LocalNodeInfoRequest_Body) Reset() {
- *x = LocalNodeInfoRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *LocalNodeInfoRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LocalNodeInfoRequest_Body) ProtoMessage() {}
-
-func (x *LocalNodeInfoRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_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 LocalNodeInfoRequest_Body.ProtoReflect.Descriptor instead.
-func (*LocalNodeInfoRequest_Body) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{0, 0}
-}
-
-// Local Node Info, including API Version in use.
-type LocalNodeInfoResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Latest NeoFS API version in use
- Version *grpc1.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
- // NodeInfo structure with recent information from node itself
- NodeInfo *NodeInfo `protobuf:"bytes,2,opt,name=node_info,json=nodeInfo,proto3" json:"node_info,omitempty"`
-}
-
-func (x *LocalNodeInfoResponse_Body) Reset() {
- *x = LocalNodeInfoResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *LocalNodeInfoResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*LocalNodeInfoResponse_Body) ProtoMessage() {}
-
-func (x *LocalNodeInfoResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_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 LocalNodeInfoResponse_Body.ProtoReflect.Descriptor instead.
-func (*LocalNodeInfoResponse_Body) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (x *LocalNodeInfoResponse_Body) GetVersion() *grpc1.Version {
- if x != nil {
- return x.Version
- }
- return nil
-}
-
-func (x *LocalNodeInfoResponse_Body) GetNodeInfo() *NodeInfo {
- if x != nil {
- return x.NodeInfo
- }
- return nil
-}
-
-// NetworkInfo request body is empty.
-type NetworkInfoRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-}
-
-func (x *NetworkInfoRequest_Body) Reset() {
- *x = NetworkInfoRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetworkInfoRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetworkInfoRequest_Body) ProtoMessage() {}
-
-func (x *NetworkInfoRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_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 NetworkInfoRequest_Body.ProtoReflect.Descriptor instead.
-func (*NetworkInfoRequest_Body) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{2, 0}
-}
-
-// Information about the network.
-type NetworkInfoResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // NetworkInfo structure with recent information.
- NetworkInfo *NetworkInfo `protobuf:"bytes,1,opt,name=network_info,json=networkInfo,proto3" json:"network_info,omitempty"`
-}
-
-func (x *NetworkInfoResponse_Body) Reset() {
- *x = NetworkInfoResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetworkInfoResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetworkInfoResponse_Body) ProtoMessage() {}
-
-func (x *NetworkInfoResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_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 NetworkInfoResponse_Body.ProtoReflect.Descriptor instead.
-func (*NetworkInfoResponse_Body) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{3, 0}
-}
-
-func (x *NetworkInfoResponse_Body) GetNetworkInfo() *NetworkInfo {
- if x != nil {
- return x.NetworkInfo
- }
- return nil
-}
-
-// Get netmap snapshot request body.
-type NetmapSnapshotRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-}
-
-func (x *NetmapSnapshotRequest_Body) Reset() {
- *x = NetmapSnapshotRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetmapSnapshotRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetmapSnapshotRequest_Body) ProtoMessage() {}
-
-func (x *NetmapSnapshotRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_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 NetmapSnapshotRequest_Body.ProtoReflect.Descriptor instead.
-func (*NetmapSnapshotRequest_Body) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{4, 0}
-}
-
-// Get netmap snapshot response body
-type NetmapSnapshotResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Structure of the requested network map.
- Netmap *Netmap `protobuf:"bytes,1,opt,name=netmap,proto3" json:"netmap,omitempty"`
-}
-
-func (x *NetmapSnapshotResponse_Body) Reset() {
- *x = NetmapSnapshotResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_service_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetmapSnapshotResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetmapSnapshotResponse_Body) ProtoMessage() {}
-
-func (x *NetmapSnapshotResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_service_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 NetmapSnapshotResponse_Body.ProtoReflect.Descriptor instead.
-func (*NetmapSnapshotResponse_Body) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_service_proto_rawDescGZIP(), []int{5, 0}
-}
-
-func (x *NetmapSnapshotResponse_Body) GetNetmap() *Netmap {
- if x != nil {
- return x.Netmap
- }
- return nil
-}
-
-var File_netmap_grpc_service_proto protoreflect.FileDescriptor
-
-var file_netmap_grpc_service_proto_rawDesc = []byte{
- 0x0a, 0x19, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x65,
- 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x1a, 0x17, 0x6e,
- 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70,
- 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x73,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf9, 0x01, 0x0a, 0x14, 0x4c, 0x6f, 0x63, 0x61,
- 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x3f, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61,
- 0x70, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64,
- 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65,
- 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69,
- 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
- 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76,
- 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x06, 0x0a, 0x04, 0x42,
- 0x6f, 0x64, 0x79, 0x22, 0xe9, 0x02, 0x0a, 0x15, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x64,
- 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a,
- 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4c,
- 0x6f, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12,
- 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76,
- 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x72, 0x0a, 0x04, 0x42,
- 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76,
- 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69,
- 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64,
- 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22,
- 0xf5, 0x01, 0x0a, 0x12, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49,
- 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52,
- 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d,
- 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56,
- 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a,
- 0x06, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xbb, 0x02, 0x0a, 0x13, 0x4e, 0x65, 0x74, 0x77,
- 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x3e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70,
- 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12,
- 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76,
- 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x48, 0x0a, 0x04, 0x42,
- 0x6f, 0x64, 0x79, 0x12, 0x40, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69,
- 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74,
- 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72,
- 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xfb, 0x01, 0x0a, 0x15, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70,
- 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
- 0x40, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70,
- 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64,
- 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65,
- 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69,
- 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
- 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76,
- 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x06, 0x0a, 0x04, 0x42,
- 0x6f, 0x64, 0x79, 0x22, 0xb1, 0x02, 0x0a, 0x16, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x6e,
- 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41,
- 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e,
- 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64,
- 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d,
- 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72,
- 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72,
- 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
- 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x38, 0x0a,
- 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x30, 0x0a, 0x06, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x52,
- 0x06, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x32, 0xb2, 0x02, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x6d,
- 0x61, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x60, 0x0a, 0x0d, 0x4c, 0x6f, 0x63,
- 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4c, 0x6f,
- 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e,
- 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x49,
- 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0b, 0x4e,
- 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65,
- 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74,
- 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x0e, 0x4e, 0x65, 0x74, 0x6d, 0x61,
- 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74,
- 0x6d, 0x61, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e,
- 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x6e, 0x61, 0x70,
- 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x61, 0x5a, 0x42,
- 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f,
- 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72,
- 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f,
- 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x6e, 0x65, 0x74, 0x6d,
- 0x61, 0x70, 0xaa, 0x02, 0x1a, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f,
- 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_netmap_grpc_service_proto_rawDescOnce sync.Once
- file_netmap_grpc_service_proto_rawDescData = file_netmap_grpc_service_proto_rawDesc
-)
-
-func file_netmap_grpc_service_proto_rawDescGZIP() []byte {
- file_netmap_grpc_service_proto_rawDescOnce.Do(func() {
- file_netmap_grpc_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_netmap_grpc_service_proto_rawDescData)
- })
- return file_netmap_grpc_service_proto_rawDescData
-}
-
-var file_netmap_grpc_service_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
-var file_netmap_grpc_service_proto_goTypes = []interface{}{
- (*LocalNodeInfoRequest)(nil), // 0: neo.fs.v2.netmap.LocalNodeInfoRequest
- (*LocalNodeInfoResponse)(nil), // 1: neo.fs.v2.netmap.LocalNodeInfoResponse
- (*NetworkInfoRequest)(nil), // 2: neo.fs.v2.netmap.NetworkInfoRequest
- (*NetworkInfoResponse)(nil), // 3: neo.fs.v2.netmap.NetworkInfoResponse
- (*NetmapSnapshotRequest)(nil), // 4: neo.fs.v2.netmap.NetmapSnapshotRequest
- (*NetmapSnapshotResponse)(nil), // 5: neo.fs.v2.netmap.NetmapSnapshotResponse
- (*LocalNodeInfoRequest_Body)(nil), // 6: neo.fs.v2.netmap.LocalNodeInfoRequest.Body
- (*LocalNodeInfoResponse_Body)(nil), // 7: neo.fs.v2.netmap.LocalNodeInfoResponse.Body
- (*NetworkInfoRequest_Body)(nil), // 8: neo.fs.v2.netmap.NetworkInfoRequest.Body
- (*NetworkInfoResponse_Body)(nil), // 9: neo.fs.v2.netmap.NetworkInfoResponse.Body
- (*NetmapSnapshotRequest_Body)(nil), // 10: neo.fs.v2.netmap.NetmapSnapshotRequest.Body
- (*NetmapSnapshotResponse_Body)(nil), // 11: neo.fs.v2.netmap.NetmapSnapshotResponse.Body
- (*grpc.RequestMetaHeader)(nil), // 12: neo.fs.v2.session.RequestMetaHeader
- (*grpc.RequestVerificationHeader)(nil), // 13: neo.fs.v2.session.RequestVerificationHeader
- (*grpc.ResponseMetaHeader)(nil), // 14: neo.fs.v2.session.ResponseMetaHeader
- (*grpc.ResponseVerificationHeader)(nil), // 15: neo.fs.v2.session.ResponseVerificationHeader
- (*grpc1.Version)(nil), // 16: neo.fs.v2.refs.Version
- (*NodeInfo)(nil), // 17: neo.fs.v2.netmap.NodeInfo
- (*NetworkInfo)(nil), // 18: neo.fs.v2.netmap.NetworkInfo
- (*Netmap)(nil), // 19: neo.fs.v2.netmap.Netmap
-}
-var file_netmap_grpc_service_proto_depIdxs = []int32{
- 6, // 0: neo.fs.v2.netmap.LocalNodeInfoRequest.body:type_name -> neo.fs.v2.netmap.LocalNodeInfoRequest.Body
- 12, // 1: neo.fs.v2.netmap.LocalNodeInfoRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 13, // 2: neo.fs.v2.netmap.LocalNodeInfoRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 7, // 3: neo.fs.v2.netmap.LocalNodeInfoResponse.body:type_name -> neo.fs.v2.netmap.LocalNodeInfoResponse.Body
- 14, // 4: neo.fs.v2.netmap.LocalNodeInfoResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 15, // 5: neo.fs.v2.netmap.LocalNodeInfoResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 8, // 6: neo.fs.v2.netmap.NetworkInfoRequest.body:type_name -> neo.fs.v2.netmap.NetworkInfoRequest.Body
- 12, // 7: neo.fs.v2.netmap.NetworkInfoRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 13, // 8: neo.fs.v2.netmap.NetworkInfoRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 9, // 9: neo.fs.v2.netmap.NetworkInfoResponse.body:type_name -> neo.fs.v2.netmap.NetworkInfoResponse.Body
- 14, // 10: neo.fs.v2.netmap.NetworkInfoResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 15, // 11: neo.fs.v2.netmap.NetworkInfoResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 10, // 12: neo.fs.v2.netmap.NetmapSnapshotRequest.body:type_name -> neo.fs.v2.netmap.NetmapSnapshotRequest.Body
- 12, // 13: neo.fs.v2.netmap.NetmapSnapshotRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 13, // 14: neo.fs.v2.netmap.NetmapSnapshotRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 11, // 15: neo.fs.v2.netmap.NetmapSnapshotResponse.body:type_name -> neo.fs.v2.netmap.NetmapSnapshotResponse.Body
- 14, // 16: neo.fs.v2.netmap.NetmapSnapshotResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 15, // 17: neo.fs.v2.netmap.NetmapSnapshotResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 16, // 18: neo.fs.v2.netmap.LocalNodeInfoResponse.Body.version:type_name -> neo.fs.v2.refs.Version
- 17, // 19: neo.fs.v2.netmap.LocalNodeInfoResponse.Body.node_info:type_name -> neo.fs.v2.netmap.NodeInfo
- 18, // 20: neo.fs.v2.netmap.NetworkInfoResponse.Body.network_info:type_name -> neo.fs.v2.netmap.NetworkInfo
- 19, // 21: neo.fs.v2.netmap.NetmapSnapshotResponse.Body.netmap:type_name -> neo.fs.v2.netmap.Netmap
- 0, // 22: neo.fs.v2.netmap.NetmapService.LocalNodeInfo:input_type -> neo.fs.v2.netmap.LocalNodeInfoRequest
- 2, // 23: neo.fs.v2.netmap.NetmapService.NetworkInfo:input_type -> neo.fs.v2.netmap.NetworkInfoRequest
- 4, // 24: neo.fs.v2.netmap.NetmapService.NetmapSnapshot:input_type -> neo.fs.v2.netmap.NetmapSnapshotRequest
- 1, // 25: neo.fs.v2.netmap.NetmapService.LocalNodeInfo:output_type -> neo.fs.v2.netmap.LocalNodeInfoResponse
- 3, // 26: neo.fs.v2.netmap.NetmapService.NetworkInfo:output_type -> neo.fs.v2.netmap.NetworkInfoResponse
- 5, // 27: neo.fs.v2.netmap.NetmapService.NetmapSnapshot:output_type -> neo.fs.v2.netmap.NetmapSnapshotResponse
- 25, // [25:28] is the sub-list for method output_type
- 22, // [22:25] is the sub-list for method input_type
- 22, // [22:22] is the sub-list for extension type_name
- 22, // [22:22] is the sub-list for extension extendee
- 0, // [0:22] is the sub-list for field type_name
-}
-
-func init() { file_netmap_grpc_service_proto_init() }
-func file_netmap_grpc_service_proto_init() {
- if File_netmap_grpc_service_proto != nil {
- return
- }
- file_netmap_grpc_types_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_netmap_grpc_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LocalNodeInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LocalNodeInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetworkInfoRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetworkInfoResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetmapSnapshotRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetmapSnapshotResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LocalNodeInfoRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LocalNodeInfoResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetworkInfoRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetworkInfoResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetmapSnapshotRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetmapSnapshotResponse_Body); 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_netmap_grpc_service_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 12,
- NumExtensions: 0,
- NumServices: 1,
- },
- GoTypes: file_netmap_grpc_service_proto_goTypes,
- DependencyIndexes: file_netmap_grpc_service_proto_depIdxs,
- MessageInfos: file_netmap_grpc_service_proto_msgTypes,
- }.Build()
- File_netmap_grpc_service_proto = out.File
- file_netmap_grpc_service_proto_rawDesc = nil
- file_netmap_grpc_service_proto_goTypes = nil
- file_netmap_grpc_service_proto_depIdxs = nil
-}
diff --git a/netmap/grpc/service_frostfs.pb.go b/netmap/grpc/service_frostfs.pb.go
new file mode 100644
index 0000000..1ce80ff
--- /dev/null
+++ b/netmap/grpc/service_frostfs.pb.go
@@ -0,0 +1,2061 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package netmap
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+type LocalNodeInfoRequest_Body struct {
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*LocalNodeInfoRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*LocalNodeInfoRequest_Body)(nil)
+ _ json.Marshaler = (*LocalNodeInfoRequest_Body)(nil)
+ _ json.Unmarshaler = (*LocalNodeInfoRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *LocalNodeInfoRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *LocalNodeInfoRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *LocalNodeInfoRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *LocalNodeInfoRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "LocalNodeInfoRequest_Body")
+ }
+ switch fc.FieldNum {
+ }
+ }
+ return nil
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *LocalNodeInfoRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *LocalNodeInfoRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *LocalNodeInfoRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *LocalNodeInfoRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type LocalNodeInfoRequest struct {
+ Body *LocalNodeInfoRequest_Body `json:"body"`
+ MetaHeader *grpc.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*LocalNodeInfoRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*LocalNodeInfoRequest)(nil)
+ _ json.Marshaler = (*LocalNodeInfoRequest)(nil)
+ _ json.Unmarshaler = (*LocalNodeInfoRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *LocalNodeInfoRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *LocalNodeInfoRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *LocalNodeInfoRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *LocalNodeInfoRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *LocalNodeInfoRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *LocalNodeInfoRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "LocalNodeInfoRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(LocalNodeInfoRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *LocalNodeInfoRequest) GetBody() *LocalNodeInfoRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *LocalNodeInfoRequest) SetBody(v *LocalNodeInfoRequest_Body) {
+ x.Body = v
+}
+func (x *LocalNodeInfoRequest) GetMetaHeader() *grpc.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *LocalNodeInfoRequest) SetMetaHeader(v *grpc.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *LocalNodeInfoRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *LocalNodeInfoRequest) SetVerifyHeader(v *grpc.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *LocalNodeInfoRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *LocalNodeInfoRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *LocalNodeInfoRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *LocalNodeInfoRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *LocalNodeInfoRequest_Body
+ f = new(LocalNodeInfoRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc.RequestMetaHeader
+ f = new(grpc.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc.RequestVerificationHeader
+ f = new(grpc.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type LocalNodeInfoResponse_Body struct {
+ Version *grpc1.Version `json:"version"`
+ NodeInfo *NodeInfo `json:"nodeInfo"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*LocalNodeInfoResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*LocalNodeInfoResponse_Body)(nil)
+ _ json.Marshaler = (*LocalNodeInfoResponse_Body)(nil)
+ _ json.Unmarshaler = (*LocalNodeInfoResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *LocalNodeInfoResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Version)
+ size += proto.NestedStructureSize(2, x.NodeInfo)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *LocalNodeInfoResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *LocalNodeInfoResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Version != nil && x.Version.StableSize() != 0 {
+ x.Version.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.NodeInfo != nil && x.NodeInfo.StableSize() != 0 {
+ x.NodeInfo.EmitProtobuf(mm.AppendMessage(2))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *LocalNodeInfoResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "LocalNodeInfoResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Version
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Version")
+ }
+ x.Version = new(grpc1.Version)
+ if err := x.Version.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // NodeInfo
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "NodeInfo")
+ }
+ x.NodeInfo = new(NodeInfo)
+ if err := x.NodeInfo.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *LocalNodeInfoResponse_Body) GetVersion() *grpc1.Version {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+func (x *LocalNodeInfoResponse_Body) SetVersion(v *grpc1.Version) {
+ x.Version = v
+}
+func (x *LocalNodeInfoResponse_Body) GetNodeInfo() *NodeInfo {
+ if x != nil {
+ return x.NodeInfo
+ }
+ return nil
+}
+func (x *LocalNodeInfoResponse_Body) SetNodeInfo(v *NodeInfo) {
+ x.NodeInfo = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *LocalNodeInfoResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *LocalNodeInfoResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"version\":"
+ out.RawString(prefix[1:])
+ x.Version.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"nodeInfo\":"
+ out.RawString(prefix)
+ x.NodeInfo.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *LocalNodeInfoResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *LocalNodeInfoResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "version":
+ {
+ var f *grpc1.Version
+ f = new(grpc1.Version)
+ f.UnmarshalEasyJSON(in)
+ x.Version = f
+ }
+ case "nodeInfo":
+ {
+ var f *NodeInfo
+ f = new(NodeInfo)
+ f.UnmarshalEasyJSON(in)
+ x.NodeInfo = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type LocalNodeInfoResponse struct {
+ Body *LocalNodeInfoResponse_Body `json:"body"`
+ MetaHeader *grpc.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*LocalNodeInfoResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*LocalNodeInfoResponse)(nil)
+ _ json.Marshaler = (*LocalNodeInfoResponse)(nil)
+ _ json.Unmarshaler = (*LocalNodeInfoResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *LocalNodeInfoResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *LocalNodeInfoResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *LocalNodeInfoResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *LocalNodeInfoResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *LocalNodeInfoResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *LocalNodeInfoResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "LocalNodeInfoResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(LocalNodeInfoResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *LocalNodeInfoResponse) GetBody() *LocalNodeInfoResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *LocalNodeInfoResponse) SetBody(v *LocalNodeInfoResponse_Body) {
+ x.Body = v
+}
+func (x *LocalNodeInfoResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *LocalNodeInfoResponse) SetMetaHeader(v *grpc.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *LocalNodeInfoResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *LocalNodeInfoResponse) SetVerifyHeader(v *grpc.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *LocalNodeInfoResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *LocalNodeInfoResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *LocalNodeInfoResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *LocalNodeInfoResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *LocalNodeInfoResponse_Body
+ f = new(LocalNodeInfoResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc.ResponseMetaHeader
+ f = new(grpc.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc.ResponseVerificationHeader
+ f = new(grpc.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetworkInfoRequest_Body struct {
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetworkInfoRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetworkInfoRequest_Body)(nil)
+ _ json.Marshaler = (*NetworkInfoRequest_Body)(nil)
+ _ json.Unmarshaler = (*NetworkInfoRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetworkInfoRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetworkInfoRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetworkInfoRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetworkInfoRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetworkInfoRequest_Body")
+ }
+ switch fc.FieldNum {
+ }
+ }
+ return nil
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetworkInfoRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetworkInfoRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetworkInfoRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetworkInfoRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetworkInfoRequest struct {
+ Body *NetworkInfoRequest_Body `json:"body"`
+ MetaHeader *grpc.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetworkInfoRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetworkInfoRequest)(nil)
+ _ json.Marshaler = (*NetworkInfoRequest)(nil)
+ _ json.Unmarshaler = (*NetworkInfoRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetworkInfoRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *NetworkInfoRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *NetworkInfoRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetworkInfoRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetworkInfoRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetworkInfoRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetworkInfoRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(NetworkInfoRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *NetworkInfoRequest) GetBody() *NetworkInfoRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *NetworkInfoRequest) SetBody(v *NetworkInfoRequest_Body) {
+ x.Body = v
+}
+func (x *NetworkInfoRequest) GetMetaHeader() *grpc.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *NetworkInfoRequest) SetMetaHeader(v *grpc.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *NetworkInfoRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *NetworkInfoRequest) SetVerifyHeader(v *grpc.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetworkInfoRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetworkInfoRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetworkInfoRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetworkInfoRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *NetworkInfoRequest_Body
+ f = new(NetworkInfoRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc.RequestMetaHeader
+ f = new(grpc.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc.RequestVerificationHeader
+ f = new(grpc.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetworkInfoResponse_Body struct {
+ NetworkInfo *NetworkInfo `json:"networkInfo"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetworkInfoResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetworkInfoResponse_Body)(nil)
+ _ json.Marshaler = (*NetworkInfoResponse_Body)(nil)
+ _ json.Unmarshaler = (*NetworkInfoResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetworkInfoResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.NetworkInfo)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetworkInfoResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetworkInfoResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.NetworkInfo != nil && x.NetworkInfo.StableSize() != 0 {
+ x.NetworkInfo.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetworkInfoResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetworkInfoResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // NetworkInfo
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "NetworkInfo")
+ }
+ x.NetworkInfo = new(NetworkInfo)
+ if err := x.NetworkInfo.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *NetworkInfoResponse_Body) GetNetworkInfo() *NetworkInfo {
+ if x != nil {
+ return x.NetworkInfo
+ }
+ return nil
+}
+func (x *NetworkInfoResponse_Body) SetNetworkInfo(v *NetworkInfo) {
+ x.NetworkInfo = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetworkInfoResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetworkInfoResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"networkInfo\":"
+ out.RawString(prefix[1:])
+ x.NetworkInfo.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetworkInfoResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetworkInfoResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "networkInfo":
+ {
+ var f *NetworkInfo
+ f = new(NetworkInfo)
+ f.UnmarshalEasyJSON(in)
+ x.NetworkInfo = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetworkInfoResponse struct {
+ Body *NetworkInfoResponse_Body `json:"body"`
+ MetaHeader *grpc.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetworkInfoResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetworkInfoResponse)(nil)
+ _ json.Marshaler = (*NetworkInfoResponse)(nil)
+ _ json.Unmarshaler = (*NetworkInfoResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetworkInfoResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *NetworkInfoResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *NetworkInfoResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetworkInfoResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetworkInfoResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetworkInfoResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetworkInfoResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(NetworkInfoResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *NetworkInfoResponse) GetBody() *NetworkInfoResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *NetworkInfoResponse) SetBody(v *NetworkInfoResponse_Body) {
+ x.Body = v
+}
+func (x *NetworkInfoResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *NetworkInfoResponse) SetMetaHeader(v *grpc.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *NetworkInfoResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *NetworkInfoResponse) SetVerifyHeader(v *grpc.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetworkInfoResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetworkInfoResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetworkInfoResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetworkInfoResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *NetworkInfoResponse_Body
+ f = new(NetworkInfoResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc.ResponseMetaHeader
+ f = new(grpc.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc.ResponseVerificationHeader
+ f = new(grpc.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetmapSnapshotRequest_Body struct {
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetmapSnapshotRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetmapSnapshotRequest_Body)(nil)
+ _ json.Marshaler = (*NetmapSnapshotRequest_Body)(nil)
+ _ json.Unmarshaler = (*NetmapSnapshotRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetmapSnapshotRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetmapSnapshotRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetmapSnapshotRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetmapSnapshotRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetmapSnapshotRequest_Body")
+ }
+ switch fc.FieldNum {
+ }
+ }
+ return nil
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetmapSnapshotRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetmapSnapshotRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetmapSnapshotRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetmapSnapshotRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetmapSnapshotRequest struct {
+ Body *NetmapSnapshotRequest_Body `json:"body"`
+ MetaHeader *grpc.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetmapSnapshotRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetmapSnapshotRequest)(nil)
+ _ json.Marshaler = (*NetmapSnapshotRequest)(nil)
+ _ json.Unmarshaler = (*NetmapSnapshotRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetmapSnapshotRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *NetmapSnapshotRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *NetmapSnapshotRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetmapSnapshotRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetmapSnapshotRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetmapSnapshotRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetmapSnapshotRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(NetmapSnapshotRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *NetmapSnapshotRequest) GetBody() *NetmapSnapshotRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *NetmapSnapshotRequest) SetBody(v *NetmapSnapshotRequest_Body) {
+ x.Body = v
+}
+func (x *NetmapSnapshotRequest) GetMetaHeader() *grpc.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *NetmapSnapshotRequest) SetMetaHeader(v *grpc.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *NetmapSnapshotRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *NetmapSnapshotRequest) SetVerifyHeader(v *grpc.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetmapSnapshotRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetmapSnapshotRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetmapSnapshotRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetmapSnapshotRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *NetmapSnapshotRequest_Body
+ f = new(NetmapSnapshotRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc.RequestMetaHeader
+ f = new(grpc.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc.RequestVerificationHeader
+ f = new(grpc.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetmapSnapshotResponse_Body struct {
+ Netmap *Netmap `json:"netmap"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetmapSnapshotResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetmapSnapshotResponse_Body)(nil)
+ _ json.Marshaler = (*NetmapSnapshotResponse_Body)(nil)
+ _ json.Unmarshaler = (*NetmapSnapshotResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetmapSnapshotResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Netmap)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetmapSnapshotResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetmapSnapshotResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Netmap != nil && x.Netmap.StableSize() != 0 {
+ x.Netmap.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetmapSnapshotResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetmapSnapshotResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Netmap
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Netmap")
+ }
+ x.Netmap = new(Netmap)
+ if err := x.Netmap.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *NetmapSnapshotResponse_Body) GetNetmap() *Netmap {
+ if x != nil {
+ return x.Netmap
+ }
+ return nil
+}
+func (x *NetmapSnapshotResponse_Body) SetNetmap(v *Netmap) {
+ x.Netmap = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetmapSnapshotResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetmapSnapshotResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"netmap\":"
+ out.RawString(prefix[1:])
+ x.Netmap.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetmapSnapshotResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetmapSnapshotResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "netmap":
+ {
+ var f *Netmap
+ f = new(Netmap)
+ f.UnmarshalEasyJSON(in)
+ x.Netmap = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetmapSnapshotResponse struct {
+ Body *NetmapSnapshotResponse_Body `json:"body"`
+ MetaHeader *grpc.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetmapSnapshotResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetmapSnapshotResponse)(nil)
+ _ json.Marshaler = (*NetmapSnapshotResponse)(nil)
+ _ json.Unmarshaler = (*NetmapSnapshotResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetmapSnapshotResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *NetmapSnapshotResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *NetmapSnapshotResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetmapSnapshotResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetmapSnapshotResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetmapSnapshotResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetmapSnapshotResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(NetmapSnapshotResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *NetmapSnapshotResponse) GetBody() *NetmapSnapshotResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *NetmapSnapshotResponse) SetBody(v *NetmapSnapshotResponse_Body) {
+ x.Body = v
+}
+func (x *NetmapSnapshotResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *NetmapSnapshotResponse) SetMetaHeader(v *grpc.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *NetmapSnapshotResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *NetmapSnapshotResponse) SetVerifyHeader(v *grpc.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetmapSnapshotResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetmapSnapshotResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetmapSnapshotResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetmapSnapshotResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *NetmapSnapshotResponse_Body
+ f = new(NetmapSnapshotResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc.ResponseMetaHeader
+ f = new(grpc.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc.ResponseVerificationHeader
+ f = new(grpc.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/netmap/grpc/service_frostfs_fuzz.go b/netmap/grpc/service_frostfs_fuzz.go
new file mode 100644
index 0000000..ebb59bc
--- /dev/null
+++ b/netmap/grpc/service_frostfs_fuzz.go
@@ -0,0 +1,121 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package netmap
+
+func DoFuzzProtoLocalNodeInfoRequest(data []byte) int {
+ msg := new(LocalNodeInfoRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONLocalNodeInfoRequest(data []byte) int {
+ msg := new(LocalNodeInfoRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoLocalNodeInfoResponse(data []byte) int {
+ msg := new(LocalNodeInfoResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONLocalNodeInfoResponse(data []byte) int {
+ msg := new(LocalNodeInfoResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoNetworkInfoRequest(data []byte) int {
+ msg := new(NetworkInfoRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONNetworkInfoRequest(data []byte) int {
+ msg := new(NetworkInfoRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoNetworkInfoResponse(data []byte) int {
+ msg := new(NetworkInfoResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONNetworkInfoResponse(data []byte) int {
+ msg := new(NetworkInfoResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoNetmapSnapshotRequest(data []byte) int {
+ msg := new(NetmapSnapshotRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONNetmapSnapshotRequest(data []byte) int {
+ msg := new(NetmapSnapshotRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoNetmapSnapshotResponse(data []byte) int {
+ msg := new(NetmapSnapshotResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONNetmapSnapshotResponse(data []byte) int {
+ msg := new(NetmapSnapshotResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/netmap/grpc/service_frostfs_test.go b/netmap/grpc/service_frostfs_test.go
new file mode 100644
index 0000000..5c9035f
--- /dev/null
+++ b/netmap/grpc/service_frostfs_test.go
@@ -0,0 +1,71 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package netmap
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoLocalNodeInfoRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoLocalNodeInfoRequest(data)
+ })
+}
+func FuzzJSONLocalNodeInfoRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONLocalNodeInfoRequest(data)
+ })
+}
+func FuzzProtoLocalNodeInfoResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoLocalNodeInfoResponse(data)
+ })
+}
+func FuzzJSONLocalNodeInfoResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONLocalNodeInfoResponse(data)
+ })
+}
+func FuzzProtoNetworkInfoRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoNetworkInfoRequest(data)
+ })
+}
+func FuzzJSONNetworkInfoRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONNetworkInfoRequest(data)
+ })
+}
+func FuzzProtoNetworkInfoResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoNetworkInfoResponse(data)
+ })
+}
+func FuzzJSONNetworkInfoResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONNetworkInfoResponse(data)
+ })
+}
+func FuzzProtoNetmapSnapshotRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoNetmapSnapshotRequest(data)
+ })
+}
+func FuzzJSONNetmapSnapshotRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONNetmapSnapshotRequest(data)
+ })
+}
+func FuzzProtoNetmapSnapshotResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoNetmapSnapshotResponse(data)
+ })
+}
+func FuzzJSONNetmapSnapshotResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONNetmapSnapshotResponse(data)
+ })
+}
diff --git a/netmap/grpc/types.go b/netmap/grpc/types.go
deleted file mode 100644
index f4e90f8..0000000
--- a/netmap/grpc/types.go
+++ /dev/null
@@ -1,212 +0,0 @@
-package netmap
-
-// SetReplicas of placement policy.
-func (m *PlacementPolicy) SetReplicas(v []*Replica) {
- m.Replicas = v
-}
-
-// SetContainerBackupFactor of placement policy.
-func (m *PlacementPolicy) SetContainerBackupFactor(v uint32) {
- m.ContainerBackupFactor = v
-}
-
-// SetSelectors of placement policy.
-func (m *PlacementPolicy) SetSelectors(v []*Selector) {
- m.Selectors = v
-}
-
-// SetFilters of placement policy.
-func (m *PlacementPolicy) SetFilters(v []*Filter) {
- m.Filters = v
-}
-
-// SetUnique of placement policy.
-func (m *PlacementPolicy) SetUnique(unique bool) {
- m.Unique = unique
-}
-
-// SetName of placement filter.
-func (m *Filter) SetName(v string) {
- m.Name = v
-}
-
-// SetKey of placement filter.
-func (m *Filter) SetKey(v string) {
- m.Key = v
-}
-
-// SetOperation of placement filter.
-func (m *Filter) SetOp(v Operation) {
- m.Op = v
-}
-
-// SetValue of placement filter.
-func (m *Filter) SetValue(v string) {
- m.Value = v
-}
-
-// SetFilters sets sub-filters of placement filter.
-func (m *Filter) SetFilters(v []*Filter) {
- m.Filters = v
-}
-
-// SetName of placement selector.
-func (m *Selector) SetName(v string) {
- m.Name = v
-}
-
-// SetCount of nodes of placement selector.
-func (m *Selector) SetCount(v uint32) {
- m.Count = v
-}
-
-// SetAttribute of nodes of placement selector.
-func (m *Selector) SetAttribute(v string) {
- m.Attribute = v
-}
-
-// SetFilter of placement selector.
-func (m *Selector) SetFilter(v string) {
- m.Filter = v
-}
-
-// SetClause of placement selector.
-func (m *Selector) SetClause(v Clause) {
- m.Clause = v
-}
-
-// SetCount of object replica.
-func (m *Replica) SetCount(v uint32) {
- m.Count = v
-}
-
-// SetSelector of object replica.
-func (m *Replica) SetSelector(v string) {
- m.Selector = v
-}
-
-// SetKey sets key to the node attribute.
-func (m *NodeInfo_Attribute) SetKey(v string) {
- m.Key = v
-}
-
-// SetValue sets value of the node attribute.
-func (m *NodeInfo_Attribute) SetValue(v string) {
- m.Value = v
-}
-
-// SetParent sets value of the node parents.
-func (m *NodeInfo_Attribute) SetParents(v []string) {
- m.Parents = v
-}
-
-// SetAddress sets node network address.
-//
-// Deprecated: use SetAddresses.
-func (m *NodeInfo) SetAddress(v string) {
- m.SetAddresses([]string{v})
-}
-
-// SetAddresses sets list of network addresses of the node.
-func (m *NodeInfo) SetAddresses(v []string) {
- m.Addresses = v
-}
-
-// SetPublicKey sets node public key in a binary format.
-func (m *NodeInfo) SetPublicKey(v []byte) {
- m.PublicKey = v
-}
-
-// SetAttributes sets list of the node attributes.
-func (m *NodeInfo) SetAttributes(v []*NodeInfo_Attribute) {
- m.Attributes = v
-}
-
-// SetState sets node state.
-func (m *NodeInfo) SetState(v NodeInfo_State) {
- m.State = v
-}
-
-// SetCurrentEpoch sets number of the current epoch.
-func (x *NetworkInfo) SetCurrentEpoch(v uint64) {
- x.CurrentEpoch = v
-}
-
-// SetMagicNumber sets magic number of the sidechain.
-func (x *NetworkInfo) SetMagicNumber(v uint64) {
- x.MagicNumber = v
-}
-
-// SetMsPerBlock sets MillisecondsPerBlock network parameter.
-func (x *NetworkInfo) SetMsPerBlock(v int64) {
- x.MsPerBlock = v
-}
-
-// SetNetworkConfig sets NeoFS network configuration.
-func (x *NetworkInfo) SetNetworkConfig(v *NetworkConfig) {
- x.NetworkConfig = v
-}
-
-// FromString parses Clause from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *Clause) FromString(s string) bool {
- i, ok := Clause_value[s]
- if ok {
- *x = Clause(i)
- }
-
- return ok
-}
-
-// FromString parses Operation from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *Operation) FromString(s string) bool {
- i, ok := Operation_value[s]
- if ok {
- *x = Operation(i)
- }
-
- return ok
-}
-
-// FromString parses NodeInfo_State from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *NodeInfo_State) FromString(s string) bool {
- i, ok := NodeInfo_State_value[s]
- if ok {
- *x = NodeInfo_State(i)
- }
-
- return ok
-}
-
-// SetKey sets parameter key.
-func (x *NetworkConfig_Parameter) SetKey(v []byte) {
- x.Key = v
-}
-
-// SetValue sets parameter value.
-func (x *NetworkConfig_Parameter) SetValue(v []byte) {
- x.Value = v
-}
-
-// SetParameters sets NeoFS network parameters.
-func (x *NetworkConfig) SetParameters(v []*NetworkConfig_Parameter) {
- x.Parameters = v
-}
-
-// SetEpoch sets revision number of the Netmap.
-func (x *Netmap) SetEpoch(v uint64) {
- x.Epoch = v
-}
-
-// SetNodes sets nodes presented in the Netmap.
-func (x *Netmap) SetNodes(v []*NodeInfo) {
- x.Nodes = v
-}
diff --git a/netmap/grpc/types.pb.go b/netmap/grpc/types.pb.go
deleted file mode 100644
index ae1f55f..0000000
--- a/netmap/grpc/types.pb.go
+++ /dev/null
@@ -1,1371 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: netmap/grpc/types.proto
-
-package netmap
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Operations on filters
-type Operation int32
-
-const (
- // No Operation defined
- Operation_OPERATION_UNSPECIFIED Operation = 0
- // Equal
- Operation_EQ Operation = 1
- // Not Equal
- Operation_NE Operation = 2
- // Greater then
- Operation_GT Operation = 3
- // Greater or equal
- Operation_GE Operation = 4
- // Less then
- Operation_LT Operation = 5
- // Less or equal
- Operation_LE Operation = 6
- // Logical OR
- Operation_OR Operation = 7
- // Logical AND
- Operation_AND Operation = 8
- // Logical negation
- Operation_NOT Operation = 9
- // Matches pattern
- Operation_LIKE Operation = 10
-)
-
-// Enum value maps for Operation.
-var (
- Operation_name = map[int32]string{
- 0: "OPERATION_UNSPECIFIED",
- 1: "EQ",
- 2: "NE",
- 3: "GT",
- 4: "GE",
- 5: "LT",
- 6: "LE",
- 7: "OR",
- 8: "AND",
- 9: "NOT",
- 10: "LIKE",
- }
- Operation_value = map[string]int32{
- "OPERATION_UNSPECIFIED": 0,
- "EQ": 1,
- "NE": 2,
- "GT": 3,
- "GE": 4,
- "LT": 5,
- "LE": 6,
- "OR": 7,
- "AND": 8,
- "NOT": 9,
- "LIKE": 10,
- }
-)
-
-func (x Operation) Enum() *Operation {
- p := new(Operation)
- *p = x
- return p
-}
-
-func (x Operation) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Operation) Descriptor() protoreflect.EnumDescriptor {
- return file_netmap_grpc_types_proto_enumTypes[0].Descriptor()
-}
-
-func (Operation) Type() protoreflect.EnumType {
- return &file_netmap_grpc_types_proto_enumTypes[0]
-}
-
-func (x Operation) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Operation.Descriptor instead.
-func (Operation) EnumDescriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-// Selector modifier shows how the node set will be formed. By default selector
-// just groups nodes into a bucket by attribute, selecting nodes only by their
-// hash distance.
-type Clause int32
-
-const (
- // No modifier defined. Nodes will be selected from the bucket randomly
- Clause_CLAUSE_UNSPECIFIED Clause = 0
- // SAME will select only nodes having the same value of bucket attribute
- Clause_SAME Clause = 1
- // DISTINCT will select nodes having different values of bucket attribute
- Clause_DISTINCT Clause = 2
-)
-
-// Enum value maps for Clause.
-var (
- Clause_name = map[int32]string{
- 0: "CLAUSE_UNSPECIFIED",
- 1: "SAME",
- 2: "DISTINCT",
- }
- Clause_value = map[string]int32{
- "CLAUSE_UNSPECIFIED": 0,
- "SAME": 1,
- "DISTINCT": 2,
- }
-)
-
-func (x Clause) Enum() *Clause {
- p := new(Clause)
- *p = x
- return p
-}
-
-func (x Clause) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Clause) Descriptor() protoreflect.EnumDescriptor {
- return file_netmap_grpc_types_proto_enumTypes[1].Descriptor()
-}
-
-func (Clause) Type() protoreflect.EnumType {
- return &file_netmap_grpc_types_proto_enumTypes[1]
-}
-
-func (x Clause) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Clause.Descriptor instead.
-func (Clause) EnumDescriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-// Represents the enumeration of various states of the NeoFS node.
-type NodeInfo_State int32
-
-const (
- // Unknown state
- NodeInfo_UNSPECIFIED NodeInfo_State = 0
- // Active state in the network
- NodeInfo_ONLINE NodeInfo_State = 1
- // Network unavailable state
- NodeInfo_OFFLINE NodeInfo_State = 2
- // Maintenance state
- NodeInfo_MAINTENANCE NodeInfo_State = 3
-)
-
-// Enum value maps for NodeInfo_State.
-var (
- NodeInfo_State_name = map[int32]string{
- 0: "UNSPECIFIED",
- 1: "ONLINE",
- 2: "OFFLINE",
- 3: "MAINTENANCE",
- }
- NodeInfo_State_value = map[string]int32{
- "UNSPECIFIED": 0,
- "ONLINE": 1,
- "OFFLINE": 2,
- "MAINTENANCE": 3,
- }
-)
-
-func (x NodeInfo_State) Enum() *NodeInfo_State {
- p := new(NodeInfo_State)
- *p = x
- return p
-}
-
-func (x NodeInfo_State) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (NodeInfo_State) Descriptor() protoreflect.EnumDescriptor {
- return file_netmap_grpc_types_proto_enumTypes[2].Descriptor()
-}
-
-func (NodeInfo_State) Type() protoreflect.EnumType {
- return &file_netmap_grpc_types_proto_enumTypes[2]
-}
-
-func (x NodeInfo_State) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use NodeInfo_State.Descriptor instead.
-func (NodeInfo_State) EnumDescriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{4, 0}
-}
-
-// This filter will return the subset of nodes from `NetworkMap` or another
-// filter's results that will satisfy filter's conditions.
-type Filter struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Name of the filter or a reference to a named filter. '*' means
- // application to the whole unfiltered NetworkMap. At top level it's used as a
- // filter name. At lower levels it's considered to be a reference to another
- // named filter
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- // Key to filter
- Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
- // Filtering operation
- Op Operation `protobuf:"varint,3,opt,name=op,proto3,enum=neo.fs.v2.netmap.Operation" json:"op,omitempty"`
- // Value to match
- Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
- // List of inner filters. Top level operation will be applied to the whole
- // list.
- Filters []*Filter `protobuf:"bytes,5,rep,name=filters,proto3" json:"filters,omitempty"`
-}
-
-func (x *Filter) Reset() {
- *x = Filter{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Filter) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Filter) ProtoMessage() {}
-
-func (x *Filter) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 Filter.ProtoReflect.Descriptor instead.
-func (*Filter) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Filter) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-func (x *Filter) GetKey() string {
- if x != nil {
- return x.Key
- }
- return ""
-}
-
-func (x *Filter) GetOp() Operation {
- if x != nil {
- return x.Op
- }
- return Operation_OPERATION_UNSPECIFIED
-}
-
-func (x *Filter) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-func (x *Filter) GetFilters() []*Filter {
- if x != nil {
- return x.Filters
- }
- return nil
-}
-
-// Selector chooses a number of nodes from the bucket taking the nearest nodes
-// to the provided `ContainerID` by hash distance.
-type Selector struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Selector name to reference in object placement section
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- // How many nodes to select from the bucket
- Count uint32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
- // Selector modifier showing how to form a bucket
- Clause Clause `protobuf:"varint,3,opt,name=clause,proto3,enum=neo.fs.v2.netmap.Clause" json:"clause,omitempty"`
- // Bucket attribute to select from
- Attribute string `protobuf:"bytes,4,opt,name=attribute,proto3" json:"attribute,omitempty"`
- // Filter reference to select from
- Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
-}
-
-func (x *Selector) Reset() {
- *x = Selector{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Selector) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Selector) ProtoMessage() {}
-
-func (x *Selector) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 Selector.ProtoReflect.Descriptor instead.
-func (*Selector) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *Selector) GetName() string {
- if x != nil {
- return x.Name
- }
- return ""
-}
-
-func (x *Selector) GetCount() uint32 {
- if x != nil {
- return x.Count
- }
- return 0
-}
-
-func (x *Selector) GetClause() Clause {
- if x != nil {
- return x.Clause
- }
- return Clause_CLAUSE_UNSPECIFIED
-}
-
-func (x *Selector) GetAttribute() string {
- if x != nil {
- return x.Attribute
- }
- return ""
-}
-
-func (x *Selector) GetFilter() string {
- if x != nil {
- return x.Filter
- }
- return ""
-}
-
-// Number of object replicas in a set of nodes from the defined selector. If no
-// selector set, the root bucket containing all possible nodes will be used by
-// default.
-type Replica struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // How many object replicas to put
- Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
- // Named selector bucket to put replicas
- Selector string `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"`
- // Data shards count
- EcDataCount uint32 `protobuf:"varint,3,opt,name=ec_data_count,json=ecDataCount,proto3" json:"ec_data_count,omitempty"`
- // Parity shards count
- EcParityCount uint32 `protobuf:"varint,4,opt,name=ec_parity_count,json=ecParityCount,proto3" json:"ec_parity_count,omitempty"`
-}
-
-func (x *Replica) Reset() {
- *x = Replica{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Replica) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Replica) ProtoMessage() {}
-
-func (x *Replica) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 Replica.ProtoReflect.Descriptor instead.
-func (*Replica) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *Replica) GetCount() uint32 {
- if x != nil {
- return x.Count
- }
- return 0
-}
-
-func (x *Replica) GetSelector() string {
- if x != nil {
- return x.Selector
- }
- return ""
-}
-
-func (x *Replica) GetEcDataCount() uint32 {
- if x != nil {
- return x.EcDataCount
- }
- return 0
-}
-
-func (x *Replica) GetEcParityCount() uint32 {
- if x != nil {
- return x.EcParityCount
- }
- return 0
-}
-
-// Set of rules to select a subset of nodes from `NetworkMap` able to store
-// container's objects. The format is simple enough to transpile from different
-// storage policy definition languages.
-type PlacementPolicy struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Rules to set number of object replicas and place each one into a named
- // bucket
- Replicas []*Replica `protobuf:"bytes,1,rep,name=replicas,proto3" json:"replicas,omitempty"`
- // Container backup factor controls how deep NeoFS will search for nodes
- // alternatives to include into container's nodes subset
- ContainerBackupFactor uint32 `protobuf:"varint,2,opt,name=container_backup_factor,json=containerBackupFactor,proto3" json:"container_backup_factor,omitempty"`
- // Set of Selectors to form the container's nodes subset
- Selectors []*Selector `protobuf:"bytes,3,rep,name=selectors,proto3" json:"selectors,omitempty"`
- // List of named filters to reference in selectors
- Filters []*Filter `protobuf:"bytes,4,rep,name=filters,proto3" json:"filters,omitempty"`
- // Unique flag defines non-overlapping application for replicas
- Unique bool `protobuf:"varint,5,opt,name=unique,proto3" json:"unique,omitempty"`
-}
-
-func (x *PlacementPolicy) Reset() {
- *x = PlacementPolicy{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PlacementPolicy) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PlacementPolicy) ProtoMessage() {}
-
-func (x *PlacementPolicy) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 PlacementPolicy.ProtoReflect.Descriptor instead.
-func (*PlacementPolicy) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *PlacementPolicy) GetReplicas() []*Replica {
- if x != nil {
- return x.Replicas
- }
- return nil
-}
-
-func (x *PlacementPolicy) GetContainerBackupFactor() uint32 {
- if x != nil {
- return x.ContainerBackupFactor
- }
- return 0
-}
-
-func (x *PlacementPolicy) GetSelectors() []*Selector {
- if x != nil {
- return x.Selectors
- }
- return nil
-}
-
-func (x *PlacementPolicy) GetFilters() []*Filter {
- if x != nil {
- return x.Filters
- }
- return nil
-}
-
-func (x *PlacementPolicy) GetUnique() bool {
- if x != nil {
- return x.Unique
- }
- return false
-}
-
-// NeoFS node description
-type NodeInfo struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Public key of the NeoFS node in a binary format
- PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
- // Ways to connect to a node
- Addresses []string `protobuf:"bytes,2,rep,name=addresses,proto3" json:"addresses,omitempty"`
- // Carries list of the NeoFS node attributes in a key-value form. Key name
- // must be a node-unique valid UTF-8 string. Value can't be empty. NodeInfo
- // structures with duplicated attribute names or attributes with empty values
- // will be considered invalid.
- Attributes []*NodeInfo_Attribute `protobuf:"bytes,3,rep,name=attributes,proto3" json:"attributes,omitempty"`
- // Carries state of the NeoFS node
- State NodeInfo_State `protobuf:"varint,4,opt,name=state,proto3,enum=neo.fs.v2.netmap.NodeInfo_State" json:"state,omitempty"`
-}
-
-func (x *NodeInfo) Reset() {
- *x = NodeInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NodeInfo) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NodeInfo) ProtoMessage() {}
-
-func (x *NodeInfo) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 NodeInfo.ProtoReflect.Descriptor instead.
-func (*NodeInfo) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *NodeInfo) GetPublicKey() []byte {
- if x != nil {
- return x.PublicKey
- }
- return nil
-}
-
-func (x *NodeInfo) GetAddresses() []string {
- if x != nil {
- return x.Addresses
- }
- return nil
-}
-
-func (x *NodeInfo) GetAttributes() []*NodeInfo_Attribute {
- if x != nil {
- return x.Attributes
- }
- return nil
-}
-
-func (x *NodeInfo) GetState() NodeInfo_State {
- if x != nil {
- return x.State
- }
- return NodeInfo_UNSPECIFIED
-}
-
-// Network map structure
-type Netmap struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Network map revision number.
- Epoch uint64 `protobuf:"varint,1,opt,name=epoch,proto3" json:"epoch,omitempty"`
- // Nodes presented in network.
- Nodes []*NodeInfo `protobuf:"bytes,2,rep,name=nodes,proto3" json:"nodes,omitempty"`
-}
-
-func (x *Netmap) Reset() {
- *x = Netmap{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Netmap) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Netmap) ProtoMessage() {}
-
-func (x *Netmap) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 Netmap.ProtoReflect.Descriptor instead.
-func (*Netmap) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *Netmap) GetEpoch() uint64 {
- if x != nil {
- return x.Epoch
- }
- return 0
-}
-
-func (x *Netmap) GetNodes() []*NodeInfo {
- if x != nil {
- return x.Nodes
- }
- return nil
-}
-
-// NeoFS network configuration
-type NetworkConfig struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // List of parameter values
- Parameters []*NetworkConfig_Parameter `protobuf:"bytes,1,rep,name=parameters,proto3" json:"parameters,omitempty"`
-}
-
-func (x *NetworkConfig) Reset() {
- *x = NetworkConfig{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetworkConfig) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetworkConfig) ProtoMessage() {}
-
-func (x *NetworkConfig) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 NetworkConfig.ProtoReflect.Descriptor instead.
-func (*NetworkConfig) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *NetworkConfig) GetParameters() []*NetworkConfig_Parameter {
- if x != nil {
- return x.Parameters
- }
- return nil
-}
-
-// Information about NeoFS network
-type NetworkInfo struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Number of the current epoch in the NeoFS network
- CurrentEpoch uint64 `protobuf:"varint,1,opt,name=current_epoch,json=currentEpoch,proto3" json:"current_epoch,omitempty"`
- // Magic number of the sidechain of the NeoFS network
- MagicNumber uint64 `protobuf:"varint,2,opt,name=magic_number,json=magicNumber,proto3" json:"magic_number,omitempty"`
- // MillisecondsPerBlock network parameter of the sidechain of the NeoFS
- // network
- MsPerBlock int64 `protobuf:"varint,3,opt,name=ms_per_block,json=msPerBlock,proto3" json:"ms_per_block,omitempty"`
- // NeoFS network configuration
- NetworkConfig *NetworkConfig `protobuf:"bytes,4,opt,name=network_config,json=networkConfig,proto3" json:"network_config,omitempty"`
-}
-
-func (x *NetworkInfo) Reset() {
- *x = NetworkInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetworkInfo) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetworkInfo) ProtoMessage() {}
-
-func (x *NetworkInfo) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 NetworkInfo.ProtoReflect.Descriptor instead.
-func (*NetworkInfo) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *NetworkInfo) GetCurrentEpoch() uint64 {
- if x != nil {
- return x.CurrentEpoch
- }
- return 0
-}
-
-func (x *NetworkInfo) GetMagicNumber() uint64 {
- if x != nil {
- return x.MagicNumber
- }
- return 0
-}
-
-func (x *NetworkInfo) GetMsPerBlock() int64 {
- if x != nil {
- return x.MsPerBlock
- }
- return 0
-}
-
-func (x *NetworkInfo) GetNetworkConfig() *NetworkConfig {
- if x != nil {
- return x.NetworkConfig
- }
- return nil
-}
-
-// Administrator-defined Attributes of the NeoFS Storage Node.
-//
-// `Attribute` is a Key-Value metadata pair. Key name must be a valid UTF-8
-// string. Value can't be empty.
-//
-// Attributes can be constructed into a chain of attributes: any attribute can
-// have a parent attribute and a child attribute (except the first and the
-// last one). A string representation of the chain of attributes in NeoFS
-// Storage Node configuration uses ":" and "/" symbols, e.g.:
-//
-// `NEOFS_NODE_ATTRIBUTE_1=key1:val1/key2:val2`
-//
-// Therefore the string attribute representation in the Node configuration
-// must use "\:", "\/" and "\\" escaped symbols if any of them appears in an
-// attribute's key or value.
-//
-// Node's attributes are mostly used during Storage Policy evaluation to
-// calculate object's placement and find a set of nodes satisfying policy
-// requirements. There are some "well-known" node attributes common to all the
-// Storage Nodes in the network and used implicitly with default values if not
-// explicitly set:
-//
-// - Capacity \
-// Total available disk space in Gigabytes.
-// - Price \
-// Price in GAS tokens for storing one GB of data during one Epoch. In node
-// attributes it's a string presenting floating point number with comma or
-// point delimiter for decimal part. In the Network Map it will be saved as
-// 64-bit unsigned integer representing number of minimal token fractions.
-// - UN-LOCODE \
-// Node's geographic location in
-// [UN/LOCODE](https://www.unece.org/cefact/codesfortrade/codes_index.html)
-// format approximated to the nearest point defined in the standard.
-// - CountryCode \
-// Country code in
-// [ISO 3166-1_alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
-// format. Calculated automatically from `UN-LOCODE` attribute.
-// - Country \
-// Country short name in English, as defined in
-// [ISO-3166](https://www.iso.org/obp/ui/#search). Calculated automatically
-// from `UN-LOCODE` attribute.
-// - Location \
-// Place names are given, whenever possible, in their national language
-// versions as expressed in the Roman alphabet using the 26 characters of
-// the character set adopted for international trade data interchange,
-// written without diacritics . Calculated automatically from `UN-LOCODE`
-// attribute.
-// - SubDivCode \
-// Country's administrative subdivision where node is located. Calculated
-// automatically from `UN-LOCODE` attribute based on `SubDiv` field.
-// Presented in [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2)
-// format.
-// - SubDiv \
-// Country's administrative subdivision name, as defined in
-// [ISO 3166-2](https://en.wikipedia.org/wiki/ISO_3166-2). Calculated
-// automatically from `UN-LOCODE` attribute.
-// - Continent \
-// Node's continent name according to the [Seven-Continent model]
-// (https://en.wikipedia.org/wiki/Continent#Number). Calculated
-// automatically from `UN-LOCODE` attribute.
-// - ExternalAddr
-// Node's preferred way for communications with external clients.
-// Clients SHOULD use these addresses if possible.
-// Must contain a comma-separated list of multi-addresses.
-//
-// For detailed description of each well-known attribute please see the
-// corresponding section in NeoFS Technical Specification.
-type NodeInfo_Attribute struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Key of the node attribute
- Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- // Value of the node attribute
- Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
- // Parent keys, if any. For example for `City` it could be `Region` and
- // `Country`.
- Parents []string `protobuf:"bytes,3,rep,name=parents,proto3" json:"parents,omitempty"`
-}
-
-func (x *NodeInfo_Attribute) Reset() {
- *x = NodeInfo_Attribute{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NodeInfo_Attribute) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NodeInfo_Attribute) ProtoMessage() {}
-
-func (x *NodeInfo_Attribute) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 NodeInfo_Attribute.ProtoReflect.Descriptor instead.
-func (*NodeInfo_Attribute) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{4, 0}
-}
-
-func (x *NodeInfo_Attribute) GetKey() string {
- if x != nil {
- return x.Key
- }
- return ""
-}
-
-func (x *NodeInfo_Attribute) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-func (x *NodeInfo_Attribute) GetParents() []string {
- if x != nil {
- return x.Parents
- }
- return nil
-}
-
-// Single configuration parameter. Key MUST be network-unique.
-//
-// System parameters:
-// - **AuditFee** \
-// Fee paid by the storage group owner to the Inner Ring member.
-// Value: little-endian integer. Default: 0.
-// - **BasicIncomeRate** \
-// Cost of storing one gigabyte of data for a period of one epoch. Paid by
-// container owner to container nodes.
-// Value: little-endian integer. Default: 0.
-// - **ContainerAliasFee** \
-// Fee paid for named container's creation by the container owner.
-// Value: little-endian integer. Default: 0.
-// - **ContainerFee** \
-// Fee paid for container creation by the container owner.
-// Value: little-endian integer. Default: 0.
-// - **EpochDuration** \
-// NeoFS epoch duration measured in Sidechain blocks.
-// Value: little-endian integer. Default: 0.
-// - **HomomorphicHashingDisabled** \
-// Flag of disabling the homomorphic hashing of objects' payload.
-// Value: true if any byte != 0. Default: false.
-// - **InnerRingCandidateFee** \
-// Fee for entrance to the Inner Ring paid by the candidate.
-// Value: little-endian integer. Default: 0.
-// - **MaintenanceModeAllowed** \
-// Flag allowing setting the MAINTENANCE state to storage nodes.
-// Value: true if any byte != 0. Default: false.
-// - **MaxObjectSize** \
-// Maximum size of physically stored NeoFS object measured in bytes.
-// Value: little-endian integer. Default: 0.
-// - **WithdrawFee** \
-// Fee paid for withdrawal of funds paid by the account owner.
-// Value: little-endian integer. Default: 0.
-// - **MaxECDataCount** \
-// Maximum number of data shards for EC placement policy.
-// Value: little-endian integer. Default: 0.
-// - **MaxECParityCount** \
-// Maximum number of parity shards for EC placement policy.
-// Value: little-endian integer. Default: 0.
-type NetworkConfig_Parameter struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Parameter key. UTF-8 encoded string
- Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- // Parameter value
- Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *NetworkConfig_Parameter) Reset() {
- *x = NetworkConfig_Parameter{}
- if protoimpl.UnsafeEnabled {
- mi := &file_netmap_grpc_types_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *NetworkConfig_Parameter) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*NetworkConfig_Parameter) ProtoMessage() {}
-
-func (x *NetworkConfig_Parameter) ProtoReflect() protoreflect.Message {
- mi := &file_netmap_grpc_types_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 NetworkConfig_Parameter.ProtoReflect.Descriptor instead.
-func (*NetworkConfig_Parameter) Descriptor() ([]byte, []int) {
- return file_netmap_grpc_types_proto_rawDescGZIP(), []int{6, 0}
-}
-
-func (x *NetworkConfig_Parameter) GetKey() []byte {
- if x != nil {
- return x.Key
- }
- return nil
-}
-
-func (x *NetworkConfig_Parameter) GetValue() []byte {
- if x != nil {
- return x.Value
- }
- return nil
-}
-
-var File_netmap_grpc_types_proto protoreflect.FileDescriptor
-
-var file_netmap_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x17, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x22, 0xa5, 0x01, 0x0a, 0x06,
- 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
- 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2b, 0x0a, 0x02,
- 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12,
- 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74,
- 0x6d, 0x61, 0x70, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74,
- 0x65, 0x72, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
- 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x63, 0x6c,
- 0x61, 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x43, 0x6c,
- 0x61, 0x75, 0x73, 0x65, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09,
- 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69,
- 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74,
- 0x65, 0x72, 0x22, 0x87, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x14,
- 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63,
- 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
- 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x63, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43,
- 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x69, 0x74,
- 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x65,
- 0x63, 0x50, 0x61, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x02, 0x0a,
- 0x0f, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
- 0x12, 0x35, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e,
- 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x08, 0x72,
- 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x61, 0x63, 0x74,
- 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
- 0x6e, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12,
- 0x38, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e,
- 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09,
- 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c,
- 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x46, 0x69,
- 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a,
- 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75,
- 0x6e, 0x69, 0x71, 0x75, 0x65, 0x22, 0xd8, 0x02, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e,
- 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65,
- 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02,
- 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12,
- 0x44, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e,
- 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69,
- 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f,
- 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4d, 0x0a,
- 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
- 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x42, 0x0a, 0x05,
- 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
- 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45,
- 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x12,
- 0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03,
- 0x22, 0x50, 0x0a, 0x06, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70,
- 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68,
- 0x12, 0x30, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d,
- 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x64,
- 0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f,
- 0x6e, 0x66, 0x69, 0x67, 0x12, 0x49, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
- 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77,
- 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
- 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a,
- 0x33, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03,
- 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
- 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
- 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f,
- 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x75, 0x72,
- 0x72, 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x67,
- 0x69, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
- 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0c,
- 0x6d, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x46,
- 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
- 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
- 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2a, 0x7a, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e,
- 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06,
- 0x0a, 0x02, 0x45, 0x51, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x06,
- 0x0a, 0x02, 0x47, 0x54, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x45, 0x10, 0x04, 0x12, 0x06,
- 0x0a, 0x02, 0x4c, 0x54, 0x10, 0x05, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x45, 0x10, 0x06, 0x12, 0x06,
- 0x0a, 0x02, 0x4f, 0x52, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x08, 0x12,
- 0x07, 0x0a, 0x03, 0x4e, 0x4f, 0x54, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x4b, 0x45,
- 0x10, 0x0a, 0x2a, 0x38, 0x0a, 0x06, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x12,
- 0x43, 0x4c, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
- 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x0c,
- 0x0a, 0x08, 0x44, 0x49, 0x53, 0x54, 0x49, 0x4e, 0x43, 0x54, 0x10, 0x02, 0x42, 0x61, 0x5a, 0x42,
- 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f,
- 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72,
- 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f,
- 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x6e, 0x65, 0x74, 0x6d,
- 0x61, 0x70, 0xaa, 0x02, 0x1a, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f,
- 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x62,
- 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_netmap_grpc_types_proto_rawDescOnce sync.Once
- file_netmap_grpc_types_proto_rawDescData = file_netmap_grpc_types_proto_rawDesc
-)
-
-func file_netmap_grpc_types_proto_rawDescGZIP() []byte {
- file_netmap_grpc_types_proto_rawDescOnce.Do(func() {
- file_netmap_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_netmap_grpc_types_proto_rawDescData)
- })
- return file_netmap_grpc_types_proto_rawDescData
-}
-
-var file_netmap_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
-var file_netmap_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
-var file_netmap_grpc_types_proto_goTypes = []interface{}{
- (Operation)(0), // 0: neo.fs.v2.netmap.Operation
- (Clause)(0), // 1: neo.fs.v2.netmap.Clause
- (NodeInfo_State)(0), // 2: neo.fs.v2.netmap.NodeInfo.State
- (*Filter)(nil), // 3: neo.fs.v2.netmap.Filter
- (*Selector)(nil), // 4: neo.fs.v2.netmap.Selector
- (*Replica)(nil), // 5: neo.fs.v2.netmap.Replica
- (*PlacementPolicy)(nil), // 6: neo.fs.v2.netmap.PlacementPolicy
- (*NodeInfo)(nil), // 7: neo.fs.v2.netmap.NodeInfo
- (*Netmap)(nil), // 8: neo.fs.v2.netmap.Netmap
- (*NetworkConfig)(nil), // 9: neo.fs.v2.netmap.NetworkConfig
- (*NetworkInfo)(nil), // 10: neo.fs.v2.netmap.NetworkInfo
- (*NodeInfo_Attribute)(nil), // 11: neo.fs.v2.netmap.NodeInfo.Attribute
- (*NetworkConfig_Parameter)(nil), // 12: neo.fs.v2.netmap.NetworkConfig.Parameter
-}
-var file_netmap_grpc_types_proto_depIdxs = []int32{
- 0, // 0: neo.fs.v2.netmap.Filter.op:type_name -> neo.fs.v2.netmap.Operation
- 3, // 1: neo.fs.v2.netmap.Filter.filters:type_name -> neo.fs.v2.netmap.Filter
- 1, // 2: neo.fs.v2.netmap.Selector.clause:type_name -> neo.fs.v2.netmap.Clause
- 5, // 3: neo.fs.v2.netmap.PlacementPolicy.replicas:type_name -> neo.fs.v2.netmap.Replica
- 4, // 4: neo.fs.v2.netmap.PlacementPolicy.selectors:type_name -> neo.fs.v2.netmap.Selector
- 3, // 5: neo.fs.v2.netmap.PlacementPolicy.filters:type_name -> neo.fs.v2.netmap.Filter
- 11, // 6: neo.fs.v2.netmap.NodeInfo.attributes:type_name -> neo.fs.v2.netmap.NodeInfo.Attribute
- 2, // 7: neo.fs.v2.netmap.NodeInfo.state:type_name -> neo.fs.v2.netmap.NodeInfo.State
- 7, // 8: neo.fs.v2.netmap.Netmap.nodes:type_name -> neo.fs.v2.netmap.NodeInfo
- 12, // 9: neo.fs.v2.netmap.NetworkConfig.parameters:type_name -> neo.fs.v2.netmap.NetworkConfig.Parameter
- 9, // 10: neo.fs.v2.netmap.NetworkInfo.network_config:type_name -> neo.fs.v2.netmap.NetworkConfig
- 11, // [11:11] is the sub-list for method output_type
- 11, // [11:11] is the sub-list for method input_type
- 11, // [11:11] is the sub-list for extension type_name
- 11, // [11:11] is the sub-list for extension extendee
- 0, // [0:11] is the sub-list for field type_name
-}
-
-func init() { file_netmap_grpc_types_proto_init() }
-func file_netmap_grpc_types_proto_init() {
- if File_netmap_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_netmap_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Filter); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Selector); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Replica); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PlacementPolicy); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NodeInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Netmap); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetworkConfig); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetworkInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NodeInfo_Attribute); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_netmap_grpc_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*NetworkConfig_Parameter); 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_netmap_grpc_types_proto_rawDesc,
- NumEnums: 3,
- NumMessages: 10,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_netmap_grpc_types_proto_goTypes,
- DependencyIndexes: file_netmap_grpc_types_proto_depIdxs,
- EnumInfos: file_netmap_grpc_types_proto_enumTypes,
- MessageInfos: file_netmap_grpc_types_proto_msgTypes,
- }.Build()
- File_netmap_grpc_types_proto = out.File
- file_netmap_grpc_types_proto_rawDesc = nil
- file_netmap_grpc_types_proto_goTypes = nil
- file_netmap_grpc_types_proto_depIdxs = nil
-}
diff --git a/netmap/grpc/types_frostfs.pb.go b/netmap/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..3bab079
--- /dev/null
+++ b/netmap/grpc/types_frostfs.pb.go
@@ -0,0 +1,2453 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package netmap
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
+)
+
+type Operation int32
+
+const (
+ Operation_OPERATION_UNSPECIFIED Operation = 0
+ Operation_EQ Operation = 1
+ Operation_NE Operation = 2
+ Operation_GT Operation = 3
+ Operation_GE Operation = 4
+ Operation_LT Operation = 5
+ Operation_LE Operation = 6
+ Operation_OR Operation = 7
+ Operation_AND Operation = 8
+ Operation_NOT Operation = 9
+ Operation_LIKE Operation = 10
+)
+
+var (
+ Operation_name = map[int32]string{
+ 0: "OPERATION_UNSPECIFIED",
+ 1: "EQ",
+ 2: "NE",
+ 3: "GT",
+ 4: "GE",
+ 5: "LT",
+ 6: "LE",
+ 7: "OR",
+ 8: "AND",
+ 9: "NOT",
+ 10: "LIKE",
+ }
+ Operation_value = map[string]int32{
+ "OPERATION_UNSPECIFIED": 0,
+ "EQ": 1,
+ "NE": 2,
+ "GT": 3,
+ "GE": 4,
+ "LT": 5,
+ "LE": 6,
+ "OR": 7,
+ "AND": 8,
+ "NOT": 9,
+ "LIKE": 10,
+ }
+)
+
+func (x Operation) String() string {
+ if v, ok := Operation_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Operation) FromString(s string) bool {
+ if v, ok := Operation_value[s]; ok {
+ *x = Operation(v)
+ return true
+ }
+ return false
+}
+
+type Clause int32
+
+const (
+ Clause_CLAUSE_UNSPECIFIED Clause = 0
+ Clause_SAME Clause = 1
+ Clause_DISTINCT Clause = 2
+)
+
+var (
+ Clause_name = map[int32]string{
+ 0: "CLAUSE_UNSPECIFIED",
+ 1: "SAME",
+ 2: "DISTINCT",
+ }
+ Clause_value = map[string]int32{
+ "CLAUSE_UNSPECIFIED": 0,
+ "SAME": 1,
+ "DISTINCT": 2,
+ }
+)
+
+func (x Clause) String() string {
+ if v, ok := Clause_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Clause) FromString(s string) bool {
+ if v, ok := Clause_value[s]; ok {
+ *x = Clause(v)
+ return true
+ }
+ return false
+}
+
+type Filter struct {
+ Name string `json:"name"`
+ Key string `json:"key"`
+ Op Operation `json:"op"`
+ Value string `json:"value"`
+ Filters []*Filter `json:"filters"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Filter)(nil)
+ _ encoding.ProtoUnmarshaler = (*Filter)(nil)
+ _ json.Marshaler = (*Filter)(nil)
+ _ json.Unmarshaler = (*Filter)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Filter) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.StringSize(1, x.Name)
+ size += proto.StringSize(2, x.Key)
+ size += proto.EnumSize(3, int32(x.Op))
+ size += proto.StringSize(4, x.Value)
+ for i := range x.Filters {
+ size += proto.NestedStructureSize(5, x.Filters[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Filter) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Filter) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Name) != 0 {
+ mm.AppendString(1, x.Name)
+ }
+ if len(x.Key) != 0 {
+ mm.AppendString(2, x.Key)
+ }
+ if int32(x.Op) != 0 {
+ mm.AppendInt32(3, int32(x.Op))
+ }
+ if len(x.Value) != 0 {
+ mm.AppendString(4, x.Value)
+ }
+ for i := range x.Filters {
+ if x.Filters[i] != nil && x.Filters[i].StableSize() != 0 {
+ x.Filters[i].EmitProtobuf(mm.AppendMessage(5))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Filter) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Filter")
+ }
+ switch fc.FieldNum {
+ case 1: // Name
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Name")
+ }
+ x.Name = data
+ case 2: // Key
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 3: // Op
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Op")
+ }
+ x.Op = Operation(data)
+ case 4: // Value
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ case 5: // Filters
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Filters")
+ }
+ x.Filters = append(x.Filters, new(Filter))
+ ff := x.Filters[len(x.Filters)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *Filter) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+func (x *Filter) SetName(v string) {
+ x.Name = v
+}
+func (x *Filter) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+func (x *Filter) SetKey(v string) {
+ x.Key = v
+}
+func (x *Filter) GetOp() Operation {
+ if x != nil {
+ return x.Op
+ }
+ return 0
+}
+func (x *Filter) SetOp(v Operation) {
+ x.Op = v
+}
+func (x *Filter) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+func (x *Filter) SetValue(v string) {
+ x.Value = v
+}
+func (x *Filter) GetFilters() []*Filter {
+ if x != nil {
+ return x.Filters
+ }
+ return nil
+}
+func (x *Filter) SetFilters(v []*Filter) {
+ x.Filters = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Filter) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Filter) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"name\":"
+ out.RawString(prefix[1:])
+ out.String(x.Name)
+ }
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
+ {
+ const prefix string = ",\"op\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.Op))
+ }
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
+ {
+ const prefix string = ",\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Filter) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Filter) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "name":
+ {
+ var f string
+ f = in.String()
+ x.Name = f
+ }
+ case "key":
+ {
+ var f string
+ f = in.String()
+ x.Key = f
+ }
+ case "op":
+ {
+ var f Operation
+ var parsedValue Operation
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := Operation_value[v]; ok {
+ parsedValue = Operation(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = Operation(vv)
+ case float64:
+ parsedValue = Operation(v)
+ }
+ f = parsedValue
+ x.Op = f
+ }
+ case "value":
+ {
+ var f string
+ f = in.String()
+ x.Value = f
+ }
+ case "filters":
+ {
+ var f *Filter
+ var list []*Filter
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Filter)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Filters = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Selector struct {
+ Name string `json:"name"`
+ Count uint32 `json:"count"`
+ Clause Clause `json:"clause"`
+ Attribute string `json:"attribute"`
+ Filter string `json:"filter"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Selector)(nil)
+ _ encoding.ProtoUnmarshaler = (*Selector)(nil)
+ _ json.Marshaler = (*Selector)(nil)
+ _ json.Unmarshaler = (*Selector)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Selector) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.StringSize(1, x.Name)
+ size += proto.UInt32Size(2, x.Count)
+ size += proto.EnumSize(3, int32(x.Clause))
+ size += proto.StringSize(4, x.Attribute)
+ size += proto.StringSize(5, x.Filter)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Selector) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Selector) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Name) != 0 {
+ mm.AppendString(1, x.Name)
+ }
+ if x.Count != 0 {
+ mm.AppendUint32(2, x.Count)
+ }
+ if int32(x.Clause) != 0 {
+ mm.AppendInt32(3, int32(x.Clause))
+ }
+ if len(x.Attribute) != 0 {
+ mm.AppendString(4, x.Attribute)
+ }
+ if len(x.Filter) != 0 {
+ mm.AppendString(5, x.Filter)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Selector) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Selector")
+ }
+ switch fc.FieldNum {
+ case 1: // Name
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Name")
+ }
+ x.Name = data
+ case 2: // Count
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Count")
+ }
+ x.Count = data
+ case 3: // Clause
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Clause")
+ }
+ x.Clause = Clause(data)
+ case 4: // Attribute
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Attribute")
+ }
+ x.Attribute = data
+ case 5: // Filter
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Filter")
+ }
+ x.Filter = data
+ }
+ }
+ return nil
+}
+func (x *Selector) GetName() string {
+ if x != nil {
+ return x.Name
+ }
+ return ""
+}
+func (x *Selector) SetName(v string) {
+ x.Name = v
+}
+func (x *Selector) GetCount() uint32 {
+ if x != nil {
+ return x.Count
+ }
+ return 0
+}
+func (x *Selector) SetCount(v uint32) {
+ x.Count = v
+}
+func (x *Selector) GetClause() Clause {
+ if x != nil {
+ return x.Clause
+ }
+ return 0
+}
+func (x *Selector) SetClause(v Clause) {
+ x.Clause = v
+}
+func (x *Selector) GetAttribute() string {
+ if x != nil {
+ return x.Attribute
+ }
+ return ""
+}
+func (x *Selector) SetAttribute(v string) {
+ x.Attribute = v
+}
+func (x *Selector) GetFilter() string {
+ if x != nil {
+ return x.Filter
+ }
+ return ""
+}
+func (x *Selector) SetFilter(v string) {
+ x.Filter = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Selector) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Selector) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"name\":"
+ out.RawString(prefix[1:])
+ out.String(x.Name)
+ }
+ {
+ const prefix string = ",\"count\":"
+ out.RawString(prefix)
+ out.Uint32(x.Count)
+ }
+ {
+ const prefix string = ",\"clause\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.Clause))
+ }
+ {
+ const prefix string = ",\"attribute\":"
+ out.RawString(prefix)
+ out.String(x.Attribute)
+ }
+ {
+ const prefix string = ",\"filter\":"
+ out.RawString(prefix)
+ out.String(x.Filter)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Selector) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Selector) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "name":
+ {
+ var f string
+ f = in.String()
+ x.Name = f
+ }
+ case "count":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Count = f
+ }
+ case "clause":
+ {
+ var f Clause
+ var parsedValue Clause
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := Clause_value[v]; ok {
+ parsedValue = Clause(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = Clause(vv)
+ case float64:
+ parsedValue = Clause(v)
+ }
+ f = parsedValue
+ x.Clause = f
+ }
+ case "attribute":
+ {
+ var f string
+ f = in.String()
+ x.Attribute = f
+ }
+ case "filter":
+ {
+ var f string
+ f = in.String()
+ x.Filter = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Replica struct {
+ Count uint32 `json:"count"`
+ Selector string `json:"selector"`
+ EcDataCount uint32 `json:"ecDataCount"`
+ EcParityCount uint32 `json:"ecParityCount"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Replica)(nil)
+ _ encoding.ProtoUnmarshaler = (*Replica)(nil)
+ _ json.Marshaler = (*Replica)(nil)
+ _ json.Unmarshaler = (*Replica)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Replica) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt32Size(1, x.Count)
+ size += proto.StringSize(2, x.Selector)
+ size += proto.UInt32Size(3, x.EcDataCount)
+ size += proto.UInt32Size(4, x.EcParityCount)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Replica) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Replica) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Count != 0 {
+ mm.AppendUint32(1, x.Count)
+ }
+ if len(x.Selector) != 0 {
+ mm.AppendString(2, x.Selector)
+ }
+ if x.EcDataCount != 0 {
+ mm.AppendUint32(3, x.EcDataCount)
+ }
+ if x.EcParityCount != 0 {
+ mm.AppendUint32(4, x.EcParityCount)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Replica) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Replica")
+ }
+ switch fc.FieldNum {
+ case 1: // Count
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Count")
+ }
+ x.Count = data
+ case 2: // Selector
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Selector")
+ }
+ x.Selector = data
+ case 3: // EcDataCount
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "EcDataCount")
+ }
+ x.EcDataCount = data
+ case 4: // EcParityCount
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "EcParityCount")
+ }
+ x.EcParityCount = data
+ }
+ }
+ return nil
+}
+func (x *Replica) GetCount() uint32 {
+ if x != nil {
+ return x.Count
+ }
+ return 0
+}
+func (x *Replica) SetCount(v uint32) {
+ x.Count = v
+}
+func (x *Replica) GetSelector() string {
+ if x != nil {
+ return x.Selector
+ }
+ return ""
+}
+func (x *Replica) SetSelector(v string) {
+ x.Selector = v
+}
+func (x *Replica) GetEcDataCount() uint32 {
+ if x != nil {
+ return x.EcDataCount
+ }
+ return 0
+}
+func (x *Replica) SetEcDataCount(v uint32) {
+ x.EcDataCount = v
+}
+func (x *Replica) GetEcParityCount() uint32 {
+ if x != nil {
+ return x.EcParityCount
+ }
+ return 0
+}
+func (x *Replica) SetEcParityCount(v uint32) {
+ x.EcParityCount = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Replica) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Replica) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"count\":"
+ out.RawString(prefix[1:])
+ out.Uint32(x.Count)
+ }
+ {
+ const prefix string = ",\"selector\":"
+ out.RawString(prefix)
+ out.String(x.Selector)
+ }
+ {
+ const prefix string = ",\"ecDataCount\":"
+ out.RawString(prefix)
+ out.Uint32(x.EcDataCount)
+ }
+ {
+ const prefix string = ",\"ecParityCount\":"
+ out.RawString(prefix)
+ out.Uint32(x.EcParityCount)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Replica) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Replica) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "count":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Count = f
+ }
+ case "selector":
+ {
+ var f string
+ f = in.String()
+ x.Selector = f
+ }
+ case "ecDataCount":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.EcDataCount = f
+ }
+ case "ecParityCount":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.EcParityCount = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PlacementPolicy struct {
+ Replicas []*Replica `json:"replicas"`
+ ContainerBackupFactor uint32 `json:"containerBackupFactor"`
+ Selectors []*Selector `json:"selectors"`
+ Filters []*Filter `json:"filters"`
+ Unique bool `json:"unique"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PlacementPolicy)(nil)
+ _ encoding.ProtoUnmarshaler = (*PlacementPolicy)(nil)
+ _ json.Marshaler = (*PlacementPolicy)(nil)
+ _ json.Unmarshaler = (*PlacementPolicy)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PlacementPolicy) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ for i := range x.Replicas {
+ size += proto.NestedStructureSize(1, x.Replicas[i])
+ }
+ size += proto.UInt32Size(2, x.ContainerBackupFactor)
+ for i := range x.Selectors {
+ size += proto.NestedStructureSize(3, x.Selectors[i])
+ }
+ for i := range x.Filters {
+ size += proto.NestedStructureSize(4, x.Filters[i])
+ }
+ size += proto.BoolSize(5, x.Unique)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PlacementPolicy) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PlacementPolicy) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ for i := range x.Replicas {
+ if x.Replicas[i] != nil && x.Replicas[i].StableSize() != 0 {
+ x.Replicas[i].EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+ if x.ContainerBackupFactor != 0 {
+ mm.AppendUint32(2, x.ContainerBackupFactor)
+ }
+ for i := range x.Selectors {
+ if x.Selectors[i] != nil && x.Selectors[i].StableSize() != 0 {
+ x.Selectors[i].EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+ for i := range x.Filters {
+ if x.Filters[i] != nil && x.Filters[i].StableSize() != 0 {
+ x.Filters[i].EmitProtobuf(mm.AppendMessage(4))
+ }
+ }
+ if x.Unique {
+ mm.AppendBool(5, x.Unique)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PlacementPolicy) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PlacementPolicy")
+ }
+ switch fc.FieldNum {
+ case 1: // Replicas
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Replicas")
+ }
+ x.Replicas = append(x.Replicas, new(Replica))
+ ff := x.Replicas[len(x.Replicas)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // ContainerBackupFactor
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerBackupFactor")
+ }
+ x.ContainerBackupFactor = data
+ case 3: // Selectors
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Selectors")
+ }
+ x.Selectors = append(x.Selectors, new(Selector))
+ ff := x.Selectors[len(x.Selectors)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // Filters
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Filters")
+ }
+ x.Filters = append(x.Filters, new(Filter))
+ ff := x.Filters[len(x.Filters)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 5: // Unique
+ data, ok := fc.Bool()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Unique")
+ }
+ x.Unique = data
+ }
+ }
+ return nil
+}
+func (x *PlacementPolicy) GetReplicas() []*Replica {
+ if x != nil {
+ return x.Replicas
+ }
+ return nil
+}
+func (x *PlacementPolicy) SetReplicas(v []*Replica) {
+ x.Replicas = v
+}
+func (x *PlacementPolicy) GetContainerBackupFactor() uint32 {
+ if x != nil {
+ return x.ContainerBackupFactor
+ }
+ return 0
+}
+func (x *PlacementPolicy) SetContainerBackupFactor(v uint32) {
+ x.ContainerBackupFactor = v
+}
+func (x *PlacementPolicy) GetSelectors() []*Selector {
+ if x != nil {
+ return x.Selectors
+ }
+ return nil
+}
+func (x *PlacementPolicy) SetSelectors(v []*Selector) {
+ x.Selectors = v
+}
+func (x *PlacementPolicy) GetFilters() []*Filter {
+ if x != nil {
+ return x.Filters
+ }
+ return nil
+}
+func (x *PlacementPolicy) SetFilters(v []*Filter) {
+ x.Filters = v
+}
+func (x *PlacementPolicy) GetUnique() bool {
+ if x != nil {
+ return x.Unique
+ }
+ return false
+}
+func (x *PlacementPolicy) SetUnique(v bool) {
+ x.Unique = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PlacementPolicy) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PlacementPolicy) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"replicas\":"
+ out.RawString(prefix[1:])
+ out.RawByte('[')
+ for i := range x.Replicas {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Replicas[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"containerBackupFactor\":"
+ out.RawString(prefix)
+ out.Uint32(x.ContainerBackupFactor)
+ }
+ {
+ const prefix string = ",\"selectors\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Selectors {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Selectors[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"unique\":"
+ out.RawString(prefix)
+ out.Bool(x.Unique)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PlacementPolicy) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PlacementPolicy) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "replicas":
+ {
+ var f *Replica
+ var list []*Replica
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Replica)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Replicas = list
+ in.Delim(']')
+ }
+ case "containerBackupFactor":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.ContainerBackupFactor = f
+ }
+ case "selectors":
+ {
+ var f *Selector
+ var list []*Selector
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Selector)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Selectors = list
+ in.Delim(']')
+ }
+ case "filters":
+ {
+ var f *Filter
+ var list []*Filter
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Filter)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Filters = list
+ in.Delim(']')
+ }
+ case "unique":
+ {
+ var f bool
+ f = in.Bool()
+ x.Unique = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NodeInfo_State int32
+
+const (
+ NodeInfo_UNSPECIFIED NodeInfo_State = 0
+ NodeInfo_ONLINE NodeInfo_State = 1
+ NodeInfo_OFFLINE NodeInfo_State = 2
+ NodeInfo_MAINTENANCE NodeInfo_State = 3
+)
+
+var (
+ NodeInfo_State_name = map[int32]string{
+ 0: "UNSPECIFIED",
+ 1: "ONLINE",
+ 2: "OFFLINE",
+ 3: "MAINTENANCE",
+ }
+ NodeInfo_State_value = map[string]int32{
+ "UNSPECIFIED": 0,
+ "ONLINE": 1,
+ "OFFLINE": 2,
+ "MAINTENANCE": 3,
+ }
+)
+
+func (x NodeInfo_State) String() string {
+ if v, ok := NodeInfo_State_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *NodeInfo_State) FromString(s string) bool {
+ if v, ok := NodeInfo_State_value[s]; ok {
+ *x = NodeInfo_State(v)
+ return true
+ }
+ return false
+}
+
+type NodeInfo_Attribute struct {
+ Key string `json:"key"`
+ Value string `json:"value"`
+ Parents []string `json:"parents"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NodeInfo_Attribute)(nil)
+ _ encoding.ProtoUnmarshaler = (*NodeInfo_Attribute)(nil)
+ _ json.Marshaler = (*NodeInfo_Attribute)(nil)
+ _ json.Unmarshaler = (*NodeInfo_Attribute)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NodeInfo_Attribute) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.StringSize(1, x.Key)
+ size += proto.StringSize(2, x.Value)
+ size += proto.RepeatedStringSize(3, x.Parents)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NodeInfo_Attribute) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NodeInfo_Attribute) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Key) != 0 {
+ mm.AppendString(1, x.Key)
+ }
+ if len(x.Value) != 0 {
+ mm.AppendString(2, x.Value)
+ }
+ for j := range x.Parents {
+ mm.AppendString(3, x.Parents[j])
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NodeInfo_Attribute) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NodeInfo_Attribute")
+ }
+ switch fc.FieldNum {
+ case 1: // Key
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 2: // Value
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ case 3: // Parents
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Parents")
+ }
+ x.Parents = append(x.Parents, data)
+ }
+ }
+ return nil
+}
+func (x *NodeInfo_Attribute) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+func (x *NodeInfo_Attribute) SetKey(v string) {
+ x.Key = v
+}
+func (x *NodeInfo_Attribute) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+func (x *NodeInfo_Attribute) SetValue(v string) {
+ x.Value = v
+}
+func (x *NodeInfo_Attribute) GetParents() []string {
+ if x != nil {
+ return x.Parents
+ }
+ return nil
+}
+func (x *NodeInfo_Attribute) SetParents(v []string) {
+ x.Parents = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NodeInfo_Attribute) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NodeInfo_Attribute) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix[1:])
+ out.String(x.Key)
+ }
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
+ {
+ const prefix string = ",\"parents\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Parents {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.String(x.Parents[i])
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NodeInfo_Attribute) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NodeInfo_Attribute) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "key":
+ {
+ var f string
+ f = in.String()
+ x.Key = f
+ }
+ case "value":
+ {
+ var f string
+ f = in.String()
+ x.Value = f
+ }
+ case "parents":
+ {
+ var f string
+ var list []string
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.String()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Parents = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NodeInfo struct {
+ PublicKey []byte `json:"publicKey"`
+ Addresses []string `json:"addresses"`
+ Attributes []*NodeInfo_Attribute `json:"attributes"`
+ State NodeInfo_State `json:"state"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NodeInfo)(nil)
+ _ encoding.ProtoUnmarshaler = (*NodeInfo)(nil)
+ _ json.Marshaler = (*NodeInfo)(nil)
+ _ json.Unmarshaler = (*NodeInfo)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NodeInfo) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.PublicKey)
+ size += proto.RepeatedStringSize(2, x.Addresses)
+ for i := range x.Attributes {
+ size += proto.NestedStructureSize(3, x.Attributes[i])
+ }
+ size += proto.EnumSize(4, int32(x.State))
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NodeInfo) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NodeInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.PublicKey) != 0 {
+ mm.AppendBytes(1, x.PublicKey)
+ }
+ for j := range x.Addresses {
+ mm.AppendString(2, x.Addresses[j])
+ }
+ for i := range x.Attributes {
+ if x.Attributes[i] != nil && x.Attributes[i].StableSize() != 0 {
+ x.Attributes[i].EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+ if int32(x.State) != 0 {
+ mm.AppendInt32(4, int32(x.State))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NodeInfo) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NodeInfo")
+ }
+ switch fc.FieldNum {
+ case 1: // PublicKey
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "PublicKey")
+ }
+ x.PublicKey = data
+ case 2: // Addresses
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Addresses")
+ }
+ x.Addresses = append(x.Addresses, data)
+ case 3: // Attributes
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Attributes")
+ }
+ x.Attributes = append(x.Attributes, new(NodeInfo_Attribute))
+ ff := x.Attributes[len(x.Attributes)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // State
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "State")
+ }
+ x.State = NodeInfo_State(data)
+ }
+ }
+ return nil
+}
+func (x *NodeInfo) GetPublicKey() []byte {
+ if x != nil {
+ return x.PublicKey
+ }
+ return nil
+}
+func (x *NodeInfo) SetPublicKey(v []byte) {
+ x.PublicKey = v
+}
+func (x *NodeInfo) GetAddresses() []string {
+ if x != nil {
+ return x.Addresses
+ }
+ return nil
+}
+func (x *NodeInfo) SetAddresses(v []string) {
+ x.Addresses = v
+}
+func (x *NodeInfo) GetAttributes() []*NodeInfo_Attribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+func (x *NodeInfo) SetAttributes(v []*NodeInfo_Attribute) {
+ x.Attributes = v
+}
+func (x *NodeInfo) GetState() NodeInfo_State {
+ if x != nil {
+ return x.State
+ }
+ return 0
+}
+func (x *NodeInfo) SetState(v NodeInfo_State) {
+ x.State = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NodeInfo) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NodeInfo) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"publicKey\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.PublicKey)
+ }
+ {
+ const prefix string = ",\"addresses\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Addresses {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.String(x.Addresses[i])
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"attributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Attributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Attributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"state\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.State))
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NodeInfo) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NodeInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "publicKey":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.PublicKey = f
+ }
+ case "addresses":
+ {
+ var f string
+ var list []string
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.String()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Addresses = list
+ in.Delim(']')
+ }
+ case "attributes":
+ {
+ var f *NodeInfo_Attribute
+ var list []*NodeInfo_Attribute
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(NodeInfo_Attribute)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Attributes = list
+ in.Delim(']')
+ }
+ case "state":
+ {
+ var f NodeInfo_State
+ var parsedValue NodeInfo_State
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := NodeInfo_State_value[v]; ok {
+ parsedValue = NodeInfo_State(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = NodeInfo_State(vv)
+ case float64:
+ parsedValue = NodeInfo_State(v)
+ }
+ f = parsedValue
+ x.State = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Netmap struct {
+ Epoch uint64 `json:"epoch"`
+ Nodes []*NodeInfo `json:"nodes"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Netmap)(nil)
+ _ encoding.ProtoUnmarshaler = (*Netmap)(nil)
+ _ json.Marshaler = (*Netmap)(nil)
+ _ json.Unmarshaler = (*Netmap)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Netmap) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt64Size(1, x.Epoch)
+ for i := range x.Nodes {
+ size += proto.NestedStructureSize(2, x.Nodes[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Netmap) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Netmap) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Epoch != 0 {
+ mm.AppendUint64(1, x.Epoch)
+ }
+ for i := range x.Nodes {
+ if x.Nodes[i] != nil && x.Nodes[i].StableSize() != 0 {
+ x.Nodes[i].EmitProtobuf(mm.AppendMessage(2))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Netmap) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Netmap")
+ }
+ switch fc.FieldNum {
+ case 1: // Epoch
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Epoch")
+ }
+ x.Epoch = data
+ case 2: // Nodes
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Nodes")
+ }
+ x.Nodes = append(x.Nodes, new(NodeInfo))
+ ff := x.Nodes[len(x.Nodes)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *Netmap) GetEpoch() uint64 {
+ if x != nil {
+ return x.Epoch
+ }
+ return 0
+}
+func (x *Netmap) SetEpoch(v uint64) {
+ x.Epoch = v
+}
+func (x *Netmap) GetNodes() []*NodeInfo {
+ if x != nil {
+ return x.Nodes
+ }
+ return nil
+}
+func (x *Netmap) SetNodes(v []*NodeInfo) {
+ x.Nodes = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Netmap) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Netmap) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"epoch\":"
+ out.RawString(prefix[1:])
+ out.Uint64(x.Epoch)
+ }
+ {
+ const prefix string = ",\"nodes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Nodes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Nodes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Netmap) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Netmap) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "epoch":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Epoch = f
+ }
+ case "nodes":
+ {
+ var f *NodeInfo
+ var list []*NodeInfo
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(NodeInfo)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Nodes = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetworkConfig_Parameter struct {
+ Key []byte `json:"key"`
+ Value []byte `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetworkConfig_Parameter)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetworkConfig_Parameter)(nil)
+ _ json.Marshaler = (*NetworkConfig_Parameter)(nil)
+ _ json.Unmarshaler = (*NetworkConfig_Parameter)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetworkConfig_Parameter) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.Key)
+ size += proto.BytesSize(2, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetworkConfig_Parameter) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetworkConfig_Parameter) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Key) != 0 {
+ mm.AppendBytes(1, x.Key)
+ }
+ if len(x.Value) != 0 {
+ mm.AppendBytes(2, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetworkConfig_Parameter) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetworkConfig_Parameter")
+ }
+ switch fc.FieldNum {
+ case 1: // Key
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 2: // Value
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *NetworkConfig_Parameter) GetKey() []byte {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+func (x *NetworkConfig_Parameter) SetKey(v []byte) {
+ x.Key = v
+}
+func (x *NetworkConfig_Parameter) GetValue() []byte {
+ if x != nil {
+ return x.Value
+ }
+ return nil
+}
+func (x *NetworkConfig_Parameter) SetValue(v []byte) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetworkConfig_Parameter) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetworkConfig_Parameter) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.Key)
+ }
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetworkConfig_Parameter) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetworkConfig_Parameter) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "key":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Key = f
+ }
+ case "value":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetworkConfig struct {
+ Parameters []*NetworkConfig_Parameter `json:"parameters"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetworkConfig)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetworkConfig)(nil)
+ _ json.Marshaler = (*NetworkConfig)(nil)
+ _ json.Unmarshaler = (*NetworkConfig)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetworkConfig) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ for i := range x.Parameters {
+ size += proto.NestedStructureSize(1, x.Parameters[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetworkConfig) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetworkConfig) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ for i := range x.Parameters {
+ if x.Parameters[i] != nil && x.Parameters[i].StableSize() != 0 {
+ x.Parameters[i].EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetworkConfig) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetworkConfig")
+ }
+ switch fc.FieldNum {
+ case 1: // Parameters
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Parameters")
+ }
+ x.Parameters = append(x.Parameters, new(NetworkConfig_Parameter))
+ ff := x.Parameters[len(x.Parameters)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *NetworkConfig) GetParameters() []*NetworkConfig_Parameter {
+ if x != nil {
+ return x.Parameters
+ }
+ return nil
+}
+func (x *NetworkConfig) SetParameters(v []*NetworkConfig_Parameter) {
+ x.Parameters = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetworkConfig) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetworkConfig) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"parameters\":"
+ out.RawString(prefix[1:])
+ out.RawByte('[')
+ for i := range x.Parameters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Parameters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetworkConfig) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetworkConfig) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "parameters":
+ {
+ var f *NetworkConfig_Parameter
+ var list []*NetworkConfig_Parameter
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(NetworkConfig_Parameter)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Parameters = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type NetworkInfo struct {
+ CurrentEpoch uint64 `json:"currentEpoch"`
+ MagicNumber uint64 `json:"magicNumber"`
+ MsPerBlock int64 `json:"msPerBlock"`
+ NetworkConfig *NetworkConfig `json:"networkConfig"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*NetworkInfo)(nil)
+ _ encoding.ProtoUnmarshaler = (*NetworkInfo)(nil)
+ _ json.Marshaler = (*NetworkInfo)(nil)
+ _ json.Unmarshaler = (*NetworkInfo)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *NetworkInfo) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt64Size(1, x.CurrentEpoch)
+ size += proto.UInt64Size(2, x.MagicNumber)
+ size += proto.Int64Size(3, x.MsPerBlock)
+ size += proto.NestedStructureSize(4, x.NetworkConfig)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *NetworkInfo) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *NetworkInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.CurrentEpoch != 0 {
+ mm.AppendUint64(1, x.CurrentEpoch)
+ }
+ if x.MagicNumber != 0 {
+ mm.AppendUint64(2, x.MagicNumber)
+ }
+ if x.MsPerBlock != 0 {
+ mm.AppendInt64(3, x.MsPerBlock)
+ }
+ if x.NetworkConfig != nil && x.NetworkConfig.StableSize() != 0 {
+ x.NetworkConfig.EmitProtobuf(mm.AppendMessage(4))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *NetworkInfo) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "NetworkInfo")
+ }
+ switch fc.FieldNum {
+ case 1: // CurrentEpoch
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "CurrentEpoch")
+ }
+ x.CurrentEpoch = data
+ case 2: // MagicNumber
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MagicNumber")
+ }
+ x.MagicNumber = data
+ case 3: // MsPerBlock
+ data, ok := fc.Int64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MsPerBlock")
+ }
+ x.MsPerBlock = data
+ case 4: // NetworkConfig
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "NetworkConfig")
+ }
+ x.NetworkConfig = new(NetworkConfig)
+ if err := x.NetworkConfig.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *NetworkInfo) GetCurrentEpoch() uint64 {
+ if x != nil {
+ return x.CurrentEpoch
+ }
+ return 0
+}
+func (x *NetworkInfo) SetCurrentEpoch(v uint64) {
+ x.CurrentEpoch = v
+}
+func (x *NetworkInfo) GetMagicNumber() uint64 {
+ if x != nil {
+ return x.MagicNumber
+ }
+ return 0
+}
+func (x *NetworkInfo) SetMagicNumber(v uint64) {
+ x.MagicNumber = v
+}
+func (x *NetworkInfo) GetMsPerBlock() int64 {
+ if x != nil {
+ return x.MsPerBlock
+ }
+ return 0
+}
+func (x *NetworkInfo) SetMsPerBlock(v int64) {
+ x.MsPerBlock = v
+}
+func (x *NetworkInfo) GetNetworkConfig() *NetworkConfig {
+ if x != nil {
+ return x.NetworkConfig
+ }
+ return nil
+}
+func (x *NetworkInfo) SetNetworkConfig(v *NetworkConfig) {
+ x.NetworkConfig = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *NetworkInfo) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *NetworkInfo) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"currentEpoch\":"
+ out.RawString(prefix[1:])
+ out.Uint64(x.CurrentEpoch)
+ }
+ {
+ const prefix string = ",\"magicNumber\":"
+ out.RawString(prefix)
+ out.Uint64(x.MagicNumber)
+ }
+ {
+ const prefix string = ",\"msPerBlock\":"
+ out.RawString(prefix)
+ out.Int64(x.MsPerBlock)
+ }
+ {
+ const prefix string = ",\"networkConfig\":"
+ out.RawString(prefix)
+ x.NetworkConfig.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *NetworkInfo) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *NetworkInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "currentEpoch":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.CurrentEpoch = f
+ }
+ case "magicNumber":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.MagicNumber = f
+ }
+ case "msPerBlock":
+ {
+ var f int64
+ f = in.Int64()
+ x.MsPerBlock = f
+ }
+ case "networkConfig":
+ {
+ var f *NetworkConfig
+ f = new(NetworkConfig)
+ f.UnmarshalEasyJSON(in)
+ x.NetworkConfig = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/netmap/grpc/types_frostfs_fuzz.go b/netmap/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..89ccd74
--- /dev/null
+++ b/netmap/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,159 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package netmap
+
+func DoFuzzProtoFilter(data []byte) int {
+ msg := new(Filter)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONFilter(data []byte) int {
+ msg := new(Filter)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoSelector(data []byte) int {
+ msg := new(Selector)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONSelector(data []byte) int {
+ msg := new(Selector)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoReplica(data []byte) int {
+ msg := new(Replica)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONReplica(data []byte) int {
+ msg := new(Replica)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoPlacementPolicy(data []byte) int {
+ msg := new(PlacementPolicy)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONPlacementPolicy(data []byte) int {
+ msg := new(PlacementPolicy)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoNodeInfo(data []byte) int {
+ msg := new(NodeInfo)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONNodeInfo(data []byte) int {
+ msg := new(NodeInfo)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoNetmap(data []byte) int {
+ msg := new(Netmap)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONNetmap(data []byte) int {
+ msg := new(Netmap)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoNetworkConfig(data []byte) int {
+ msg := new(NetworkConfig)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONNetworkConfig(data []byte) int {
+ msg := new(NetworkConfig)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoNetworkInfo(data []byte) int {
+ msg := new(NetworkInfo)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONNetworkInfo(data []byte) int {
+ msg := new(NetworkInfo)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/netmap/grpc/types_frostfs_test.go b/netmap/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..9996dc9
--- /dev/null
+++ b/netmap/grpc/types_frostfs_test.go
@@ -0,0 +1,91 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package netmap
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoFilter(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoFilter(data)
+ })
+}
+func FuzzJSONFilter(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONFilter(data)
+ })
+}
+func FuzzProtoSelector(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoSelector(data)
+ })
+}
+func FuzzJSONSelector(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONSelector(data)
+ })
+}
+func FuzzProtoReplica(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoReplica(data)
+ })
+}
+func FuzzJSONReplica(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONReplica(data)
+ })
+}
+func FuzzProtoPlacementPolicy(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoPlacementPolicy(data)
+ })
+}
+func FuzzJSONPlacementPolicy(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONPlacementPolicy(data)
+ })
+}
+func FuzzProtoNodeInfo(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoNodeInfo(data)
+ })
+}
+func FuzzJSONNodeInfo(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONNodeInfo(data)
+ })
+}
+func FuzzProtoNetmap(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoNetmap(data)
+ })
+}
+func FuzzJSONNetmap(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONNetmap(data)
+ })
+}
+func FuzzProtoNetworkConfig(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoNetworkConfig(data)
+ })
+}
+func FuzzJSONNetworkConfig(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONNetworkConfig(data)
+ })
+}
+func FuzzProtoNetworkInfo(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoNetworkInfo(data)
+ })
+}
+func FuzzJSONNetworkInfo(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONNetworkInfo(data)
+ })
+}
diff --git a/object/convert.go b/object/convert.go
index 9814b58..e237883 100644
--- a/object/convert.go
+++ b/object/convert.go
@@ -2491,7 +2491,7 @@ func (r *PatchResponseBody) ToGRPCMessage() grpc.Message {
if r != nil {
m = new(object.PatchResponse_Body)
- m.SetObjectID(r.ObjectID.ToGRPCMessage().(*refsGRPC.ObjectID))
+ m.SetObjectId(r.ObjectID.ToGRPCMessage().(*refsGRPC.ObjectID))
}
return m
diff --git a/object/grpc/service.go b/object/grpc/service.go
deleted file mode 100644
index ef6422e..0000000
--- a/object/grpc/service.go
+++ /dev/null
@@ -1,610 +0,0 @@
-package object
-
-import (
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
-)
-
-// SetAddress sets address of the requested object.
-func (m *GetRequest_Body) SetAddress(v *refs.Address) {
- m.Address = v
-}
-
-// SetRaw sets raw flag of the request.
-func (m *GetRequest_Body) SetRaw(v bool) {
- m.Raw = v
-}
-
-// SetBody sets body of the request.
-func (m *GetRequest) SetBody(v *GetRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *GetRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *GetRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetObjectId sets identifier of the object.
-func (m *GetResponse_Body_Init) SetObjectId(v *refs.ObjectID) {
- m.ObjectId = v
-}
-
-// SetSignature sets signature of the object identifier.
-func (m *GetResponse_Body_Init) SetSignature(v *refs.Signature) {
- m.Signature = v
-}
-
-// SetHeader sets header of the object.
-func (m *GetResponse_Body_Init) SetHeader(v *Header) {
- m.Header = v
-}
-
-// GetChunk returns chunk of the object payload bytes.
-func (m *GetResponse_Body_Chunk) GetChunk() []byte {
- if m != nil {
- return m.Chunk
- }
-
- return nil
-}
-
-// SetChunk sets chunk of the object payload bytes.
-func (m *GetResponse_Body_Chunk) SetChunk(v []byte) {
- m.Chunk = v
-}
-
-// SetInit sets initial part of the object.
-func (m *GetResponse_Body) SetInit(v *GetResponse_Body_Init) {
- m.ObjectPart = &GetResponse_Body_Init_{
- Init: v,
- }
-}
-
-// SetChunk sets part of the object payload.
-func (m *GetResponse_Body) SetChunk(v *GetResponse_Body_Chunk) {
- m.ObjectPart = v
-}
-
-// SetSplitInfo sets part of the object payload.
-func (m *GetResponse_Body) SetSplitInfo(v *SplitInfo) {
- m.ObjectPart = &GetResponse_Body_SplitInfo{
- SplitInfo: v,
- }
-}
-
-// SetEcInfo sets part of the object payload.
-func (m *GetResponse_Body) SetEcInfo(v *ECInfo) {
- m.ObjectPart = &GetResponse_Body_EcInfo{
- EcInfo: v,
- }
-}
-
-// SetBody sets body of the response.
-func (m *GetResponse) SetBody(v *GetResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *GetResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *GetResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetObjectId sets identifier of the object.
-func (m *PutRequest_Body_Init) SetObjectId(v *refs.ObjectID) {
- m.ObjectId = v
-}
-
-// SetSignature sets signature of the object identifier.
-func (m *PutRequest_Body_Init) SetSignature(v *refs.Signature) {
- m.Signature = v
-}
-
-// SetHeader sets header of the object.
-func (m *PutRequest_Body_Init) SetHeader(v *Header) {
- m.Header = v
-}
-
-// SetCopiesNumber sets number of the copies to save.
-func (m *PutRequest_Body_Init) SetCopiesNumber(v []uint32) {
- m.CopiesNumber = v
-}
-
-// GetChunk returns chunk of the object payload bytes.
-func (m *PutRequest_Body_Chunk) GetChunk() []byte {
- if m != nil {
- return m.Chunk
- }
-
- return nil
-}
-
-// SetChunk sets chunk of the object payload bytes.
-func (m *PutRequest_Body_Chunk) SetChunk(v []byte) {
- m.Chunk = v
-}
-
-// SetInit sets initial part of the object.
-func (m *PutRequest_Body) SetInit(v *PutRequest_Body_Init) {
- m.ObjectPart = &PutRequest_Body_Init_{
- Init: v,
- }
-}
-
-// SetChunk sets part of the object payload.
-func (m *PutRequest_Body) SetChunk(v *PutRequest_Body_Chunk) {
- m.ObjectPart = v
-}
-
-// SetBody sets body of the request.
-func (m *PutRequest) SetBody(v *PutRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *PutRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *PutRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetObjectId sets identifier of the saved object.
-func (m *PutResponse_Body) SetObjectId(v *refs.ObjectID) {
- m.ObjectId = v
-}
-
-// SetBody sets body of the response.
-func (m *PutResponse) SetBody(v *PutResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *PutResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *PutResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetAddress sets address of the object to delete.
-func (m *DeleteRequest_Body) SetAddress(v *refs.Address) {
- m.Address = v
-}
-
-// SetBody sets body of the request.
-func (m *DeleteRequest) SetBody(v *DeleteRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *DeleteRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *DeleteRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetTombstone sets tombstone address.
-func (x *DeleteResponse_Body) SetTombstone(v *refs.Address) {
- x.Tombstone = v
-}
-
-// SetBody sets body of the response.
-func (m *DeleteResponse) SetBody(v *DeleteResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *DeleteResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *DeleteResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetAddress sets address of the object with the requested header.
-func (m *HeadRequest_Body) SetAddress(v *refs.Address) {
- m.Address = v
-}
-
-// SetMainOnly sets flag to return the minimal header subset.
-func (m *HeadRequest_Body) SetMainOnly(v bool) {
- m.MainOnly = v
-}
-
-// SetRaw sets raw flag of the request.
-func (m *HeadRequest_Body) SetRaw(v bool) {
- m.Raw = v
-}
-
-// SetBody sets body of the request.
-func (m *HeadRequest) SetBody(v *HeadRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *HeadRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *HeadRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetHeader sets object header.
-func (m *HeaderWithSignature) SetHeader(v *Header) {
- m.Header = v
-}
-
-// SetSignature of the header.
-func (m *HeaderWithSignature) SetSignature(v *refs.Signature) {
- m.Signature = v
-}
-
-// SetHeader sets full header of the object.
-func (m *HeadResponse_Body) SetHeader(v *HeaderWithSignature) {
- m.Head = &HeadResponse_Body_Header{
- Header: v,
- }
-}
-
-// SetShortHeader sets short header of the object.
-func (m *HeadResponse_Body) SetShortHeader(v *ShortHeader) {
- m.Head = &HeadResponse_Body_ShortHeader{
- ShortHeader: v,
- }
-}
-
-// SetSplitInfo sets meta info about split hierarchy of the object.
-func (m *HeadResponse_Body) SetSplitInfo(v *SplitInfo) {
- m.Head = &HeadResponse_Body_SplitInfo{
- SplitInfo: v,
- }
-}
-
-// SetEcInfo sets meta info about the erasure coded object.
-func (m *HeadResponse_Body) SetEcInfo(v *ECInfo) {
- m.Head = &HeadResponse_Body_EcInfo{
- EcInfo: v,
- }
-}
-
-// SetBody sets body of the response.
-func (m *HeadResponse) SetBody(v *HeadResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *HeadResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *HeadResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetMatchType sets match type of the filter.
-func (m *SearchRequest_Body_Filter) SetMatchType(v MatchType) {
- m.MatchType = v
-}
-
-// SetKey sets key to the filtering header.
-func (m *SearchRequest_Body_Filter) SetKey(v string) {
- m.Key = v
-}
-
-// SetValue sets value of the filtering header.
-func (m *SearchRequest_Body_Filter) SetValue(v string) {
- m.Value = v
-}
-
-// SetVersion sets version of the search query.
-func (m *SearchRequest_Body) SetVersion(v uint32) {
- m.Version = v
-}
-
-// SetFilters sets list of the query filters.
-func (m *SearchRequest_Body) SetFilters(v []*SearchRequest_Body_Filter) {
- m.Filters = v
-}
-
-// SetContainerId sets container ID of the search requets.
-func (m *SearchRequest_Body) SetContainerId(v *refs.ContainerID) {
- m.ContainerId = v
-}
-
-// SetBody sets body of the request.
-func (m *SearchRequest) SetBody(v *SearchRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *SearchRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *SearchRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetIdList sets list of the identifiers of the matched objects.
-func (m *SearchResponse_Body) SetIdList(v []*refs.ObjectID) {
- m.IdList = v
-}
-
-// SetBody sets body of the response.
-func (m *SearchResponse) SetBody(v *SearchResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *SearchResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *SearchResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetOffset sets offset of the payload range.
-func (m *Range) SetOffset(v uint64) {
- m.Offset = v
-}
-
-// SetLength sets length of the payload range.
-func (m *Range) SetLength(v uint64) {
- m.Length = v
-}
-
-// SetAddress sets address of the object with the request payload range.
-func (m *GetRangeRequest_Body) SetAddress(v *refs.Address) {
- m.Address = v
-}
-
-// SetRange sets range of the object payload.
-func (m *GetRangeRequest_Body) SetRange(v *Range) {
- m.Range = v
-}
-
-// SetRaw sets raw flag of the request.
-func (m *GetRangeRequest_Body) SetRaw(v bool) {
- m.Raw = v
-}
-
-// SetBody sets body of the request.
-func (m *GetRangeRequest) SetBody(v *GetRangeRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *GetRangeRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *GetRangeRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// GetChunk returns chunk of the object payload range bytes.
-func (m *GetRangeResponse_Body_Chunk) GetChunk() []byte {
- if m != nil {
- return m.Chunk
- }
-
- return nil
-}
-
-// SetChunk sets chunk of the object payload range bytes.
-func (m *GetRangeResponse_Body_Chunk) SetChunk(v []byte) {
- m.Chunk = v
-}
-
-// SetChunk sets chunk of the object payload.
-func (m *GetRangeResponse_Body) SetChunk(v *GetRangeResponse_Body_Chunk) {
- m.RangePart = v
-}
-
-// SetSplitInfo sets meta info about split hierarchy of the object.
-func (m *GetRangeResponse_Body) SetSplitInfo(v *SplitInfo) {
- m.RangePart = &GetRangeResponse_Body_SplitInfo{
- SplitInfo: v,
- }
-}
-
-// SetEcInfo sets meta info about the erasure-coded object.
-func (m *GetRangeResponse_Body) SetEcInfo(v *ECInfo) {
- m.RangePart = &GetRangeResponse_Body_EcInfo{
- EcInfo: v,
- }
-}
-
-// SetBody sets body of the response.
-func (m *GetRangeResponse) SetBody(v *GetRangeResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *GetRangeResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *GetRangeResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetAddress sets address of the object with the request payload range.
-func (m *GetRangeHashRequest_Body) SetAddress(v *refs.Address) {
- m.Address = v
-}
-
-// SetRanges sets list of the ranges of the object payload.
-func (m *GetRangeHashRequest_Body) SetRanges(v []*Range) {
- m.Ranges = v
-}
-
-// SetSalt sets salt for the object payload ranges.
-func (m *GetRangeHashRequest_Body) SetSalt(v []byte) {
- m.Salt = v
-}
-
-// Set sets salt for the object payload ranges.
-func (m *GetRangeHashRequest_Body) SetType(v refs.ChecksumType) {
- m.Type = v
-}
-
-// SetBody sets body of the request.
-func (m *GetRangeHashRequest) SetBody(v *GetRangeHashRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *GetRangeHashRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *GetRangeHashRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetHashList returns list of the range hashes.
-func (m *GetRangeHashResponse_Body) SetHashList(v [][]byte) {
- m.HashList = v
-}
-
-// SetHashList returns list of the range hashes.
-func (m *GetRangeHashResponse_Body) SetType(v refs.ChecksumType) {
- m.Type = v
-}
-
-// SetBody sets body of the response.
-func (m *GetRangeHashResponse) SetBody(v *GetRangeHashResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *GetRangeHashResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *GetRangeHashResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetObject set object of the body.
-func (m *PutSingleRequest_Body) SetObject(o *Object) {
- m.Object = o
-}
-
-// SetCopiesNumber sets copies number of the body.
-func (m *PutSingleRequest_Body) SetCopiesNumber(v []uint32) {
- m.CopiesNumber = v
-}
-
-// SetBody sets body of the request.
-func (m *PutSingleRequest) SetBody(b *PutSingleRequest_Body) {
- m.Body = b
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *PutSingleRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *PutSingleRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetBody sets body of the response.
-func (m *PutSingleResponse) SetBody(b *PutSingleResponse_Body) {
- m.Body = b
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *PutSingleResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *PutSingleResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
-
-func (m *PatchRequest_Body) SetAddress(addr *refs.Address) {
- m.Address = addr
-}
-
-func (m *PatchRequest_Body) SetNewAttributes(attrs []*Header_Attribute) {
- m.NewAttributes = attrs
-}
-
-func (m *PatchRequest_Body) SetReplaceAttributes(replaceAttributes bool) {
- m.ReplaceAttributes = replaceAttributes
-}
-
-func (m *PatchRequest_Body) SetPatch(patch *PatchRequest_Body_Patch) {
- m.Patch = patch
-}
-
-func (m *PatchRequest_Body_Patch) SetSourceRange(r *Range) {
- m.SourceRange = r
-}
-
-func (m *PatchRequest_Body_Patch) SetChunk(chunk []byte) {
- m.Chunk = chunk
-}
-
-func (m *PatchRequest) SetBody(b *PatchRequest_Body) {
- m.Body = b
-}
-
-func (m *PatchRequest) SetMetaHeader(v *session.RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-func (m *PatchRequest) SetVerifyHeader(v *session.RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-func (m *PatchResponse_Body) SetObjectID(objectID *refs.ObjectID) {
- m.ObjectId = objectID
-}
-
-func (m *PatchResponse) SetBody(b *PatchResponse_Body) {
- m.Body = b
-}
-
-func (m *PatchResponse) SetMetaHeader(v *session.ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-func (m *PatchResponse) SetVerifyHeader(v *session.ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
diff --git a/object/grpc/service.pb.go b/object/grpc/service.pb.go
deleted file mode 100644
index 979c932..0000000
--- a/object/grpc/service.pb.go
+++ /dev/null
@@ -1,4244 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: object/grpc/service.proto
-
-package object
-
-import (
- grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// GET object request
-type GetRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get object request message.
- Body *GetRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetRequest) Reset() {
- *x = GetRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRequest) ProtoMessage() {}
-
-func (x *GetRequest) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.
-func (*GetRequest) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *GetRequest) GetBody() *GetRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// GET object response
-type GetResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get object response message.
- Body *GetResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetResponse) Reset() {
- *x = GetResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetResponse) ProtoMessage() {}
-
-func (x *GetResponse) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.
-func (*GetResponse) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *GetResponse) GetBody() *GetResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// PUT object request
-type PutRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of put object request message.
- Body *PutRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *PutRequest) Reset() {
- *x = PutRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutRequest) ProtoMessage() {}
-
-func (x *PutRequest) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use PutRequest.ProtoReflect.Descriptor instead.
-func (*PutRequest) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *PutRequest) GetBody() *PutRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *PutRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *PutRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// PUT Object response
-type PutResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of put object response message.
- Body *PutResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *PutResponse) Reset() {
- *x = PutResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutResponse) ProtoMessage() {}
-
-func (x *PutResponse) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use PutResponse.ProtoReflect.Descriptor instead.
-func (*PutResponse) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *PutResponse) GetBody() *PutResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *PutResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *PutResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Object DELETE request
-type DeleteRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of delete object request message.
- Body *DeleteRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *DeleteRequest) Reset() {
- *x = DeleteRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DeleteRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteRequest) ProtoMessage() {}
-
-func (x *DeleteRequest) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[4]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead.
-func (*DeleteRequest) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *DeleteRequest) GetBody() *DeleteRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *DeleteRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *DeleteRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// DeleteResponse body is empty because we cannot guarantee permanent object
-// removal in distributed system.
-type DeleteResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of delete object response message.
- Body *DeleteResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *DeleteResponse) Reset() {
- *x = DeleteResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DeleteResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteResponse) ProtoMessage() {}
-
-func (x *DeleteResponse) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[5]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use DeleteResponse.ProtoReflect.Descriptor instead.
-func (*DeleteResponse) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *DeleteResponse) GetBody() *DeleteResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *DeleteResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *DeleteResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Object HEAD request
-type HeadRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of head object request message.
- Body *HeadRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *HeadRequest) Reset() {
- *x = HeadRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *HeadRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*HeadRequest) ProtoMessage() {}
-
-func (x *HeadRequest) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 HeadRequest.ProtoReflect.Descriptor instead.
-func (*HeadRequest) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *HeadRequest) GetBody() *HeadRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *HeadRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *HeadRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Tuple of a full object header and signature of an `ObjectID`. \
-// Signed `ObjectID` is present to verify full header's authenticity through the
-// following steps:
-//
-// 1. Calculate `SHA-256` of the marshalled `Header` structure
-// 2. Check if the resulting hash matches `ObjectID`
-// 3. Check if `ObjectID` signature in `signature` field is correct
-type HeaderWithSignature struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Full object header
- Header *Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
- // Signed `ObjectID` to verify full header's authenticity
- Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
-}
-
-func (x *HeaderWithSignature) Reset() {
- *x = HeaderWithSignature{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *HeaderWithSignature) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*HeaderWithSignature) ProtoMessage() {}
-
-func (x *HeaderWithSignature) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 HeaderWithSignature.ProtoReflect.Descriptor instead.
-func (*HeaderWithSignature) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *HeaderWithSignature) GetHeader() *Header {
- if x != nil {
- return x.Header
- }
- return nil
-}
-
-func (x *HeaderWithSignature) GetSignature() *grpc1.Signature {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-// Object HEAD response
-type HeadResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of head object response message.
- Body *HeadResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *HeadResponse) Reset() {
- *x = HeadResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *HeadResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*HeadResponse) ProtoMessage() {}
-
-func (x *HeadResponse) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 HeadResponse.ProtoReflect.Descriptor instead.
-func (*HeadResponse) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{8}
-}
-
-func (x *HeadResponse) GetBody() *HeadResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *HeadResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *HeadResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Object Search request
-type SearchRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of search object request message.
- Body *SearchRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *SearchRequest) Reset() {
- *x = SearchRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SearchRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SearchRequest) ProtoMessage() {}
-
-func (x *SearchRequest) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 SearchRequest.ProtoReflect.Descriptor instead.
-func (*SearchRequest) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{9}
-}
-
-func (x *SearchRequest) GetBody() *SearchRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *SearchRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *SearchRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Search response
-type SearchResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of search object response message.
- Body *SearchResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *SearchResponse) Reset() {
- *x = SearchResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SearchResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SearchResponse) ProtoMessage() {}
-
-func (x *SearchResponse) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 SearchResponse.ProtoReflect.Descriptor instead.
-func (*SearchResponse) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{10}
-}
-
-func (x *SearchResponse) GetBody() *SearchResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *SearchResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *SearchResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Object payload range.Ranges of zero length SHOULD be considered as invalid.
-type Range struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Offset of the range from the object payload start
- Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"`
- // Length in bytes of the object payload range
- Length uint64 `protobuf:"varint,2,opt,name=length,proto3" json:"length,omitempty"`
-}
-
-func (x *Range) Reset() {
- *x = Range{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[11]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Range) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Range) ProtoMessage() {}
-
-func (x *Range) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 Range.ProtoReflect.Descriptor instead.
-func (*Range) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{11}
-}
-
-func (x *Range) GetOffset() uint64 {
- if x != nil {
- return x.Offset
- }
- return 0
-}
-
-func (x *Range) GetLength() uint64 {
- if x != nil {
- return x.Length
- }
- return 0
-}
-
-// Request part of object's payload
-type GetRangeRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get range object request message.
- Body *GetRangeRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetRangeRequest) Reset() {
- *x = GetRangeRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[12]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRangeRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRangeRequest) ProtoMessage() {}
-
-func (x *GetRangeRequest) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 GetRangeRequest.ProtoReflect.Descriptor instead.
-func (*GetRangeRequest) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{12}
-}
-
-func (x *GetRangeRequest) GetBody() *GetRangeRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetRangeRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetRangeRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Get part of object's payload
-type GetRangeResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get range object response message.
- Body *GetRangeResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetRangeResponse) Reset() {
- *x = GetRangeResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRangeResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRangeResponse) ProtoMessage() {}
-
-func (x *GetRangeResponse) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 GetRangeResponse.ProtoReflect.Descriptor instead.
-func (*GetRangeResponse) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{13}
-}
-
-func (x *GetRangeResponse) GetBody() *GetRangeResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetRangeResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetRangeResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Get hash of object's payload part
-type GetRangeHashRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get range hash object request message.
- Body *GetRangeHashRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetRangeHashRequest) Reset() {
- *x = GetRangeHashRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[14]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRangeHashRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRangeHashRequest) ProtoMessage() {}
-
-func (x *GetRangeHashRequest) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 GetRangeHashRequest.ProtoReflect.Descriptor instead.
-func (*GetRangeHashRequest) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{14}
-}
-
-func (x *GetRangeHashRequest) GetBody() *GetRangeHashRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetRangeHashRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetRangeHashRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Get hash of object's payload part
-type GetRangeHashResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of get range hash object response message.
- Body *GetRangeHashResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *GetRangeHashResponse) Reset() {
- *x = GetRangeHashResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[15]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRangeHashResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRangeHashResponse) ProtoMessage() {}
-
-func (x *GetRangeHashResponse) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 GetRangeHashResponse.ProtoReflect.Descriptor instead.
-func (*GetRangeHashResponse) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{15}
-}
-
-func (x *GetRangeHashResponse) GetBody() *GetRangeHashResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *GetRangeHashResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *GetRangeHashResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Object PUT Single request
-type PutSingleRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of put single object request message.
- Body *PutSingleRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *PutSingleRequest) Reset() {
- *x = PutSingleRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[16]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutSingleRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutSingleRequest) ProtoMessage() {}
-
-func (x *PutSingleRequest) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 PutSingleRequest.ProtoReflect.Descriptor instead.
-func (*PutSingleRequest) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{16}
-}
-
-func (x *PutSingleRequest) GetBody() *PutSingleRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *PutSingleRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *PutSingleRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Object PUT Single response
-type PutSingleResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of put single object response message.
- Body *PutSingleResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *PutSingleResponse) Reset() {
- *x = PutSingleResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[17]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutSingleResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutSingleResponse) ProtoMessage() {}
-
-func (x *PutSingleResponse) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 PutSingleResponse.ProtoReflect.Descriptor instead.
-func (*PutSingleResponse) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{17}
-}
-
-func (x *PutSingleResponse) GetBody() *PutSingleResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *PutSingleResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *PutSingleResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Object PATCH request
-type PatchRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body for patch request message.
- Body *PatchRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *grpc.RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *PatchRequest) Reset() {
- *x = PatchRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[18]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PatchRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PatchRequest) ProtoMessage() {}
-
-func (x *PatchRequest) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 PatchRequest.ProtoReflect.Descriptor instead.
-func (*PatchRequest) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{18}
-}
-
-func (x *PatchRequest) GetBody() *PatchRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *PatchRequest) GetMetaHeader() *grpc.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *PatchRequest) GetVerifyHeader() *grpc.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Object PATCH response
-type PatchResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body for patch response message.
- Body *PatchResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *grpc.ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to authenticate
- // the nodes of the message route and check the correctness of transmission.
- VerifyHeader *grpc.ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *PatchResponse) Reset() {
- *x = PatchResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[19]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PatchResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PatchResponse) ProtoMessage() {}
-
-func (x *PatchResponse) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_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 PatchResponse.ProtoReflect.Descriptor instead.
-func (*PatchResponse) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{19}
-}
-
-func (x *PatchResponse) GetBody() *PatchResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *PatchResponse) GetMetaHeader() *grpc.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *PatchResponse) GetVerifyHeader() *grpc.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// GET Object request body
-type GetRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Address of the requested object
- Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
- // If `raw` flag is set, request will work only with objects that are
- // physically stored on the peer node
- Raw bool `protobuf:"varint,2,opt,name=raw,proto3" json:"raw,omitempty"`
-}
-
-func (x *GetRequest_Body) Reset() {
- *x = GetRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[20]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRequest_Body) ProtoMessage() {}
-
-func (x *GetRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[20]
- 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 GetRequest_Body.ProtoReflect.Descriptor instead.
-func (*GetRequest_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *GetRequest_Body) GetAddress() *grpc1.Address {
- if x != nil {
- return x.Address
- }
- return nil
-}
-
-func (x *GetRequest_Body) GetRaw() bool {
- if x != nil {
- return x.Raw
- }
- return false
-}
-
-// GET Object Response body
-type GetResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Single message in the response stream.
- //
- // Types that are assignable to ObjectPart:
- //
- // *GetResponse_Body_Init_
- // *GetResponse_Body_Chunk
- // *GetResponse_Body_SplitInfo
- // *GetResponse_Body_EcInfo
- ObjectPart isGetResponse_Body_ObjectPart `protobuf_oneof:"object_part"`
-}
-
-func (x *GetResponse_Body) Reset() {
- *x = GetResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[21]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetResponse_Body) ProtoMessage() {}
-
-func (x *GetResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[21]
- 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 GetResponse_Body.ProtoReflect.Descriptor instead.
-func (*GetResponse_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (m *GetResponse_Body) GetObjectPart() isGetResponse_Body_ObjectPart {
- if m != nil {
- return m.ObjectPart
- }
- return nil
-}
-
-func (x *GetResponse_Body) GetInit() *GetResponse_Body_Init {
- if x, ok := x.GetObjectPart().(*GetResponse_Body_Init_); ok {
- return x.Init
- }
- return nil
-}
-
-func (x *GetResponse_Body) GetChunk() []byte {
- if x, ok := x.GetObjectPart().(*GetResponse_Body_Chunk); ok {
- return x.Chunk
- }
- return nil
-}
-
-func (x *GetResponse_Body) GetSplitInfo() *SplitInfo {
- if x, ok := x.GetObjectPart().(*GetResponse_Body_SplitInfo); ok {
- return x.SplitInfo
- }
- return nil
-}
-
-func (x *GetResponse_Body) GetEcInfo() *ECInfo {
- if x, ok := x.GetObjectPart().(*GetResponse_Body_EcInfo); ok {
- return x.EcInfo
- }
- return nil
-}
-
-type isGetResponse_Body_ObjectPart interface {
- isGetResponse_Body_ObjectPart()
-}
-
-type GetResponse_Body_Init_ struct {
- // Initial part of the object stream
- Init *GetResponse_Body_Init `protobuf:"bytes,1,opt,name=init,proto3,oneof"`
-}
-
-type GetResponse_Body_Chunk struct {
- // Chunked object payload
- Chunk []byte `protobuf:"bytes,2,opt,name=chunk,proto3,oneof"`
-}
-
-type GetResponse_Body_SplitInfo struct {
- // Meta information of split hierarchy for object assembly.
- SplitInfo *SplitInfo `protobuf:"bytes,3,opt,name=split_info,json=splitInfo,proto3,oneof"`
-}
-
-type GetResponse_Body_EcInfo struct {
- // Meta information for EC object assembly.
- EcInfo *ECInfo `protobuf:"bytes,4,opt,name=ec_info,json=ecInfo,proto3,oneof"`
-}
-
-func (*GetResponse_Body_Init_) isGetResponse_Body_ObjectPart() {}
-
-func (*GetResponse_Body_Chunk) isGetResponse_Body_ObjectPart() {}
-
-func (*GetResponse_Body_SplitInfo) isGetResponse_Body_ObjectPart() {}
-
-func (*GetResponse_Body_EcInfo) isGetResponse_Body_ObjectPart() {}
-
-// Initial part of the `Object` structure stream. Technically it's a
-// set of all `Object` structure's fields except `payload`.
-type GetResponse_Body_Init struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Object's unique identifier.
- ObjectId *grpc1.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
- // Signed `ObjectID`
- Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
- // Object metadata headers
- Header *Header `protobuf:"bytes,3,opt,name=header,proto3" json:"header,omitempty"`
-}
-
-func (x *GetResponse_Body_Init) Reset() {
- *x = GetResponse_Body_Init{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[22]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetResponse_Body_Init) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetResponse_Body_Init) ProtoMessage() {}
-
-func (x *GetResponse_Body_Init) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[22]
- 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 GetResponse_Body_Init.ProtoReflect.Descriptor instead.
-func (*GetResponse_Body_Init) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{1, 0, 0}
-}
-
-func (x *GetResponse_Body_Init) GetObjectId() *grpc1.ObjectID {
- if x != nil {
- return x.ObjectId
- }
- return nil
-}
-
-func (x *GetResponse_Body_Init) GetSignature() *grpc1.Signature {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-func (x *GetResponse_Body_Init) GetHeader() *Header {
- if x != nil {
- return x.Header
- }
- return nil
-}
-
-// PUT request body
-type PutRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Single message in the request stream.
- //
- // Types that are assignable to ObjectPart:
- //
- // *PutRequest_Body_Init_
- // *PutRequest_Body_Chunk
- ObjectPart isPutRequest_Body_ObjectPart `protobuf_oneof:"object_part"`
-}
-
-func (x *PutRequest_Body) Reset() {
- *x = PutRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[23]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutRequest_Body) ProtoMessage() {}
-
-func (x *PutRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[23]
- 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 PutRequest_Body.ProtoReflect.Descriptor instead.
-func (*PutRequest_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{2, 0}
-}
-
-func (m *PutRequest_Body) GetObjectPart() isPutRequest_Body_ObjectPart {
- if m != nil {
- return m.ObjectPart
- }
- return nil
-}
-
-func (x *PutRequest_Body) GetInit() *PutRequest_Body_Init {
- if x, ok := x.GetObjectPart().(*PutRequest_Body_Init_); ok {
- return x.Init
- }
- return nil
-}
-
-func (x *PutRequest_Body) GetChunk() []byte {
- if x, ok := x.GetObjectPart().(*PutRequest_Body_Chunk); ok {
- return x.Chunk
- }
- return nil
-}
-
-type isPutRequest_Body_ObjectPart interface {
- isPutRequest_Body_ObjectPart()
-}
-
-type PutRequest_Body_Init_ struct {
- // Initial part of the object stream
- Init *PutRequest_Body_Init `protobuf:"bytes,1,opt,name=init,proto3,oneof"`
-}
-
-type PutRequest_Body_Chunk struct {
- // Chunked object payload
- Chunk []byte `protobuf:"bytes,2,opt,name=chunk,proto3,oneof"`
-}
-
-func (*PutRequest_Body_Init_) isPutRequest_Body_ObjectPart() {}
-
-func (*PutRequest_Body_Chunk) isPutRequest_Body_ObjectPart() {}
-
-// Newly created object structure parameters. If some optional parameters
-// are not set, they will be calculated by a peer node.
-type PutRequest_Body_Init struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // ObjectID if available.
- ObjectId *grpc1.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
- // Object signature if available
- Signature *grpc1.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
- // Object's Header
- Header *Header `protobuf:"bytes,3,opt,name=header,proto3" json:"header,omitempty"`
- // Number of copies of the object to store within the RPC call. By
- // default, object is processed according to the container's placement
- // policy. Can be one of:
- // 1. A single number; applied to the whole request and is treated as
- // a minimal number of nodes that must store an object to complete the
- // request successfully.
- // 2. An ordered array; every number is treated as a minimal number of
- // nodes in a corresponding placement vector that must store an object
- // to complete the request successfully. The length MUST equal the
- // placement vectors number, otherwise request is considered malformed.
- CopiesNumber []uint32 `protobuf:"varint,4,rep,packed,name=copies_number,json=copiesNumber,proto3" json:"copies_number,omitempty"`
-}
-
-func (x *PutRequest_Body_Init) Reset() {
- *x = PutRequest_Body_Init{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[24]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutRequest_Body_Init) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutRequest_Body_Init) ProtoMessage() {}
-
-func (x *PutRequest_Body_Init) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[24]
- 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 PutRequest_Body_Init.ProtoReflect.Descriptor instead.
-func (*PutRequest_Body_Init) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{2, 0, 0}
-}
-
-func (x *PutRequest_Body_Init) GetObjectId() *grpc1.ObjectID {
- if x != nil {
- return x.ObjectId
- }
- return nil
-}
-
-func (x *PutRequest_Body_Init) GetSignature() *grpc1.Signature {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-func (x *PutRequest_Body_Init) GetHeader() *Header {
- if x != nil {
- return x.Header
- }
- return nil
-}
-
-func (x *PutRequest_Body_Init) GetCopiesNumber() []uint32 {
- if x != nil {
- return x.CopiesNumber
- }
- return nil
-}
-
-// PUT Object response body
-type PutResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier of the saved object
- ObjectId *grpc1.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
-}
-
-func (x *PutResponse_Body) Reset() {
- *x = PutResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[25]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutResponse_Body) ProtoMessage() {}
-
-func (x *PutResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[25]
- 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 PutResponse_Body.ProtoReflect.Descriptor instead.
-func (*PutResponse_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{3, 0}
-}
-
-func (x *PutResponse_Body) GetObjectId() *grpc1.ObjectID {
- if x != nil {
- return x.ObjectId
- }
- return nil
-}
-
-// Object DELETE request body
-type DeleteRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Address of the object to be deleted
- Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
-}
-
-func (x *DeleteRequest_Body) Reset() {
- *x = DeleteRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[26]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DeleteRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteRequest_Body) ProtoMessage() {}
-
-func (x *DeleteRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[26]
- 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 DeleteRequest_Body.ProtoReflect.Descriptor instead.
-func (*DeleteRequest_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{4, 0}
-}
-
-func (x *DeleteRequest_Body) GetAddress() *grpc1.Address {
- if x != nil {
- return x.Address
- }
- return nil
-}
-
-// Object DELETE Response has an empty body.
-type DeleteResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Address of the tombstone created for the deleted object
- Tombstone *grpc1.Address `protobuf:"bytes,1,opt,name=tombstone,proto3" json:"tombstone,omitempty"`
-}
-
-func (x *DeleteResponse_Body) Reset() {
- *x = DeleteResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[27]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *DeleteResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*DeleteResponse_Body) ProtoMessage() {}
-
-func (x *DeleteResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[27]
- 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 DeleteResponse_Body.ProtoReflect.Descriptor instead.
-func (*DeleteResponse_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{5, 0}
-}
-
-func (x *DeleteResponse_Body) GetTombstone() *grpc1.Address {
- if x != nil {
- return x.Tombstone
- }
- return nil
-}
-
-// Object HEAD request body
-type HeadRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Address of the object with the requested Header
- Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
- // Return only minimal header subset
- MainOnly bool `protobuf:"varint,2,opt,name=main_only,json=mainOnly,proto3" json:"main_only,omitempty"`
- // If `raw` flag is set, request will work only with objects that are
- // physically stored on the peer node
- Raw bool `protobuf:"varint,3,opt,name=raw,proto3" json:"raw,omitempty"`
-}
-
-func (x *HeadRequest_Body) Reset() {
- *x = HeadRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[28]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *HeadRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*HeadRequest_Body) ProtoMessage() {}
-
-func (x *HeadRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[28]
- 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 HeadRequest_Body.ProtoReflect.Descriptor instead.
-func (*HeadRequest_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{6, 0}
-}
-
-func (x *HeadRequest_Body) GetAddress() *grpc1.Address {
- if x != nil {
- return x.Address
- }
- return nil
-}
-
-func (x *HeadRequest_Body) GetMainOnly() bool {
- if x != nil {
- return x.MainOnly
- }
- return false
-}
-
-func (x *HeadRequest_Body) GetRaw() bool {
- if x != nil {
- return x.Raw
- }
- return false
-}
-
-// Object HEAD response body
-type HeadResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Requested object header, it's part or meta information about split
- // object.
- //
- // Types that are assignable to Head:
- //
- // *HeadResponse_Body_Header
- // *HeadResponse_Body_ShortHeader
- // *HeadResponse_Body_SplitInfo
- // *HeadResponse_Body_EcInfo
- Head isHeadResponse_Body_Head `protobuf_oneof:"head"`
-}
-
-func (x *HeadResponse_Body) Reset() {
- *x = HeadResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[29]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *HeadResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*HeadResponse_Body) ProtoMessage() {}
-
-func (x *HeadResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[29]
- 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 HeadResponse_Body.ProtoReflect.Descriptor instead.
-func (*HeadResponse_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{8, 0}
-}
-
-func (m *HeadResponse_Body) GetHead() isHeadResponse_Body_Head {
- if m != nil {
- return m.Head
- }
- return nil
-}
-
-func (x *HeadResponse_Body) GetHeader() *HeaderWithSignature {
- if x, ok := x.GetHead().(*HeadResponse_Body_Header); ok {
- return x.Header
- }
- return nil
-}
-
-func (x *HeadResponse_Body) GetShortHeader() *ShortHeader {
- if x, ok := x.GetHead().(*HeadResponse_Body_ShortHeader); ok {
- return x.ShortHeader
- }
- return nil
-}
-
-func (x *HeadResponse_Body) GetSplitInfo() *SplitInfo {
- if x, ok := x.GetHead().(*HeadResponse_Body_SplitInfo); ok {
- return x.SplitInfo
- }
- return nil
-}
-
-func (x *HeadResponse_Body) GetEcInfo() *ECInfo {
- if x, ok := x.GetHead().(*HeadResponse_Body_EcInfo); ok {
- return x.EcInfo
- }
- return nil
-}
-
-type isHeadResponse_Body_Head interface {
- isHeadResponse_Body_Head()
-}
-
-type HeadResponse_Body_Header struct {
- // Full object's `Header` with `ObjectID` signature
- Header *HeaderWithSignature `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
-}
-
-type HeadResponse_Body_ShortHeader struct {
- // Short object header
- ShortHeader *ShortHeader `protobuf:"bytes,2,opt,name=short_header,json=shortHeader,proto3,oneof"`
-}
-
-type HeadResponse_Body_SplitInfo struct {
- // Meta information of split hierarchy.
- SplitInfo *SplitInfo `protobuf:"bytes,3,opt,name=split_info,json=splitInfo,proto3,oneof"`
-}
-
-type HeadResponse_Body_EcInfo struct {
- // Meta information for EC object assembly.
- EcInfo *ECInfo `protobuf:"bytes,4,opt,name=ec_info,json=ecInfo,proto3,oneof"`
-}
-
-func (*HeadResponse_Body_Header) isHeadResponse_Body_Head() {}
-
-func (*HeadResponse_Body_ShortHeader) isHeadResponse_Body_Head() {}
-
-func (*HeadResponse_Body_SplitInfo) isHeadResponse_Body_Head() {}
-
-func (*HeadResponse_Body_EcInfo) isHeadResponse_Body_Head() {}
-
-// Object Search request body
-type SearchRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Container identifier were to search
- ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
- // Version of the Query Language used
- Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
- // List of search expressions
- Filters []*SearchRequest_Body_Filter `protobuf:"bytes,3,rep,name=filters,proto3" json:"filters,omitempty"`
-}
-
-func (x *SearchRequest_Body) Reset() {
- *x = SearchRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[30]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SearchRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SearchRequest_Body) ProtoMessage() {}
-
-func (x *SearchRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[30]
- 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 SearchRequest_Body.ProtoReflect.Descriptor instead.
-func (*SearchRequest_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{9, 0}
-}
-
-func (x *SearchRequest_Body) GetContainerId() *grpc1.ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-
-func (x *SearchRequest_Body) GetVersion() uint32 {
- if x != nil {
- return x.Version
- }
- return 0
-}
-
-func (x *SearchRequest_Body) GetFilters() []*SearchRequest_Body_Filter {
- if x != nil {
- return x.Filters
- }
- return nil
-}
-
-// Filter structure checks if the object header field or the attribute
-// content matches a value.
-//
-// If no filters are set, search request will return all objects of the
-// container, including Regular object and Tombstone
-// objects. Most human users expect to get only object they can directly
-// work with. In that case, `$Object:ROOT` filter should be used.
-//
-// By default `key` field refers to the corresponding object's `Attribute`.
-// Some Object's header fields can also be accessed by adding `$Object:`
-// prefix to the name. Here is the list of fields available via this prefix:
-//
-// - $Object:version \
-// version
-// - $Object:objectID \
-// object_id
-// - $Object:containerID \
-// container_id
-// - $Object:ownerID \
-// owner_id
-// - $Object:creationEpoch \
-// creation_epoch
-// - $Object:payloadLength \
-// payload_length
-// - $Object:payloadHash \
-// payload_hash
-// - $Object:objectType \
-// object_type
-// - $Object:homomorphicHash \
-// homomorphic_hash
-// - $Object:split.parent \
-// object_id of parent
-// - $Object:split.splitID \
-// 16 byte UUIDv4 used to identify the split object hierarchy parts
-// - $Object:ec.parent \
-// If the object is stored according to EC policy, then ec_parent
-// attribute is set to return an id list of all related EC chunks.
-//
-// There are some well-known filter aliases to match objects by certain
-// properties:
-//
-// - $Object:ROOT \
-// Returns only `REGULAR` type objects that are not split or that are the
-// top level root objects in a split hierarchy. This includes objects not
-// present physically, like large objects split into smaller objects
-// without a separate top-level root object. Objects of other types like
-// Locks and Tombstones will not be shown. This filter may be
-// useful for listing objects like `ls` command of some virtual file
-// system. This filter is activated if the `key` exists, disregarding the
-// value and matcher type.
-// - $Object:PHY \
-// Returns only objects physically stored in the system. This filter is
-// activated if the `key` exists, disregarding the value and matcher type.
-//
-// Note: using filters with a key with prefix `$Object:` and match type
-// `NOT_PRESENT `is not recommended since this is not a cross-version
-// approach. Behavior when processing this kind of filters is undefined.
-type SearchRequest_Body_Filter struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Match type to use
- MatchType MatchType `protobuf:"varint,1,opt,name=match_type,json=matchType,proto3,enum=neo.fs.v2.object.MatchType" json:"match_type,omitempty"`
- // Attribute or Header fields to match
- Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
- // Value to match
- Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *SearchRequest_Body_Filter) Reset() {
- *x = SearchRequest_Body_Filter{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[31]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SearchRequest_Body_Filter) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SearchRequest_Body_Filter) ProtoMessage() {}
-
-func (x *SearchRequest_Body_Filter) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[31]
- 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 SearchRequest_Body_Filter.ProtoReflect.Descriptor instead.
-func (*SearchRequest_Body_Filter) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{9, 0, 0}
-}
-
-func (x *SearchRequest_Body_Filter) GetMatchType() MatchType {
- if x != nil {
- return x.MatchType
- }
- return MatchType_MATCH_TYPE_UNSPECIFIED
-}
-
-func (x *SearchRequest_Body_Filter) GetKey() string {
- if x != nil {
- return x.Key
- }
- return ""
-}
-
-func (x *SearchRequest_Body_Filter) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-// Object Search response body
-type SearchResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // List of `ObjectID`s that match the search query
- IdList []*grpc1.ObjectID `protobuf:"bytes,1,rep,name=id_list,json=idList,proto3" json:"id_list,omitempty"`
-}
-
-func (x *SearchResponse_Body) Reset() {
- *x = SearchResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[32]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SearchResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SearchResponse_Body) ProtoMessage() {}
-
-func (x *SearchResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[32]
- 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 SearchResponse_Body.ProtoReflect.Descriptor instead.
-func (*SearchResponse_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{10, 0}
-}
-
-func (x *SearchResponse_Body) GetIdList() []*grpc1.ObjectID {
- if x != nil {
- return x.IdList
- }
- return nil
-}
-
-// Byte range of object's payload request body
-type GetRangeRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Address of the object containing the requested payload range
- Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
- // Requested payload range
- Range *Range `protobuf:"bytes,2,opt,name=range,proto3" json:"range,omitempty"`
- // If `raw` flag is set, request will work only with objects that are
- // physically stored on the peer node.
- Raw bool `protobuf:"varint,3,opt,name=raw,proto3" json:"raw,omitempty"`
-}
-
-func (x *GetRangeRequest_Body) Reset() {
- *x = GetRangeRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[33]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRangeRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRangeRequest_Body) ProtoMessage() {}
-
-func (x *GetRangeRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[33]
- 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 GetRangeRequest_Body.ProtoReflect.Descriptor instead.
-func (*GetRangeRequest_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{12, 0}
-}
-
-func (x *GetRangeRequest_Body) GetAddress() *grpc1.Address {
- if x != nil {
- return x.Address
- }
- return nil
-}
-
-func (x *GetRangeRequest_Body) GetRange() *Range {
- if x != nil {
- return x.Range
- }
- return nil
-}
-
-func (x *GetRangeRequest_Body) GetRaw() bool {
- if x != nil {
- return x.Raw
- }
- return false
-}
-
-// Get Range response body uses streams to transfer the response. Because
-// object payload considered a byte sequence, there is no need to have some
-// initial preamble message. The requested byte range is sent as a series
-// chunks.
-type GetRangeResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Requested object range or meta information about split object.
- //
- // Types that are assignable to RangePart:
- //
- // *GetRangeResponse_Body_Chunk
- // *GetRangeResponse_Body_SplitInfo
- // *GetRangeResponse_Body_EcInfo
- RangePart isGetRangeResponse_Body_RangePart `protobuf_oneof:"range_part"`
-}
-
-func (x *GetRangeResponse_Body) Reset() {
- *x = GetRangeResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[34]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRangeResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRangeResponse_Body) ProtoMessage() {}
-
-func (x *GetRangeResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[34]
- 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 GetRangeResponse_Body.ProtoReflect.Descriptor instead.
-func (*GetRangeResponse_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{13, 0}
-}
-
-func (m *GetRangeResponse_Body) GetRangePart() isGetRangeResponse_Body_RangePart {
- if m != nil {
- return m.RangePart
- }
- return nil
-}
-
-func (x *GetRangeResponse_Body) GetChunk() []byte {
- if x, ok := x.GetRangePart().(*GetRangeResponse_Body_Chunk); ok {
- return x.Chunk
- }
- return nil
-}
-
-func (x *GetRangeResponse_Body) GetSplitInfo() *SplitInfo {
- if x, ok := x.GetRangePart().(*GetRangeResponse_Body_SplitInfo); ok {
- return x.SplitInfo
- }
- return nil
-}
-
-func (x *GetRangeResponse_Body) GetEcInfo() *ECInfo {
- if x, ok := x.GetRangePart().(*GetRangeResponse_Body_EcInfo); ok {
- return x.EcInfo
- }
- return nil
-}
-
-type isGetRangeResponse_Body_RangePart interface {
- isGetRangeResponse_Body_RangePart()
-}
-
-type GetRangeResponse_Body_Chunk struct {
- // Chunked object payload's range.
- Chunk []byte `protobuf:"bytes,1,opt,name=chunk,proto3,oneof"`
-}
-
-type GetRangeResponse_Body_SplitInfo struct {
- // Meta information of split hierarchy.
- SplitInfo *SplitInfo `protobuf:"bytes,2,opt,name=split_info,json=splitInfo,proto3,oneof"`
-}
-
-type GetRangeResponse_Body_EcInfo struct {
- // Meta information for EC object assembly.
- EcInfo *ECInfo `protobuf:"bytes,3,opt,name=ec_info,json=ecInfo,proto3,oneof"`
-}
-
-func (*GetRangeResponse_Body_Chunk) isGetRangeResponse_Body_RangePart() {}
-
-func (*GetRangeResponse_Body_SplitInfo) isGetRangeResponse_Body_RangePart() {}
-
-func (*GetRangeResponse_Body_EcInfo) isGetRangeResponse_Body_RangePart() {}
-
-// Get hash of object's payload part request body.
-type GetRangeHashRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Address of the object that containing the requested payload range
- Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
- // List of object's payload ranges to calculate homomorphic hash
- Ranges []*Range `protobuf:"bytes,2,rep,name=ranges,proto3" json:"ranges,omitempty"`
- // Binary salt to XOR object's payload ranges before hash calculation
- Salt []byte `protobuf:"bytes,3,opt,name=salt,proto3" json:"salt,omitempty"`
- // Checksum algorithm type
- Type grpc1.ChecksumType `protobuf:"varint,4,opt,name=type,proto3,enum=neo.fs.v2.refs.ChecksumType" json:"type,omitempty"`
-}
-
-func (x *GetRangeHashRequest_Body) Reset() {
- *x = GetRangeHashRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[35]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRangeHashRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRangeHashRequest_Body) ProtoMessage() {}
-
-func (x *GetRangeHashRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[35]
- 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 GetRangeHashRequest_Body.ProtoReflect.Descriptor instead.
-func (*GetRangeHashRequest_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{14, 0}
-}
-
-func (x *GetRangeHashRequest_Body) GetAddress() *grpc1.Address {
- if x != nil {
- return x.Address
- }
- return nil
-}
-
-func (x *GetRangeHashRequest_Body) GetRanges() []*Range {
- if x != nil {
- return x.Ranges
- }
- return nil
-}
-
-func (x *GetRangeHashRequest_Body) GetSalt() []byte {
- if x != nil {
- return x.Salt
- }
- return nil
-}
-
-func (x *GetRangeHashRequest_Body) GetType() grpc1.ChecksumType {
- if x != nil {
- return x.Type
- }
- return grpc1.ChecksumType(0)
-}
-
-// Get hash of object's payload part response body.
-type GetRangeHashResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Checksum algorithm type
- Type grpc1.ChecksumType `protobuf:"varint,1,opt,name=type,proto3,enum=neo.fs.v2.refs.ChecksumType" json:"type,omitempty"`
- // List of range hashes in a binary format
- HashList [][]byte `protobuf:"bytes,2,rep,name=hash_list,json=hashList,proto3" json:"hash_list,omitempty"`
-}
-
-func (x *GetRangeHashResponse_Body) Reset() {
- *x = GetRangeHashResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[36]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *GetRangeHashResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*GetRangeHashResponse_Body) ProtoMessage() {}
-
-func (x *GetRangeHashResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[36]
- 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 GetRangeHashResponse_Body.ProtoReflect.Descriptor instead.
-func (*GetRangeHashResponse_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{15, 0}
-}
-
-func (x *GetRangeHashResponse_Body) GetType() grpc1.ChecksumType {
- if x != nil {
- return x.Type
- }
- return grpc1.ChecksumType(0)
-}
-
-func (x *GetRangeHashResponse_Body) GetHashList() [][]byte {
- if x != nil {
- return x.HashList
- }
- return nil
-}
-
-// PUT Single request body
-type PutSingleRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Prepared object with payload.
- Object *Object `protobuf:"bytes,1,opt,name=object,proto3" json:"object,omitempty"`
- // Number of copies of the object to store within the RPC call. By default,
- // object is processed according to the container's placement policy.
- // Every number is treated as a minimal number of
- // nodes in a corresponding placement vector that must store an object
- // to complete the request successfully. The length MUST equal the placement
- // vectors number, otherwise request is considered malformed.
- CopiesNumber []uint32 `protobuf:"varint,2,rep,packed,name=copies_number,json=copiesNumber,proto3" json:"copies_number,omitempty"`
-}
-
-func (x *PutSingleRequest_Body) Reset() {
- *x = PutSingleRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[37]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutSingleRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutSingleRequest_Body) ProtoMessage() {}
-
-func (x *PutSingleRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[37]
- 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 PutSingleRequest_Body.ProtoReflect.Descriptor instead.
-func (*PutSingleRequest_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{16, 0}
-}
-
-func (x *PutSingleRequest_Body) GetObject() *Object {
- if x != nil {
- return x.Object
- }
- return nil
-}
-
-func (x *PutSingleRequest_Body) GetCopiesNumber() []uint32 {
- if x != nil {
- return x.CopiesNumber
- }
- return nil
-}
-
-// PUT Single Object response body
-type PutSingleResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-}
-
-func (x *PutSingleResponse_Body) Reset() {
- *x = PutSingleResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[38]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutSingleResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutSingleResponse_Body) ProtoMessage() {}
-
-func (x *PutSingleResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[38]
- 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 PutSingleResponse_Body.ProtoReflect.Descriptor instead.
-func (*PutSingleResponse_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{17, 0}
-}
-
-// PATCH request body
-type PatchRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The address of the object that is requested to get patched.
- Address *grpc1.Address `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
- // New attributes for the object. See `replace_attributes` flag usage to define how
- // new attributes should be set.
- NewAttributes []*Header_Attribute `protobuf:"bytes,2,rep,name=new_attributes,json=newAttributes,proto3" json:"new_attributes,omitempty"`
- // If this flag is set, then the object's attributes will be entirely replaced by `new_attributes` list.
- // The empty `new_attributes` list with `replace_attributes = true` just resets attributes list for the object.
- //
- // Default `false` value for this flag means the attributes will be just merged. If the incoming `new_attributes`
- // list contains already existing key, then it just replaces it while merging the lists.
- ReplaceAttributes bool `protobuf:"varint,3,opt,name=replace_attributes,json=replaceAttributes,proto3" json:"replace_attributes,omitempty"`
- // The patch that is applied for the object.
- Patch *PatchRequest_Body_Patch `protobuf:"bytes,4,opt,name=patch,proto3" json:"patch,omitempty"`
-}
-
-func (x *PatchRequest_Body) Reset() {
- *x = PatchRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[39]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PatchRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PatchRequest_Body) ProtoMessage() {}
-
-func (x *PatchRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[39]
- 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 PatchRequest_Body.ProtoReflect.Descriptor instead.
-func (*PatchRequest_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{18, 0}
-}
-
-func (x *PatchRequest_Body) GetAddress() *grpc1.Address {
- if x != nil {
- return x.Address
- }
- return nil
-}
-
-func (x *PatchRequest_Body) GetNewAttributes() []*Header_Attribute {
- if x != nil {
- return x.NewAttributes
- }
- return nil
-}
-
-func (x *PatchRequest_Body) GetReplaceAttributes() bool {
- if x != nil {
- return x.ReplaceAttributes
- }
- return false
-}
-
-func (x *PatchRequest_Body) GetPatch() *PatchRequest_Body_Patch {
- if x != nil {
- return x.Patch
- }
- return nil
-}
-
-// The patch for the object's payload.
-type PatchRequest_Body_Patch struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The range of the source object for which the payload is replaced by the patch's chunk.
- // If the range's `length = 0`, then the patch's chunk is just appended to the original payload
- // starting from the `offest` without any replace.
- SourceRange *Range `protobuf:"bytes,1,opt,name=source_range,json=sourceRange,proto3" json:"source_range,omitempty"`
- // The chunk that is being appended to or that replaces the original payload on the given range.
- Chunk []byte `protobuf:"bytes,2,opt,name=chunk,proto3" json:"chunk,omitempty"`
-}
-
-func (x *PatchRequest_Body_Patch) Reset() {
- *x = PatchRequest_Body_Patch{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[40]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PatchRequest_Body_Patch) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PatchRequest_Body_Patch) ProtoMessage() {}
-
-func (x *PatchRequest_Body_Patch) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[40]
- 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 PatchRequest_Body_Patch.ProtoReflect.Descriptor instead.
-func (*PatchRequest_Body_Patch) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{18, 0, 0}
-}
-
-func (x *PatchRequest_Body_Patch) GetSourceRange() *Range {
- if x != nil {
- return x.SourceRange
- }
- return nil
-}
-
-func (x *PatchRequest_Body_Patch) GetChunk() []byte {
- if x != nil {
- return x.Chunk
- }
- return nil
-}
-
-// PATCH response body
-type PatchResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The object ID of the saved patched object.
- ObjectId *grpc1.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectId,proto3" json:"object_id,omitempty"`
-}
-
-func (x *PatchResponse_Body) Reset() {
- *x = PatchResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_service_proto_msgTypes[41]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PatchResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PatchResponse_Body) ProtoMessage() {}
-
-func (x *PatchResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_service_proto_msgTypes[41]
- 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 PatchResponse_Body.ProtoReflect.Descriptor instead.
-func (*PatchResponse_Body) Descriptor() ([]byte, []int) {
- return file_object_grpc_service_proto_rawDescGZIP(), []int{19, 0}
-}
-
-func (x *PatchResponse_Body) GetObjectId() *grpc1.ObjectID {
- if x != nil {
- return x.ObjectId
- }
- return nil
-}
-
-var File_object_grpc_service_proto protoreflect.FileDescriptor
-
-var file_object_grpc_service_proto_rawDesc = []byte{
- 0x0a, 0x19, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x65,
- 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x17, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70,
- 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x73,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaa, 0x02, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a,
- 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65,
- 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x4b, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12,
- 0x31, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
- 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
- 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x03, 0x72, 0x61, 0x77, 0x22, 0xee, 0x04, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b,
- 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65,
- 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69,
- 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x8a, 0x03, 0x0a, 0x04, 0x42, 0x6f, 0x64,
- 0x79, 0x12, 0x3d, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42,
- 0x6f, 0x64, 0x79, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74,
- 0x12, 0x16, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48,
- 0x00, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x3c, 0x0a, 0x0a, 0x73, 0x70, 0x6c, 0x69,
- 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
- 0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6c,
- 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x07, 0x65, 0x63, 0x5f, 0x69, 0x6e, 0x66,
- 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x43, 0x49, 0x6e, 0x66,
- 0x6f, 0x48, 0x00, 0x52, 0x06, 0x65, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0xa8, 0x01, 0x0a, 0x04,
- 0x49, 0x6e, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69,
- 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49,
- 0x44, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x73,
- 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
- 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61,
- 0x74, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
- 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x5f, 0x70, 0x61, 0x72, 0x74, 0x22, 0x9b, 0x04, 0x0a, 0x0a, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d,
- 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0xbb, 0x02, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x3c,
- 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
- 0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e,
- 0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x05,
- 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x63,
- 0x68, 0x75, 0x6e, 0x6b, 0x1a, 0xcd, 0x01, 0x0a, 0x04, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x35, 0x0a,
- 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
- 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
- 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a,
- 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
- 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
- 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x4e, 0x75,
- 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x70,
- 0x61, 0x72, 0x74, 0x22, 0xa0, 0x02, 0x0a, 0x0b, 0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d,
- 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x3d, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12,
- 0x35, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72,
- 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x9e, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f,
- 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d,
- 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72,
- 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69,
- 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c,
- 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x39, 0x0a, 0x04,
- 0x42, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07,
- 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa6, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65,
- 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f,
- 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65,
- 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52,
- 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a,
- 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x1a, 0x3d, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x74, 0x6f, 0x6d,
- 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64,
- 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65,
- 0x22, 0xc9, 0x02, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f,
- 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61,
- 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
- 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x1a, 0x68, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x61, 0x64,
- 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64, 0x64,
- 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a,
- 0x09, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x08, 0x6d, 0x61, 0x69, 0x6e, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61,
- 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x72, 0x61, 0x77, 0x22, 0x80, 0x01, 0x0a,
- 0x13, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61,
- 0x74, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
- 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
- 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61,
- 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22,
- 0xec, 0x03, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42,
- 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74,
- 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x86, 0x02, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x3f,
- 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e,
- 0x61, 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
- 0x42, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0a, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x66,
- 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74,
- 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66,
- 0x6f, 0x12, 0x33, 0x0a, 0x07, 0x65, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x43, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06,
- 0x65, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x06, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x22, 0xfb,
- 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
- 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65,
- 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
- 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x1a, 0x95, 0x02, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x3e, 0x0a,
- 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44,
- 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a,
- 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
- 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65,
- 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72,
- 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x46,
- 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x6c,
- 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63,
- 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
- 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68,
- 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa2, 0x02, 0x0a,
- 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
- 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65,
- 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
- 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x39, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x31,
- 0x0a, 0x07, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73,
- 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x06, 0x69, 0x64, 0x4c, 0x69, 0x73,
- 0x74, 0x22, 0x37, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66,
- 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73,
- 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe3, 0x02, 0x0a, 0x0f, 0x47,
- 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a,
- 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
- 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
- 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65,
- 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
- 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x1a, 0x7a, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07,
- 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41,
- 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
- 0x2d, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10,
- 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x72, 0x61, 0x77,
- 0x22, 0x8d, 0x03, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f,
- 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a,
- 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65,
- 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65,
- 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x9f,
- 0x01, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x12,
- 0x3c, 0x0a, 0x0a, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f,
- 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a,
- 0x07, 0x65, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2e, 0x45, 0x43, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06, 0x65, 0x63, 0x49, 0x6e,
- 0x66, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74,
- 0x22, 0xa2, 0x03, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73,
- 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e,
- 0x67, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f,
- 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61,
- 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
- 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x1a, 0xb0, 0x01, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x61,
- 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64,
- 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2f,
- 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12,
- 0x12, 0x0a, 0x04, 0x73, 0x61, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73,
- 0x61, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x0e, 0x32, 0x1c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
- 0x66, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52,
- 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xca, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e,
- 0x67, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f,
- 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
- 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12,
- 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74,
- 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66,
- 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76,
- 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x55, 0x0a, 0x04, 0x42,
- 0x6f, 0x64, 0x79, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0e, 0x32, 0x1c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
- 0x66, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52,
- 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x6c, 0x69,
- 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x4c, 0x69,
- 0x73, 0x74, 0x22, 0xc8, 0x02, 0x0a, 0x10, 0x50, 0x75, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x53, 0x69, 0x6e, 0x67,
- 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04,
- 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
- 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76,
- 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65,
- 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x5d,
- 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x30, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x70, 0x69,
- 0x65, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52,
- 0x0c, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf5, 0x01,
- 0x0a, 0x11, 0x50, 0x75, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x28, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64,
- 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d,
- 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72,
- 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72,
- 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
- 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x06, 0x0a,
- 0x04, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xb3, 0x04, 0x0a, 0x0c, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12,
- 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
- 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72,
- 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0xcf, 0x02, 0x0a, 0x04, 0x42, 0x6f,
- 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64,
- 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x74, 0x74,
- 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
- 0x65, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
- 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72,
- 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65,
- 0x70, 0x6c, 0x61, 0x63, 0x65, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12,
- 0x3f, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42,
- 0x6f, 0x64, 0x79, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68,
- 0x1a, 0x59, 0x0a, 0x05, 0x50, 0x61, 0x74, 0x63, 0x68, 0x12, 0x3a, 0x0a, 0x0c, 0x73, 0x6f, 0x75,
- 0x72, 0x63, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0xa4, 0x02, 0x0a, 0x0d,
- 0x50, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a,
- 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50,
- 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64,
- 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f,
- 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
- 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x1a, 0x3d, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
- 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x49, 0x64, 0x32, 0xd4, 0x05, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x72,
- 0x76, 0x69, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x1c, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47,
- 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x44, 0x0a, 0x03, 0x50, 0x75,
- 0x74, 0x12, 0x1c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x1d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01,
- 0x12, 0x4b, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1f, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x65,
- 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44,
- 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a,
- 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x1f,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12,
- 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52,
- 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52,
- 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x50, 0x75, 0x74, 0x53, 0x69,
- 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c,
- 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x53,
- 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a,
- 0x05, 0x50, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x28, 0x01, 0x42, 0x61, 0x5a, 0x42, 0x67, 0x69, 0x74,
- 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72,
- 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74,
- 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x6f, 0x62, 0x6a,
- 0x65, 0x63, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0xaa,
- 0x02, 0x1a, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
- 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x62, 0x06, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_object_grpc_service_proto_rawDescOnce sync.Once
- file_object_grpc_service_proto_rawDescData = file_object_grpc_service_proto_rawDesc
-)
-
-func file_object_grpc_service_proto_rawDescGZIP() []byte {
- file_object_grpc_service_proto_rawDescOnce.Do(func() {
- file_object_grpc_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_object_grpc_service_proto_rawDescData)
- })
- return file_object_grpc_service_proto_rawDescData
-}
-
-var file_object_grpc_service_proto_msgTypes = make([]protoimpl.MessageInfo, 42)
-var file_object_grpc_service_proto_goTypes = []interface{}{
- (*GetRequest)(nil), // 0: neo.fs.v2.object.GetRequest
- (*GetResponse)(nil), // 1: neo.fs.v2.object.GetResponse
- (*PutRequest)(nil), // 2: neo.fs.v2.object.PutRequest
- (*PutResponse)(nil), // 3: neo.fs.v2.object.PutResponse
- (*DeleteRequest)(nil), // 4: neo.fs.v2.object.DeleteRequest
- (*DeleteResponse)(nil), // 5: neo.fs.v2.object.DeleteResponse
- (*HeadRequest)(nil), // 6: neo.fs.v2.object.HeadRequest
- (*HeaderWithSignature)(nil), // 7: neo.fs.v2.object.HeaderWithSignature
- (*HeadResponse)(nil), // 8: neo.fs.v2.object.HeadResponse
- (*SearchRequest)(nil), // 9: neo.fs.v2.object.SearchRequest
- (*SearchResponse)(nil), // 10: neo.fs.v2.object.SearchResponse
- (*Range)(nil), // 11: neo.fs.v2.object.Range
- (*GetRangeRequest)(nil), // 12: neo.fs.v2.object.GetRangeRequest
- (*GetRangeResponse)(nil), // 13: neo.fs.v2.object.GetRangeResponse
- (*GetRangeHashRequest)(nil), // 14: neo.fs.v2.object.GetRangeHashRequest
- (*GetRangeHashResponse)(nil), // 15: neo.fs.v2.object.GetRangeHashResponse
- (*PutSingleRequest)(nil), // 16: neo.fs.v2.object.PutSingleRequest
- (*PutSingleResponse)(nil), // 17: neo.fs.v2.object.PutSingleResponse
- (*PatchRequest)(nil), // 18: neo.fs.v2.object.PatchRequest
- (*PatchResponse)(nil), // 19: neo.fs.v2.object.PatchResponse
- (*GetRequest_Body)(nil), // 20: neo.fs.v2.object.GetRequest.Body
- (*GetResponse_Body)(nil), // 21: neo.fs.v2.object.GetResponse.Body
- (*GetResponse_Body_Init)(nil), // 22: neo.fs.v2.object.GetResponse.Body.Init
- (*PutRequest_Body)(nil), // 23: neo.fs.v2.object.PutRequest.Body
- (*PutRequest_Body_Init)(nil), // 24: neo.fs.v2.object.PutRequest.Body.Init
- (*PutResponse_Body)(nil), // 25: neo.fs.v2.object.PutResponse.Body
- (*DeleteRequest_Body)(nil), // 26: neo.fs.v2.object.DeleteRequest.Body
- (*DeleteResponse_Body)(nil), // 27: neo.fs.v2.object.DeleteResponse.Body
- (*HeadRequest_Body)(nil), // 28: neo.fs.v2.object.HeadRequest.Body
- (*HeadResponse_Body)(nil), // 29: neo.fs.v2.object.HeadResponse.Body
- (*SearchRequest_Body)(nil), // 30: neo.fs.v2.object.SearchRequest.Body
- (*SearchRequest_Body_Filter)(nil), // 31: neo.fs.v2.object.SearchRequest.Body.Filter
- (*SearchResponse_Body)(nil), // 32: neo.fs.v2.object.SearchResponse.Body
- (*GetRangeRequest_Body)(nil), // 33: neo.fs.v2.object.GetRangeRequest.Body
- (*GetRangeResponse_Body)(nil), // 34: neo.fs.v2.object.GetRangeResponse.Body
- (*GetRangeHashRequest_Body)(nil), // 35: neo.fs.v2.object.GetRangeHashRequest.Body
- (*GetRangeHashResponse_Body)(nil), // 36: neo.fs.v2.object.GetRangeHashResponse.Body
- (*PutSingleRequest_Body)(nil), // 37: neo.fs.v2.object.PutSingleRequest.Body
- (*PutSingleResponse_Body)(nil), // 38: neo.fs.v2.object.PutSingleResponse.Body
- (*PatchRequest_Body)(nil), // 39: neo.fs.v2.object.PatchRequest.Body
- (*PatchRequest_Body_Patch)(nil), // 40: neo.fs.v2.object.PatchRequest.Body.Patch
- (*PatchResponse_Body)(nil), // 41: neo.fs.v2.object.PatchResponse.Body
- (*grpc.RequestMetaHeader)(nil), // 42: neo.fs.v2.session.RequestMetaHeader
- (*grpc.RequestVerificationHeader)(nil), // 43: neo.fs.v2.session.RequestVerificationHeader
- (*grpc.ResponseMetaHeader)(nil), // 44: neo.fs.v2.session.ResponseMetaHeader
- (*grpc.ResponseVerificationHeader)(nil), // 45: neo.fs.v2.session.ResponseVerificationHeader
- (*Header)(nil), // 46: neo.fs.v2.object.Header
- (*grpc1.Signature)(nil), // 47: neo.fs.v2.refs.Signature
- (*grpc1.Address)(nil), // 48: neo.fs.v2.refs.Address
- (*SplitInfo)(nil), // 49: neo.fs.v2.object.SplitInfo
- (*ECInfo)(nil), // 50: neo.fs.v2.object.ECInfo
- (*grpc1.ObjectID)(nil), // 51: neo.fs.v2.refs.ObjectID
- (*ShortHeader)(nil), // 52: neo.fs.v2.object.ShortHeader
- (*grpc1.ContainerID)(nil), // 53: neo.fs.v2.refs.ContainerID
- (MatchType)(0), // 54: neo.fs.v2.object.MatchType
- (grpc1.ChecksumType)(0), // 55: neo.fs.v2.refs.ChecksumType
- (*Object)(nil), // 56: neo.fs.v2.object.Object
- (*Header_Attribute)(nil), // 57: neo.fs.v2.object.Header.Attribute
-}
-var file_object_grpc_service_proto_depIdxs = []int32{
- 20, // 0: neo.fs.v2.object.GetRequest.body:type_name -> neo.fs.v2.object.GetRequest.Body
- 42, // 1: neo.fs.v2.object.GetRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 43, // 2: neo.fs.v2.object.GetRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 21, // 3: neo.fs.v2.object.GetResponse.body:type_name -> neo.fs.v2.object.GetResponse.Body
- 44, // 4: neo.fs.v2.object.GetResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 45, // 5: neo.fs.v2.object.GetResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 23, // 6: neo.fs.v2.object.PutRequest.body:type_name -> neo.fs.v2.object.PutRequest.Body
- 42, // 7: neo.fs.v2.object.PutRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 43, // 8: neo.fs.v2.object.PutRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 25, // 9: neo.fs.v2.object.PutResponse.body:type_name -> neo.fs.v2.object.PutResponse.Body
- 44, // 10: neo.fs.v2.object.PutResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 45, // 11: neo.fs.v2.object.PutResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 26, // 12: neo.fs.v2.object.DeleteRequest.body:type_name -> neo.fs.v2.object.DeleteRequest.Body
- 42, // 13: neo.fs.v2.object.DeleteRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 43, // 14: neo.fs.v2.object.DeleteRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 27, // 15: neo.fs.v2.object.DeleteResponse.body:type_name -> neo.fs.v2.object.DeleteResponse.Body
- 44, // 16: neo.fs.v2.object.DeleteResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 45, // 17: neo.fs.v2.object.DeleteResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 28, // 18: neo.fs.v2.object.HeadRequest.body:type_name -> neo.fs.v2.object.HeadRequest.Body
- 42, // 19: neo.fs.v2.object.HeadRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 43, // 20: neo.fs.v2.object.HeadRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 46, // 21: neo.fs.v2.object.HeaderWithSignature.header:type_name -> neo.fs.v2.object.Header
- 47, // 22: neo.fs.v2.object.HeaderWithSignature.signature:type_name -> neo.fs.v2.refs.Signature
- 29, // 23: neo.fs.v2.object.HeadResponse.body:type_name -> neo.fs.v2.object.HeadResponse.Body
- 44, // 24: neo.fs.v2.object.HeadResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 45, // 25: neo.fs.v2.object.HeadResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 30, // 26: neo.fs.v2.object.SearchRequest.body:type_name -> neo.fs.v2.object.SearchRequest.Body
- 42, // 27: neo.fs.v2.object.SearchRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 43, // 28: neo.fs.v2.object.SearchRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 32, // 29: neo.fs.v2.object.SearchResponse.body:type_name -> neo.fs.v2.object.SearchResponse.Body
- 44, // 30: neo.fs.v2.object.SearchResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 45, // 31: neo.fs.v2.object.SearchResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 33, // 32: neo.fs.v2.object.GetRangeRequest.body:type_name -> neo.fs.v2.object.GetRangeRequest.Body
- 42, // 33: neo.fs.v2.object.GetRangeRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 43, // 34: neo.fs.v2.object.GetRangeRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 34, // 35: neo.fs.v2.object.GetRangeResponse.body:type_name -> neo.fs.v2.object.GetRangeResponse.Body
- 44, // 36: neo.fs.v2.object.GetRangeResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 45, // 37: neo.fs.v2.object.GetRangeResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 35, // 38: neo.fs.v2.object.GetRangeHashRequest.body:type_name -> neo.fs.v2.object.GetRangeHashRequest.Body
- 42, // 39: neo.fs.v2.object.GetRangeHashRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 43, // 40: neo.fs.v2.object.GetRangeHashRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 36, // 41: neo.fs.v2.object.GetRangeHashResponse.body:type_name -> neo.fs.v2.object.GetRangeHashResponse.Body
- 44, // 42: neo.fs.v2.object.GetRangeHashResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 45, // 43: neo.fs.v2.object.GetRangeHashResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 37, // 44: neo.fs.v2.object.PutSingleRequest.body:type_name -> neo.fs.v2.object.PutSingleRequest.Body
- 42, // 45: neo.fs.v2.object.PutSingleRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 43, // 46: neo.fs.v2.object.PutSingleRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 38, // 47: neo.fs.v2.object.PutSingleResponse.body:type_name -> neo.fs.v2.object.PutSingleResponse.Body
- 44, // 48: neo.fs.v2.object.PutSingleResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 45, // 49: neo.fs.v2.object.PutSingleResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 39, // 50: neo.fs.v2.object.PatchRequest.body:type_name -> neo.fs.v2.object.PatchRequest.Body
- 42, // 51: neo.fs.v2.object.PatchRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 43, // 52: neo.fs.v2.object.PatchRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 41, // 53: neo.fs.v2.object.PatchResponse.body:type_name -> neo.fs.v2.object.PatchResponse.Body
- 44, // 54: neo.fs.v2.object.PatchResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 45, // 55: neo.fs.v2.object.PatchResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 48, // 56: neo.fs.v2.object.GetRequest.Body.address:type_name -> neo.fs.v2.refs.Address
- 22, // 57: neo.fs.v2.object.GetResponse.Body.init:type_name -> neo.fs.v2.object.GetResponse.Body.Init
- 49, // 58: neo.fs.v2.object.GetResponse.Body.split_info:type_name -> neo.fs.v2.object.SplitInfo
- 50, // 59: neo.fs.v2.object.GetResponse.Body.ec_info:type_name -> neo.fs.v2.object.ECInfo
- 51, // 60: neo.fs.v2.object.GetResponse.Body.Init.object_id:type_name -> neo.fs.v2.refs.ObjectID
- 47, // 61: neo.fs.v2.object.GetResponse.Body.Init.signature:type_name -> neo.fs.v2.refs.Signature
- 46, // 62: neo.fs.v2.object.GetResponse.Body.Init.header:type_name -> neo.fs.v2.object.Header
- 24, // 63: neo.fs.v2.object.PutRequest.Body.init:type_name -> neo.fs.v2.object.PutRequest.Body.Init
- 51, // 64: neo.fs.v2.object.PutRequest.Body.Init.object_id:type_name -> neo.fs.v2.refs.ObjectID
- 47, // 65: neo.fs.v2.object.PutRequest.Body.Init.signature:type_name -> neo.fs.v2.refs.Signature
- 46, // 66: neo.fs.v2.object.PutRequest.Body.Init.header:type_name -> neo.fs.v2.object.Header
- 51, // 67: neo.fs.v2.object.PutResponse.Body.object_id:type_name -> neo.fs.v2.refs.ObjectID
- 48, // 68: neo.fs.v2.object.DeleteRequest.Body.address:type_name -> neo.fs.v2.refs.Address
- 48, // 69: neo.fs.v2.object.DeleteResponse.Body.tombstone:type_name -> neo.fs.v2.refs.Address
- 48, // 70: neo.fs.v2.object.HeadRequest.Body.address:type_name -> neo.fs.v2.refs.Address
- 7, // 71: neo.fs.v2.object.HeadResponse.Body.header:type_name -> neo.fs.v2.object.HeaderWithSignature
- 52, // 72: neo.fs.v2.object.HeadResponse.Body.short_header:type_name -> neo.fs.v2.object.ShortHeader
- 49, // 73: neo.fs.v2.object.HeadResponse.Body.split_info:type_name -> neo.fs.v2.object.SplitInfo
- 50, // 74: neo.fs.v2.object.HeadResponse.Body.ec_info:type_name -> neo.fs.v2.object.ECInfo
- 53, // 75: neo.fs.v2.object.SearchRequest.Body.container_id:type_name -> neo.fs.v2.refs.ContainerID
- 31, // 76: neo.fs.v2.object.SearchRequest.Body.filters:type_name -> neo.fs.v2.object.SearchRequest.Body.Filter
- 54, // 77: neo.fs.v2.object.SearchRequest.Body.Filter.match_type:type_name -> neo.fs.v2.object.MatchType
- 51, // 78: neo.fs.v2.object.SearchResponse.Body.id_list:type_name -> neo.fs.v2.refs.ObjectID
- 48, // 79: neo.fs.v2.object.GetRangeRequest.Body.address:type_name -> neo.fs.v2.refs.Address
- 11, // 80: neo.fs.v2.object.GetRangeRequest.Body.range:type_name -> neo.fs.v2.object.Range
- 49, // 81: neo.fs.v2.object.GetRangeResponse.Body.split_info:type_name -> neo.fs.v2.object.SplitInfo
- 50, // 82: neo.fs.v2.object.GetRangeResponse.Body.ec_info:type_name -> neo.fs.v2.object.ECInfo
- 48, // 83: neo.fs.v2.object.GetRangeHashRequest.Body.address:type_name -> neo.fs.v2.refs.Address
- 11, // 84: neo.fs.v2.object.GetRangeHashRequest.Body.ranges:type_name -> neo.fs.v2.object.Range
- 55, // 85: neo.fs.v2.object.GetRangeHashRequest.Body.type:type_name -> neo.fs.v2.refs.ChecksumType
- 55, // 86: neo.fs.v2.object.GetRangeHashResponse.Body.type:type_name -> neo.fs.v2.refs.ChecksumType
- 56, // 87: neo.fs.v2.object.PutSingleRequest.Body.object:type_name -> neo.fs.v2.object.Object
- 48, // 88: neo.fs.v2.object.PatchRequest.Body.address:type_name -> neo.fs.v2.refs.Address
- 57, // 89: neo.fs.v2.object.PatchRequest.Body.new_attributes:type_name -> neo.fs.v2.object.Header.Attribute
- 40, // 90: neo.fs.v2.object.PatchRequest.Body.patch:type_name -> neo.fs.v2.object.PatchRequest.Body.Patch
- 11, // 91: neo.fs.v2.object.PatchRequest.Body.Patch.source_range:type_name -> neo.fs.v2.object.Range
- 51, // 92: neo.fs.v2.object.PatchResponse.Body.object_id:type_name -> neo.fs.v2.refs.ObjectID
- 0, // 93: neo.fs.v2.object.ObjectService.Get:input_type -> neo.fs.v2.object.GetRequest
- 2, // 94: neo.fs.v2.object.ObjectService.Put:input_type -> neo.fs.v2.object.PutRequest
- 4, // 95: neo.fs.v2.object.ObjectService.Delete:input_type -> neo.fs.v2.object.DeleteRequest
- 6, // 96: neo.fs.v2.object.ObjectService.Head:input_type -> neo.fs.v2.object.HeadRequest
- 9, // 97: neo.fs.v2.object.ObjectService.Search:input_type -> neo.fs.v2.object.SearchRequest
- 12, // 98: neo.fs.v2.object.ObjectService.GetRange:input_type -> neo.fs.v2.object.GetRangeRequest
- 14, // 99: neo.fs.v2.object.ObjectService.GetRangeHash:input_type -> neo.fs.v2.object.GetRangeHashRequest
- 16, // 100: neo.fs.v2.object.ObjectService.PutSingle:input_type -> neo.fs.v2.object.PutSingleRequest
- 18, // 101: neo.fs.v2.object.ObjectService.Patch:input_type -> neo.fs.v2.object.PatchRequest
- 1, // 102: neo.fs.v2.object.ObjectService.Get:output_type -> neo.fs.v2.object.GetResponse
- 3, // 103: neo.fs.v2.object.ObjectService.Put:output_type -> neo.fs.v2.object.PutResponse
- 5, // 104: neo.fs.v2.object.ObjectService.Delete:output_type -> neo.fs.v2.object.DeleteResponse
- 8, // 105: neo.fs.v2.object.ObjectService.Head:output_type -> neo.fs.v2.object.HeadResponse
- 10, // 106: neo.fs.v2.object.ObjectService.Search:output_type -> neo.fs.v2.object.SearchResponse
- 13, // 107: neo.fs.v2.object.ObjectService.GetRange:output_type -> neo.fs.v2.object.GetRangeResponse
- 15, // 108: neo.fs.v2.object.ObjectService.GetRangeHash:output_type -> neo.fs.v2.object.GetRangeHashResponse
- 17, // 109: neo.fs.v2.object.ObjectService.PutSingle:output_type -> neo.fs.v2.object.PutSingleResponse
- 19, // 110: neo.fs.v2.object.ObjectService.Patch:output_type -> neo.fs.v2.object.PatchResponse
- 102, // [102:111] is the sub-list for method output_type
- 93, // [93:102] is the sub-list for method input_type
- 93, // [93:93] is the sub-list for extension type_name
- 93, // [93:93] is the sub-list for extension extendee
- 0, // [0:93] is the sub-list for field type_name
-}
-
-func init() { file_object_grpc_service_proto_init() }
-func file_object_grpc_service_proto_init() {
- if File_object_grpc_service_proto != nil {
- return
- }
- file_object_grpc_types_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_object_grpc_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*HeadRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*HeaderWithSignature); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*HeadResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SearchRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SearchResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Range); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRangeRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRangeResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRangeHashRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRangeHashResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutSingleRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutSingleResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PatchRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PatchResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetResponse_Body_Init); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutRequest_Body_Init); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DeleteResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*HeadRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*HeadResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SearchRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SearchRequest_Body_Filter); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SearchResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRangeRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRangeResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRangeHashRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetRangeHashResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutSingleRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutSingleResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PatchRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PatchRequest_Body_Patch); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_service_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PatchResponse_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_object_grpc_service_proto_msgTypes[21].OneofWrappers = []interface{}{
- (*GetResponse_Body_Init_)(nil),
- (*GetResponse_Body_Chunk)(nil),
- (*GetResponse_Body_SplitInfo)(nil),
- (*GetResponse_Body_EcInfo)(nil),
- }
- file_object_grpc_service_proto_msgTypes[23].OneofWrappers = []interface{}{
- (*PutRequest_Body_Init_)(nil),
- (*PutRequest_Body_Chunk)(nil),
- }
- file_object_grpc_service_proto_msgTypes[29].OneofWrappers = []interface{}{
- (*HeadResponse_Body_Header)(nil),
- (*HeadResponse_Body_ShortHeader)(nil),
- (*HeadResponse_Body_SplitInfo)(nil),
- (*HeadResponse_Body_EcInfo)(nil),
- }
- file_object_grpc_service_proto_msgTypes[34].OneofWrappers = []interface{}{
- (*GetRangeResponse_Body_Chunk)(nil),
- (*GetRangeResponse_Body_SplitInfo)(nil),
- (*GetRangeResponse_Body_EcInfo)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_object_grpc_service_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 42,
- NumExtensions: 0,
- NumServices: 1,
- },
- GoTypes: file_object_grpc_service_proto_goTypes,
- DependencyIndexes: file_object_grpc_service_proto_depIdxs,
- MessageInfos: file_object_grpc_service_proto_msgTypes,
- }.Build()
- File_object_grpc_service_proto = out.File
- file_object_grpc_service_proto_rawDesc = nil
- file_object_grpc_service_proto_goTypes = nil
- file_object_grpc_service_proto_depIdxs = nil
-}
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
new file mode 100644
index 0000000..08b2860
--- /dev/null
+++ b/object/grpc/service_frostfs.pb.go
@@ -0,0 +1,8690 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package object
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
+)
+
+type GetRequest_Body struct {
+ Address *grpc.Address `json:"address"`
+ Raw bool `json:"raw"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRequest_Body)(nil)
+ _ json.Marshaler = (*GetRequest_Body)(nil)
+ _ json.Unmarshaler = (*GetRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Address)
+ size += proto.BoolSize(2, x.Raw)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Address != nil && x.Address.StableSize() != 0 {
+ x.Address.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Raw {
+ mm.AppendBool(2, x.Raw)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Address
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Address")
+ }
+ x.Address = new(grpc.Address)
+ if err := x.Address.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Raw
+ data, ok := fc.Bool()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Raw")
+ }
+ x.Raw = data
+ }
+ }
+ return nil
+}
+func (x *GetRequest_Body) GetAddress() *grpc.Address {
+ if x != nil {
+ return x.Address
+ }
+ return nil
+}
+func (x *GetRequest_Body) SetAddress(v *grpc.Address) {
+ x.Address = v
+}
+func (x *GetRequest_Body) GetRaw() bool {
+ if x != nil {
+ return x.Raw
+ }
+ return false
+}
+func (x *GetRequest_Body) SetRaw(v bool) {
+ x.Raw = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"address\":"
+ out.RawString(prefix[1:])
+ x.Address.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"raw\":"
+ out.RawString(prefix)
+ out.Bool(x.Raw)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "address":
+ {
+ var f *grpc.Address
+ f = new(grpc.Address)
+ f.UnmarshalEasyJSON(in)
+ x.Address = f
+ }
+ case "raw":
+ {
+ var f bool
+ f = in.Bool()
+ x.Raw = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRequest struct {
+ Body *GetRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRequest)(nil)
+ _ json.Marshaler = (*GetRequest)(nil)
+ _ json.Unmarshaler = (*GetRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetRequest) GetBody() *GetRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetRequest) SetBody(v *GetRequest_Body) {
+ x.Body = v
+}
+func (x *GetRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetRequest_Body
+ f = new(GetRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetResponse_Body_Init struct {
+ ObjectId *grpc.ObjectID `json:"objectId"`
+ Signature *grpc.Signature `json:"signature"`
+ Header *Header `json:"header"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetResponse_Body_Init)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetResponse_Body_Init)(nil)
+ _ json.Marshaler = (*GetResponse_Body_Init)(nil)
+ _ json.Unmarshaler = (*GetResponse_Body_Init)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetResponse_Body_Init) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ObjectId)
+ size += proto.NestedStructureSize(2, x.Signature)
+ size += proto.NestedStructureSize(3, x.Header)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetResponse_Body_Init) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetResponse_Body_Init) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.Header != nil && x.Header.StableSize() != 0 {
+ x.Header.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetResponse_Body_Init) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetResponse_Body_Init")
+ }
+ switch fc.FieldNum {
+ case 1: // ObjectId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ObjectId")
+ }
+ x.ObjectId = new(grpc.ObjectID)
+ if err := x.ObjectId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.Signature)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Header
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Header")
+ }
+ x.Header = new(Header)
+ if err := x.Header.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetResponse_Body_Init) GetObjectId() *grpc.ObjectID {
+ if x != nil {
+ return x.ObjectId
+ }
+ return nil
+}
+func (x *GetResponse_Body_Init) SetObjectId(v *grpc.ObjectID) {
+ x.ObjectId = v
+}
+func (x *GetResponse_Body_Init) GetSignature() *grpc.Signature {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *GetResponse_Body_Init) SetSignature(v *grpc.Signature) {
+ x.Signature = v
+}
+func (x *GetResponse_Body_Init) GetHeader() *Header {
+ if x != nil {
+ return x.Header
+ }
+ return nil
+}
+func (x *GetResponse_Body_Init) SetHeader(v *Header) {
+ x.Header = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetResponse_Body_Init) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetResponse_Body_Init) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"objectId\":"
+ out.RawString(prefix[1:])
+ x.ObjectId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetResponse_Body_Init) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetResponse_Body_Init) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "objectId":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.ObjectId = f
+ }
+ case "signature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ case "header":
+ {
+ var f *Header
+ f = new(Header)
+ f.UnmarshalEasyJSON(in)
+ x.Header = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetResponse_Body struct {
+ ObjectPart isGetResponse_Body_ObjectPart
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetResponse_Body)(nil)
+ _ json.Marshaler = (*GetResponse_Body)(nil)
+ _ json.Unmarshaler = (*GetResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ if inner, ok := x.ObjectPart.(*GetResponse_Body_Init_); ok {
+ size += proto.NestedStructureSize(1, inner.Init)
+ }
+ if inner, ok := x.ObjectPart.(*GetResponse_Body_Chunk); ok {
+ size += proto.BytesSize(2, inner.Chunk)
+ }
+ if inner, ok := x.ObjectPart.(*GetResponse_Body_SplitInfo); ok {
+ size += proto.NestedStructureSize(3, inner.SplitInfo)
+ }
+ if inner, ok := x.ObjectPart.(*GetResponse_Body_EcInfo); ok {
+ size += proto.NestedStructureSize(4, inner.EcInfo)
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if inner, ok := x.ObjectPart.(*GetResponse_Body_Init_); ok {
+ if inner.Init != nil && inner.Init.StableSize() != 0 {
+ inner.Init.EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+ if inner, ok := x.ObjectPart.(*GetResponse_Body_Chunk); ok {
+ if len(inner.Chunk) != 0 {
+ mm.AppendBytes(2, inner.Chunk)
+ }
+ }
+ if inner, ok := x.ObjectPart.(*GetResponse_Body_SplitInfo); ok {
+ if inner.SplitInfo != nil && inner.SplitInfo.StableSize() != 0 {
+ inner.SplitInfo.EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+ if inner, ok := x.ObjectPart.(*GetResponse_Body_EcInfo); ok {
+ if inner.EcInfo != nil && inner.EcInfo.StableSize() != 0 {
+ inner.EcInfo.EmitProtobuf(mm.AppendMessage(4))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Init
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Init")
+ }
+ oneofField := &GetResponse_Body_Init_{Init: new(GetResponse_Body_Init)}
+ if err := oneofField.Init.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.ObjectPart = oneofField
+ case 2: // Chunk
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Chunk")
+ }
+ x.ObjectPart = &GetResponse_Body_Chunk{Chunk: data}
+ case 3: // SplitInfo
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SplitInfo")
+ }
+ oneofField := &GetResponse_Body_SplitInfo{SplitInfo: new(SplitInfo)}
+ if err := oneofField.SplitInfo.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.ObjectPart = oneofField
+ case 4: // EcInfo
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "EcInfo")
+ }
+ oneofField := &GetResponse_Body_EcInfo{EcInfo: new(ECInfo)}
+ if err := oneofField.EcInfo.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.ObjectPart = oneofField
+ }
+ }
+ return nil
+}
+func (x *GetResponse_Body) GetObjectPart() isGetResponse_Body_ObjectPart {
+ if x != nil {
+ return x.ObjectPart
+ }
+ return nil
+}
+func (x *GetResponse_Body) SetObjectPart(v isGetResponse_Body_ObjectPart) {
+ x.ObjectPart = v
+}
+func (x *GetResponse_Body) GetInit() *GetResponse_Body_Init {
+ if xx, ok := x.GetObjectPart().(*GetResponse_Body_Init_); ok {
+ return xx.Init
+ }
+ return nil
+}
+func (x *GetResponse_Body) SetInit(v *GetResponse_Body_Init) {
+ x.ObjectPart = &GetResponse_Body_Init_{Init: v}
+}
+func (x *GetResponse_Body) GetChunk() *GetResponse_Body_Chunk {
+ if xx, ok := x.GetObjectPart().(*GetResponse_Body_Chunk); ok {
+ return xx
+ }
+ return nil
+}
+func (x *GetResponse_Body) SetChunk(v *GetResponse_Body_Chunk) {
+ x.ObjectPart = v
+}
+func (x *GetResponse_Body_Chunk) GetChunk() []byte {
+ if x != nil {
+ return x.Chunk
+ }
+ return nil
+}
+func (x *GetResponse_Body_Chunk) SetChunk(v []byte) {
+ x.Chunk = v
+}
+func (x *GetResponse_Body) GetSplitInfo() *SplitInfo {
+ if xx, ok := x.GetObjectPart().(*GetResponse_Body_SplitInfo); ok {
+ return xx.SplitInfo
+ }
+ return nil
+}
+func (x *GetResponse_Body) SetSplitInfo(v *SplitInfo) {
+ x.ObjectPart = &GetResponse_Body_SplitInfo{SplitInfo: v}
+}
+func (x *GetResponse_Body) GetEcInfo() *ECInfo {
+ if xx, ok := x.GetObjectPart().(*GetResponse_Body_EcInfo); ok {
+ return xx.EcInfo
+ }
+ return nil
+}
+func (x *GetResponse_Body) SetEcInfo(v *ECInfo) {
+ x.ObjectPart = &GetResponse_Body_EcInfo{EcInfo: v}
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ switch xx := x.ObjectPart.(type) {
+ case *GetResponse_Body_Init_:
+ {
+ const prefix string = ",\"init\":"
+ out.RawString(prefix[1:])
+ xx.Init.MarshalEasyJSON(out)
+ }
+ case *GetResponse_Body_Chunk:
+ {
+ const prefix string = ",\"chunk\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(xx.Chunk)
+ }
+ case *GetResponse_Body_SplitInfo:
+ {
+ const prefix string = ",\"splitInfo\":"
+ out.RawString(prefix[1:])
+ xx.SplitInfo.MarshalEasyJSON(out)
+ }
+ case *GetResponse_Body_EcInfo:
+ {
+ const prefix string = ",\"ecInfo\":"
+ out.RawString(prefix[1:])
+ xx.EcInfo.MarshalEasyJSON(out)
+ }
+ default:
+ out.RawString("null")
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "init":
+ xx := new(GetResponse_Body_Init_)
+ x.ObjectPart = xx
+ {
+ var f *GetResponse_Body_Init
+ f = new(GetResponse_Body_Init)
+ f.UnmarshalEasyJSON(in)
+ xx.Init = f
+ }
+ case "chunk":
+ xx := new(GetResponse_Body_Chunk)
+ x.ObjectPart = xx
+ {
+ var f []byte
+ f = in.Bytes()
+ xx.Chunk = f
+ }
+ case "splitInfo":
+ xx := new(GetResponse_Body_SplitInfo)
+ x.ObjectPart = xx
+ {
+ var f *SplitInfo
+ f = new(SplitInfo)
+ f.UnmarshalEasyJSON(in)
+ xx.SplitInfo = f
+ }
+ case "ecInfo":
+ xx := new(GetResponse_Body_EcInfo)
+ x.ObjectPart = xx
+ {
+ var f *ECInfo
+ f = new(ECInfo)
+ f.UnmarshalEasyJSON(in)
+ xx.EcInfo = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type isGetResponse_Body_ObjectPart interface {
+ isGetResponse_Body_ObjectPart()
+}
+
+type GetResponse_Body_Init_ struct {
+ Init *GetResponse_Body_Init
+}
+
+type GetResponse_Body_Chunk struct {
+ Chunk []byte
+}
+
+type GetResponse_Body_SplitInfo struct {
+ SplitInfo *SplitInfo
+}
+
+type GetResponse_Body_EcInfo struct {
+ EcInfo *ECInfo
+}
+
+func (*GetResponse_Body_Init_) isGetResponse_Body_ObjectPart() {}
+
+func (*GetResponse_Body_Chunk) isGetResponse_Body_ObjectPart() {}
+
+func (*GetResponse_Body_SplitInfo) isGetResponse_Body_ObjectPart() {}
+
+func (*GetResponse_Body_EcInfo) isGetResponse_Body_ObjectPart() {}
+
+type GetResponse struct {
+ Body *GetResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetResponse)(nil)
+ _ json.Marshaler = (*GetResponse)(nil)
+ _ json.Unmarshaler = (*GetResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetResponse) GetBody() *GetResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetResponse) SetBody(v *GetResponse_Body) {
+ x.Body = v
+}
+func (x *GetResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetResponse_Body
+ f = new(GetResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutRequest_Body_Init struct {
+ ObjectId *grpc.ObjectID `json:"objectId"`
+ Signature *grpc.Signature `json:"signature"`
+ Header *Header `json:"header"`
+ CopiesNumber []uint32 `json:"copiesNumber"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutRequest_Body_Init)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutRequest_Body_Init)(nil)
+ _ json.Marshaler = (*PutRequest_Body_Init)(nil)
+ _ json.Unmarshaler = (*PutRequest_Body_Init)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutRequest_Body_Init) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ var n int
+ size += proto.NestedStructureSize(1, x.ObjectId)
+ size += proto.NestedStructureSize(2, x.Signature)
+ size += proto.NestedStructureSize(3, x.Header)
+ n, _ = proto.RepeatedUInt32Size(4, x.CopiesNumber)
+ size += n
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutRequest_Body_Init) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutRequest_Body_Init) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.Header != nil && x.Header.StableSize() != 0 {
+ x.Header.EmitProtobuf(mm.AppendMessage(3))
+ }
+ if len(x.CopiesNumber) != 0 {
+ mm.AppendUint32s(4, x.CopiesNumber)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutRequest_Body_Init) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutRequest_Body_Init")
+ }
+ switch fc.FieldNum {
+ case 1: // ObjectId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ObjectId")
+ }
+ x.ObjectId = new(grpc.ObjectID)
+ if err := x.ObjectId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.Signature)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Header
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Header")
+ }
+ x.Header = new(Header)
+ if err := x.Header.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // CopiesNumber
+ data, ok := fc.UnpackUint32s(nil)
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "CopiesNumber")
+ }
+ x.CopiesNumber = data
+ }
+ }
+ return nil
+}
+func (x *PutRequest_Body_Init) GetObjectId() *grpc.ObjectID {
+ if x != nil {
+ return x.ObjectId
+ }
+ return nil
+}
+func (x *PutRequest_Body_Init) SetObjectId(v *grpc.ObjectID) {
+ x.ObjectId = v
+}
+func (x *PutRequest_Body_Init) GetSignature() *grpc.Signature {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *PutRequest_Body_Init) SetSignature(v *grpc.Signature) {
+ x.Signature = v
+}
+func (x *PutRequest_Body_Init) GetHeader() *Header {
+ if x != nil {
+ return x.Header
+ }
+ return nil
+}
+func (x *PutRequest_Body_Init) SetHeader(v *Header) {
+ x.Header = v
+}
+func (x *PutRequest_Body_Init) GetCopiesNumber() []uint32 {
+ if x != nil {
+ return x.CopiesNumber
+ }
+ return nil
+}
+func (x *PutRequest_Body_Init) SetCopiesNumber(v []uint32) {
+ x.CopiesNumber = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutRequest_Body_Init) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutRequest_Body_Init) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"objectId\":"
+ out.RawString(prefix[1:])
+ x.ObjectId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"copiesNumber\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.CopiesNumber {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint32(x.CopiesNumber[i])
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutRequest_Body_Init) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutRequest_Body_Init) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "objectId":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.ObjectId = f
+ }
+ case "signature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ case "header":
+ {
+ var f *Header
+ f = new(Header)
+ f.UnmarshalEasyJSON(in)
+ x.Header = f
+ }
+ case "copiesNumber":
+ {
+ var f uint32
+ var list []uint32
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Uint32()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.CopiesNumber = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutRequest_Body struct {
+ ObjectPart isPutRequest_Body_ObjectPart
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutRequest_Body)(nil)
+ _ json.Marshaler = (*PutRequest_Body)(nil)
+ _ json.Unmarshaler = (*PutRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ if inner, ok := x.ObjectPart.(*PutRequest_Body_Init_); ok {
+ size += proto.NestedStructureSize(1, inner.Init)
+ }
+ if inner, ok := x.ObjectPart.(*PutRequest_Body_Chunk); ok {
+ size += proto.BytesSize(2, inner.Chunk)
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if inner, ok := x.ObjectPart.(*PutRequest_Body_Init_); ok {
+ if inner.Init != nil && inner.Init.StableSize() != 0 {
+ inner.Init.EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+ if inner, ok := x.ObjectPart.(*PutRequest_Body_Chunk); ok {
+ if len(inner.Chunk) != 0 {
+ mm.AppendBytes(2, inner.Chunk)
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Init
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Init")
+ }
+ oneofField := &PutRequest_Body_Init_{Init: new(PutRequest_Body_Init)}
+ if err := oneofField.Init.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.ObjectPart = oneofField
+ case 2: // Chunk
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Chunk")
+ }
+ x.ObjectPart = &PutRequest_Body_Chunk{Chunk: data}
+ }
+ }
+ return nil
+}
+func (x *PutRequest_Body) GetObjectPart() isPutRequest_Body_ObjectPart {
+ if x != nil {
+ return x.ObjectPart
+ }
+ return nil
+}
+func (x *PutRequest_Body) SetObjectPart(v isPutRequest_Body_ObjectPart) {
+ x.ObjectPart = v
+}
+func (x *PutRequest_Body) GetInit() *PutRequest_Body_Init {
+ if xx, ok := x.GetObjectPart().(*PutRequest_Body_Init_); ok {
+ return xx.Init
+ }
+ return nil
+}
+func (x *PutRequest_Body) SetInit(v *PutRequest_Body_Init) {
+ x.ObjectPart = &PutRequest_Body_Init_{Init: v}
+}
+func (x *PutRequest_Body) GetChunk() *PutRequest_Body_Chunk {
+ if xx, ok := x.GetObjectPart().(*PutRequest_Body_Chunk); ok {
+ return xx
+ }
+ return nil
+}
+func (x *PutRequest_Body) SetChunk(v *PutRequest_Body_Chunk) {
+ x.ObjectPart = v
+}
+func (x *PutRequest_Body_Chunk) GetChunk() []byte {
+ if x != nil {
+ return x.Chunk
+ }
+ return nil
+}
+func (x *PutRequest_Body_Chunk) SetChunk(v []byte) {
+ x.Chunk = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ switch xx := x.ObjectPart.(type) {
+ case *PutRequest_Body_Init_:
+ {
+ const prefix string = ",\"init\":"
+ out.RawString(prefix[1:])
+ xx.Init.MarshalEasyJSON(out)
+ }
+ case *PutRequest_Body_Chunk:
+ {
+ const prefix string = ",\"chunk\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(xx.Chunk)
+ }
+ default:
+ out.RawString("null")
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "init":
+ xx := new(PutRequest_Body_Init_)
+ x.ObjectPart = xx
+ {
+ var f *PutRequest_Body_Init
+ f = new(PutRequest_Body_Init)
+ f.UnmarshalEasyJSON(in)
+ xx.Init = f
+ }
+ case "chunk":
+ xx := new(PutRequest_Body_Chunk)
+ x.ObjectPart = xx
+ {
+ var f []byte
+ f = in.Bytes()
+ xx.Chunk = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type isPutRequest_Body_ObjectPart interface {
+ isPutRequest_Body_ObjectPart()
+}
+
+type PutRequest_Body_Init_ struct {
+ Init *PutRequest_Body_Init
+}
+
+type PutRequest_Body_Chunk struct {
+ Chunk []byte
+}
+
+func (*PutRequest_Body_Init_) isPutRequest_Body_ObjectPart() {}
+
+func (*PutRequest_Body_Chunk) isPutRequest_Body_ObjectPart() {}
+
+type PutRequest struct {
+ Body *PutRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutRequest)(nil)
+ _ json.Marshaler = (*PutRequest)(nil)
+ _ json.Unmarshaler = (*PutRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *PutRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *PutRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(PutRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PutRequest) GetBody() *PutRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *PutRequest) SetBody(v *PutRequest_Body) {
+ x.Body = v
+}
+func (x *PutRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *PutRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *PutRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *PutRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *PutRequest_Body
+ f = new(PutRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutResponse_Body struct {
+ ObjectId *grpc.ObjectID `json:"objectId"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutResponse_Body)(nil)
+ _ json.Marshaler = (*PutResponse_Body)(nil)
+ _ json.Unmarshaler = (*PutResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ObjectId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // ObjectId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ObjectId")
+ }
+ x.ObjectId = new(grpc.ObjectID)
+ if err := x.ObjectId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PutResponse_Body) GetObjectId() *grpc.ObjectID {
+ if x != nil {
+ return x.ObjectId
+ }
+ return nil
+}
+func (x *PutResponse_Body) SetObjectId(v *grpc.ObjectID) {
+ x.ObjectId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"objectId\":"
+ out.RawString(prefix[1:])
+ x.ObjectId.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "objectId":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.ObjectId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutResponse struct {
+ Body *PutResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutResponse)(nil)
+ _ json.Marshaler = (*PutResponse)(nil)
+ _ json.Unmarshaler = (*PutResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *PutResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *PutResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(PutResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PutResponse) GetBody() *PutResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *PutResponse) SetBody(v *PutResponse_Body) {
+ x.Body = v
+}
+func (x *PutResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *PutResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *PutResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *PutResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *PutResponse_Body
+ f = new(PutResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type DeleteRequest_Body struct {
+ Address *grpc.Address `json:"address"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*DeleteRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*DeleteRequest_Body)(nil)
+ _ json.Marshaler = (*DeleteRequest_Body)(nil)
+ _ json.Unmarshaler = (*DeleteRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *DeleteRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Address)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *DeleteRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *DeleteRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Address != nil && x.Address.StableSize() != 0 {
+ x.Address.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *DeleteRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "DeleteRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Address
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Address")
+ }
+ x.Address = new(grpc.Address)
+ if err := x.Address.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *DeleteRequest_Body) GetAddress() *grpc.Address {
+ if x != nil {
+ return x.Address
+ }
+ return nil
+}
+func (x *DeleteRequest_Body) SetAddress(v *grpc.Address) {
+ x.Address = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *DeleteRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *DeleteRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"address\":"
+ out.RawString(prefix[1:])
+ x.Address.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *DeleteRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *DeleteRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "address":
+ {
+ var f *grpc.Address
+ f = new(grpc.Address)
+ f.UnmarshalEasyJSON(in)
+ x.Address = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type DeleteRequest struct {
+ Body *DeleteRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*DeleteRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*DeleteRequest)(nil)
+ _ json.Marshaler = (*DeleteRequest)(nil)
+ _ json.Unmarshaler = (*DeleteRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *DeleteRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *DeleteRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *DeleteRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *DeleteRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *DeleteRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *DeleteRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "DeleteRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(DeleteRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *DeleteRequest) GetBody() *DeleteRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *DeleteRequest) SetBody(v *DeleteRequest_Body) {
+ x.Body = v
+}
+func (x *DeleteRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *DeleteRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *DeleteRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *DeleteRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *DeleteRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *DeleteRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *DeleteRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *DeleteRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *DeleteRequest_Body
+ f = new(DeleteRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type DeleteResponse_Body struct {
+ Tombstone *grpc.Address `json:"tombstone"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*DeleteResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*DeleteResponse_Body)(nil)
+ _ json.Marshaler = (*DeleteResponse_Body)(nil)
+ _ json.Unmarshaler = (*DeleteResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *DeleteResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Tombstone)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *DeleteResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *DeleteResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Tombstone != nil && x.Tombstone.StableSize() != 0 {
+ x.Tombstone.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *DeleteResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "DeleteResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Tombstone
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Tombstone")
+ }
+ x.Tombstone = new(grpc.Address)
+ if err := x.Tombstone.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *DeleteResponse_Body) GetTombstone() *grpc.Address {
+ if x != nil {
+ return x.Tombstone
+ }
+ return nil
+}
+func (x *DeleteResponse_Body) SetTombstone(v *grpc.Address) {
+ x.Tombstone = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *DeleteResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *DeleteResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"tombstone\":"
+ out.RawString(prefix[1:])
+ x.Tombstone.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *DeleteResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *DeleteResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "tombstone":
+ {
+ var f *grpc.Address
+ f = new(grpc.Address)
+ f.UnmarshalEasyJSON(in)
+ x.Tombstone = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type DeleteResponse struct {
+ Body *DeleteResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*DeleteResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*DeleteResponse)(nil)
+ _ json.Marshaler = (*DeleteResponse)(nil)
+ _ json.Unmarshaler = (*DeleteResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *DeleteResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *DeleteResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *DeleteResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *DeleteResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *DeleteResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *DeleteResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "DeleteResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(DeleteResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *DeleteResponse) GetBody() *DeleteResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *DeleteResponse) SetBody(v *DeleteResponse_Body) {
+ x.Body = v
+}
+func (x *DeleteResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *DeleteResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *DeleteResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *DeleteResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *DeleteResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *DeleteResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *DeleteResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *DeleteResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *DeleteResponse_Body
+ f = new(DeleteResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type HeadRequest_Body struct {
+ Address *grpc.Address `json:"address"`
+ MainOnly bool `json:"mainOnly"`
+ Raw bool `json:"raw"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*HeadRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*HeadRequest_Body)(nil)
+ _ json.Marshaler = (*HeadRequest_Body)(nil)
+ _ json.Unmarshaler = (*HeadRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *HeadRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Address)
+ size += proto.BoolSize(2, x.MainOnly)
+ size += proto.BoolSize(3, x.Raw)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *HeadRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *HeadRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Address != nil && x.Address.StableSize() != 0 {
+ x.Address.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MainOnly {
+ mm.AppendBool(2, x.MainOnly)
+ }
+ if x.Raw {
+ mm.AppendBool(3, x.Raw)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *HeadRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "HeadRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Address
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Address")
+ }
+ x.Address = new(grpc.Address)
+ if err := x.Address.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MainOnly
+ data, ok := fc.Bool()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MainOnly")
+ }
+ x.MainOnly = data
+ case 3: // Raw
+ data, ok := fc.Bool()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Raw")
+ }
+ x.Raw = data
+ }
+ }
+ return nil
+}
+func (x *HeadRequest_Body) GetAddress() *grpc.Address {
+ if x != nil {
+ return x.Address
+ }
+ return nil
+}
+func (x *HeadRequest_Body) SetAddress(v *grpc.Address) {
+ x.Address = v
+}
+func (x *HeadRequest_Body) GetMainOnly() bool {
+ if x != nil {
+ return x.MainOnly
+ }
+ return false
+}
+func (x *HeadRequest_Body) SetMainOnly(v bool) {
+ x.MainOnly = v
+}
+func (x *HeadRequest_Body) GetRaw() bool {
+ if x != nil {
+ return x.Raw
+ }
+ return false
+}
+func (x *HeadRequest_Body) SetRaw(v bool) {
+ x.Raw = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *HeadRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *HeadRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"address\":"
+ out.RawString(prefix[1:])
+ x.Address.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"mainOnly\":"
+ out.RawString(prefix)
+ out.Bool(x.MainOnly)
+ }
+ {
+ const prefix string = ",\"raw\":"
+ out.RawString(prefix)
+ out.Bool(x.Raw)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *HeadRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *HeadRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "address":
+ {
+ var f *grpc.Address
+ f = new(grpc.Address)
+ f.UnmarshalEasyJSON(in)
+ x.Address = f
+ }
+ case "mainOnly":
+ {
+ var f bool
+ f = in.Bool()
+ x.MainOnly = f
+ }
+ case "raw":
+ {
+ var f bool
+ f = in.Bool()
+ x.Raw = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type HeadRequest struct {
+ Body *HeadRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*HeadRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*HeadRequest)(nil)
+ _ json.Marshaler = (*HeadRequest)(nil)
+ _ json.Unmarshaler = (*HeadRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *HeadRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *HeadRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *HeadRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *HeadRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *HeadRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *HeadRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "HeadRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(HeadRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *HeadRequest) GetBody() *HeadRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *HeadRequest) SetBody(v *HeadRequest_Body) {
+ x.Body = v
+}
+func (x *HeadRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *HeadRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *HeadRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *HeadRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *HeadRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *HeadRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *HeadRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *HeadRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *HeadRequest_Body
+ f = new(HeadRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type HeaderWithSignature struct {
+ Header *Header `json:"header"`
+ Signature *grpc.Signature `json:"signature"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*HeaderWithSignature)(nil)
+ _ encoding.ProtoUnmarshaler = (*HeaderWithSignature)(nil)
+ _ json.Marshaler = (*HeaderWithSignature)(nil)
+ _ json.Unmarshaler = (*HeaderWithSignature)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *HeaderWithSignature) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Header)
+ size += proto.NestedStructureSize(2, x.Signature)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *HeaderWithSignature) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *HeaderWithSignature) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Header != nil && x.Header.StableSize() != 0 {
+ x.Header.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *HeaderWithSignature) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "HeaderWithSignature")
+ }
+ switch fc.FieldNum {
+ case 1: // Header
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Header")
+ }
+ x.Header = new(Header)
+ if err := x.Header.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.Signature)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *HeaderWithSignature) GetHeader() *Header {
+ if x != nil {
+ return x.Header
+ }
+ return nil
+}
+func (x *HeaderWithSignature) SetHeader(v *Header) {
+ x.Header = v
+}
+func (x *HeaderWithSignature) GetSignature() *grpc.Signature {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *HeaderWithSignature) SetSignature(v *grpc.Signature) {
+ x.Signature = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *HeaderWithSignature) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *HeaderWithSignature) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"header\":"
+ out.RawString(prefix[1:])
+ x.Header.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *HeaderWithSignature) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *HeaderWithSignature) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "header":
+ {
+ var f *Header
+ f = new(Header)
+ f.UnmarshalEasyJSON(in)
+ x.Header = f
+ }
+ case "signature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type HeadResponse_Body struct {
+ Head isHeadResponse_Body_Head
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*HeadResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*HeadResponse_Body)(nil)
+ _ json.Marshaler = (*HeadResponse_Body)(nil)
+ _ json.Unmarshaler = (*HeadResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *HeadResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ if inner, ok := x.Head.(*HeadResponse_Body_Header); ok {
+ size += proto.NestedStructureSize(1, inner.Header)
+ }
+ if inner, ok := x.Head.(*HeadResponse_Body_ShortHeader); ok {
+ size += proto.NestedStructureSize(2, inner.ShortHeader)
+ }
+ if inner, ok := x.Head.(*HeadResponse_Body_SplitInfo); ok {
+ size += proto.NestedStructureSize(3, inner.SplitInfo)
+ }
+ if inner, ok := x.Head.(*HeadResponse_Body_EcInfo); ok {
+ size += proto.NestedStructureSize(4, inner.EcInfo)
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *HeadResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *HeadResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if inner, ok := x.Head.(*HeadResponse_Body_Header); ok {
+ if inner.Header != nil && inner.Header.StableSize() != 0 {
+ inner.Header.EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+ if inner, ok := x.Head.(*HeadResponse_Body_ShortHeader); ok {
+ if inner.ShortHeader != nil && inner.ShortHeader.StableSize() != 0 {
+ inner.ShortHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ }
+ if inner, ok := x.Head.(*HeadResponse_Body_SplitInfo); ok {
+ if inner.SplitInfo != nil && inner.SplitInfo.StableSize() != 0 {
+ inner.SplitInfo.EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+ if inner, ok := x.Head.(*HeadResponse_Body_EcInfo); ok {
+ if inner.EcInfo != nil && inner.EcInfo.StableSize() != 0 {
+ inner.EcInfo.EmitProtobuf(mm.AppendMessage(4))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *HeadResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "HeadResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Header
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Header")
+ }
+ oneofField := &HeadResponse_Body_Header{Header: new(HeaderWithSignature)}
+ if err := oneofField.Header.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.Head = oneofField
+ case 2: // ShortHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ShortHeader")
+ }
+ oneofField := &HeadResponse_Body_ShortHeader{ShortHeader: new(ShortHeader)}
+ if err := oneofField.ShortHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.Head = oneofField
+ case 3: // SplitInfo
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SplitInfo")
+ }
+ oneofField := &HeadResponse_Body_SplitInfo{SplitInfo: new(SplitInfo)}
+ if err := oneofField.SplitInfo.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.Head = oneofField
+ case 4: // EcInfo
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "EcInfo")
+ }
+ oneofField := &HeadResponse_Body_EcInfo{EcInfo: new(ECInfo)}
+ if err := oneofField.EcInfo.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.Head = oneofField
+ }
+ }
+ return nil
+}
+func (x *HeadResponse_Body) GetHead() isHeadResponse_Body_Head {
+ if x != nil {
+ return x.Head
+ }
+ return nil
+}
+func (x *HeadResponse_Body) SetHead(v isHeadResponse_Body_Head) {
+ x.Head = v
+}
+func (x *HeadResponse_Body) GetHeader() *HeaderWithSignature {
+ if xx, ok := x.GetHead().(*HeadResponse_Body_Header); ok {
+ return xx.Header
+ }
+ return nil
+}
+func (x *HeadResponse_Body) SetHeader(v *HeaderWithSignature) {
+ x.Head = &HeadResponse_Body_Header{Header: v}
+}
+func (x *HeadResponse_Body) GetShortHeader() *ShortHeader {
+ if xx, ok := x.GetHead().(*HeadResponse_Body_ShortHeader); ok {
+ return xx.ShortHeader
+ }
+ return nil
+}
+func (x *HeadResponse_Body) SetShortHeader(v *ShortHeader) {
+ x.Head = &HeadResponse_Body_ShortHeader{ShortHeader: v}
+}
+func (x *HeadResponse_Body) GetSplitInfo() *SplitInfo {
+ if xx, ok := x.GetHead().(*HeadResponse_Body_SplitInfo); ok {
+ return xx.SplitInfo
+ }
+ return nil
+}
+func (x *HeadResponse_Body) SetSplitInfo(v *SplitInfo) {
+ x.Head = &HeadResponse_Body_SplitInfo{SplitInfo: v}
+}
+func (x *HeadResponse_Body) GetEcInfo() *ECInfo {
+ if xx, ok := x.GetHead().(*HeadResponse_Body_EcInfo); ok {
+ return xx.EcInfo
+ }
+ return nil
+}
+func (x *HeadResponse_Body) SetEcInfo(v *ECInfo) {
+ x.Head = &HeadResponse_Body_EcInfo{EcInfo: v}
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *HeadResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *HeadResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ switch xx := x.Head.(type) {
+ case *HeadResponse_Body_Header:
+ {
+ const prefix string = ",\"header\":"
+ out.RawString(prefix[1:])
+ xx.Header.MarshalEasyJSON(out)
+ }
+ case *HeadResponse_Body_ShortHeader:
+ {
+ const prefix string = ",\"shortHeader\":"
+ out.RawString(prefix[1:])
+ xx.ShortHeader.MarshalEasyJSON(out)
+ }
+ case *HeadResponse_Body_SplitInfo:
+ {
+ const prefix string = ",\"splitInfo\":"
+ out.RawString(prefix[1:])
+ xx.SplitInfo.MarshalEasyJSON(out)
+ }
+ case *HeadResponse_Body_EcInfo:
+ {
+ const prefix string = ",\"ecInfo\":"
+ out.RawString(prefix[1:])
+ xx.EcInfo.MarshalEasyJSON(out)
+ }
+ default:
+ out.RawString("null")
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *HeadResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *HeadResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "header":
+ xx := new(HeadResponse_Body_Header)
+ x.Head = xx
+ {
+ var f *HeaderWithSignature
+ f = new(HeaderWithSignature)
+ f.UnmarshalEasyJSON(in)
+ xx.Header = f
+ }
+ case "shortHeader":
+ xx := new(HeadResponse_Body_ShortHeader)
+ x.Head = xx
+ {
+ var f *ShortHeader
+ f = new(ShortHeader)
+ f.UnmarshalEasyJSON(in)
+ xx.ShortHeader = f
+ }
+ case "splitInfo":
+ xx := new(HeadResponse_Body_SplitInfo)
+ x.Head = xx
+ {
+ var f *SplitInfo
+ f = new(SplitInfo)
+ f.UnmarshalEasyJSON(in)
+ xx.SplitInfo = f
+ }
+ case "ecInfo":
+ xx := new(HeadResponse_Body_EcInfo)
+ x.Head = xx
+ {
+ var f *ECInfo
+ f = new(ECInfo)
+ f.UnmarshalEasyJSON(in)
+ xx.EcInfo = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type isHeadResponse_Body_Head interface {
+ isHeadResponse_Body_Head()
+}
+
+type HeadResponse_Body_Header struct {
+ Header *HeaderWithSignature
+}
+
+type HeadResponse_Body_ShortHeader struct {
+ ShortHeader *ShortHeader
+}
+
+type HeadResponse_Body_SplitInfo struct {
+ SplitInfo *SplitInfo
+}
+
+type HeadResponse_Body_EcInfo struct {
+ EcInfo *ECInfo
+}
+
+func (*HeadResponse_Body_Header) isHeadResponse_Body_Head() {}
+
+func (*HeadResponse_Body_ShortHeader) isHeadResponse_Body_Head() {}
+
+func (*HeadResponse_Body_SplitInfo) isHeadResponse_Body_Head() {}
+
+func (*HeadResponse_Body_EcInfo) isHeadResponse_Body_Head() {}
+
+type HeadResponse struct {
+ Body *HeadResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*HeadResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*HeadResponse)(nil)
+ _ json.Marshaler = (*HeadResponse)(nil)
+ _ json.Unmarshaler = (*HeadResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *HeadResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *HeadResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *HeadResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *HeadResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *HeadResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *HeadResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "HeadResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(HeadResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *HeadResponse) GetBody() *HeadResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *HeadResponse) SetBody(v *HeadResponse_Body) {
+ x.Body = v
+}
+func (x *HeadResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *HeadResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *HeadResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *HeadResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *HeadResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *HeadResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *HeadResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *HeadResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *HeadResponse_Body
+ f = new(HeadResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type SearchRequest_Body_Filter struct {
+ MatchType MatchType `json:"matchType"`
+ Key string `json:"key"`
+ Value string `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SearchRequest_Body_Filter)(nil)
+ _ encoding.ProtoUnmarshaler = (*SearchRequest_Body_Filter)(nil)
+ _ json.Marshaler = (*SearchRequest_Body_Filter)(nil)
+ _ json.Unmarshaler = (*SearchRequest_Body_Filter)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SearchRequest_Body_Filter) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.EnumSize(1, int32(x.MatchType))
+ size += proto.StringSize(2, x.Key)
+ size += proto.StringSize(3, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SearchRequest_Body_Filter) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SearchRequest_Body_Filter) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if int32(x.MatchType) != 0 {
+ mm.AppendInt32(1, int32(x.MatchType))
+ }
+ if len(x.Key) != 0 {
+ mm.AppendString(2, x.Key)
+ }
+ if len(x.Value) != 0 {
+ mm.AppendString(3, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SearchRequest_Body_Filter) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SearchRequest_Body_Filter")
+ }
+ switch fc.FieldNum {
+ case 1: // MatchType
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MatchType")
+ }
+ x.MatchType = MatchType(data)
+ case 2: // Key
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 3: // Value
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *SearchRequest_Body_Filter) GetMatchType() MatchType {
+ if x != nil {
+ return x.MatchType
+ }
+ return 0
+}
+func (x *SearchRequest_Body_Filter) SetMatchType(v MatchType) {
+ x.MatchType = v
+}
+func (x *SearchRequest_Body_Filter) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+func (x *SearchRequest_Body_Filter) SetKey(v string) {
+ x.Key = v
+}
+func (x *SearchRequest_Body_Filter) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+func (x *SearchRequest_Body_Filter) SetValue(v string) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SearchRequest_Body_Filter) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SearchRequest_Body_Filter) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"matchType\":"
+ out.RawString(prefix[1:])
+ out.Int32(int32(x.MatchType))
+ }
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SearchRequest_Body_Filter) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SearchRequest_Body_Filter) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "matchType":
+ {
+ var f MatchType
+ var parsedValue MatchType
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := MatchType_value[v]; ok {
+ parsedValue = MatchType(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = MatchType(vv)
+ case float64:
+ parsedValue = MatchType(v)
+ }
+ f = parsedValue
+ x.MatchType = f
+ }
+ case "key":
+ {
+ var f string
+ f = in.String()
+ x.Key = f
+ }
+ case "value":
+ {
+ var f string
+ f = in.String()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type SearchRequest_Body struct {
+ ContainerId *grpc.ContainerID `json:"containerId"`
+ Version uint32 `json:"version"`
+ Filters []*SearchRequest_Body_Filter `json:"filters"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SearchRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*SearchRequest_Body)(nil)
+ _ json.Marshaler = (*SearchRequest_Body)(nil)
+ _ json.Unmarshaler = (*SearchRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SearchRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ContainerId)
+ size += proto.UInt32Size(2, x.Version)
+ for i := range x.Filters {
+ size += proto.NestedStructureSize(3, x.Filters[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SearchRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SearchRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Version != 0 {
+ mm.AppendUint32(2, x.Version)
+ }
+ for i := range x.Filters {
+ if x.Filters[i] != nil && x.Filters[i].StableSize() != 0 {
+ x.Filters[i].EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SearchRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SearchRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // ContainerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
+ }
+ x.ContainerId = new(grpc.ContainerID)
+ if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Version
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Version")
+ }
+ x.Version = data
+ case 3: // Filters
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Filters")
+ }
+ x.Filters = append(x.Filters, new(SearchRequest_Body_Filter))
+ ff := x.Filters[len(x.Filters)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *SearchRequest_Body) GetContainerId() *grpc.ContainerID {
+ if x != nil {
+ return x.ContainerId
+ }
+ return nil
+}
+func (x *SearchRequest_Body) SetContainerId(v *grpc.ContainerID) {
+ x.ContainerId = v
+}
+func (x *SearchRequest_Body) GetVersion() uint32 {
+ if x != nil {
+ return x.Version
+ }
+ return 0
+}
+func (x *SearchRequest_Body) SetVersion(v uint32) {
+ x.Version = v
+}
+func (x *SearchRequest_Body) GetFilters() []*SearchRequest_Body_Filter {
+ if x != nil {
+ return x.Filters
+ }
+ return nil
+}
+func (x *SearchRequest_Body) SetFilters(v []*SearchRequest_Body_Filter) {
+ x.Filters = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SearchRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SearchRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"containerId\":"
+ out.RawString(prefix[1:])
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"version\":"
+ out.RawString(prefix)
+ out.Uint32(x.Version)
+ }
+ {
+ const prefix string = ",\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SearchRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SearchRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "containerId":
+ {
+ var f *grpc.ContainerID
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.ContainerId = f
+ }
+ case "version":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Version = f
+ }
+ case "filters":
+ {
+ var f *SearchRequest_Body_Filter
+ var list []*SearchRequest_Body_Filter
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(SearchRequest_Body_Filter)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Filters = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type SearchRequest struct {
+ Body *SearchRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SearchRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*SearchRequest)(nil)
+ _ json.Marshaler = (*SearchRequest)(nil)
+ _ json.Unmarshaler = (*SearchRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SearchRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *SearchRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *SearchRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SearchRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SearchRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SearchRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SearchRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(SearchRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *SearchRequest) GetBody() *SearchRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *SearchRequest) SetBody(v *SearchRequest_Body) {
+ x.Body = v
+}
+func (x *SearchRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *SearchRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *SearchRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *SearchRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SearchRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SearchRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SearchRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SearchRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *SearchRequest_Body
+ f = new(SearchRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type SearchResponse_Body struct {
+ IdList []*grpc.ObjectID `json:"idList"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SearchResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*SearchResponse_Body)(nil)
+ _ json.Marshaler = (*SearchResponse_Body)(nil)
+ _ json.Unmarshaler = (*SearchResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SearchResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ for i := range x.IdList {
+ size += proto.NestedStructureSize(1, x.IdList[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SearchResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SearchResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ for i := range x.IdList {
+ if x.IdList[i] != nil && x.IdList[i].StableSize() != 0 {
+ x.IdList[i].EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SearchResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SearchResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // IdList
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "IdList")
+ }
+ x.IdList = append(x.IdList, new(grpc.ObjectID))
+ ff := x.IdList[len(x.IdList)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *SearchResponse_Body) GetIdList() []*grpc.ObjectID {
+ if x != nil {
+ return x.IdList
+ }
+ return nil
+}
+func (x *SearchResponse_Body) SetIdList(v []*grpc.ObjectID) {
+ x.IdList = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SearchResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SearchResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"idList\":"
+ out.RawString(prefix[1:])
+ out.RawByte('[')
+ for i := range x.IdList {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.IdList[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SearchResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SearchResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "idList":
+ {
+ var f *grpc.ObjectID
+ var list []*grpc.ObjectID
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.IdList = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type SearchResponse struct {
+ Body *SearchResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SearchResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*SearchResponse)(nil)
+ _ json.Marshaler = (*SearchResponse)(nil)
+ _ json.Unmarshaler = (*SearchResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SearchResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *SearchResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *SearchResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SearchResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SearchResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SearchResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SearchResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(SearchResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *SearchResponse) GetBody() *SearchResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *SearchResponse) SetBody(v *SearchResponse_Body) {
+ x.Body = v
+}
+func (x *SearchResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *SearchResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *SearchResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *SearchResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SearchResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SearchResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SearchResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SearchResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *SearchResponse_Body
+ f = new(SearchResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Range struct {
+ Offset uint64 `json:"offset"`
+ Length uint64 `json:"length"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Range)(nil)
+ _ encoding.ProtoUnmarshaler = (*Range)(nil)
+ _ json.Marshaler = (*Range)(nil)
+ _ json.Unmarshaler = (*Range)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Range) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt64Size(1, x.Offset)
+ size += proto.UInt64Size(2, x.Length)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Range) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Range) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Offset != 0 {
+ mm.AppendUint64(1, x.Offset)
+ }
+ if x.Length != 0 {
+ mm.AppendUint64(2, x.Length)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Range) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Range")
+ }
+ switch fc.FieldNum {
+ case 1: // Offset
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Offset")
+ }
+ x.Offset = data
+ case 2: // Length
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Length")
+ }
+ x.Length = data
+ }
+ }
+ return nil
+}
+func (x *Range) GetOffset() uint64 {
+ if x != nil {
+ return x.Offset
+ }
+ return 0
+}
+func (x *Range) SetOffset(v uint64) {
+ x.Offset = v
+}
+func (x *Range) GetLength() uint64 {
+ if x != nil {
+ return x.Length
+ }
+ return 0
+}
+func (x *Range) SetLength(v uint64) {
+ x.Length = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Range) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Range) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"offset\":"
+ out.RawString(prefix[1:])
+ out.Uint64(x.Offset)
+ }
+ {
+ const prefix string = ",\"length\":"
+ out.RawString(prefix)
+ out.Uint64(x.Length)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Range) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Range) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "offset":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Offset = f
+ }
+ case "length":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Length = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRangeRequest_Body struct {
+ Address *grpc.Address `json:"address"`
+ Range *Range `json:"range"`
+ Raw bool `json:"raw"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRangeRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRangeRequest_Body)(nil)
+ _ json.Marshaler = (*GetRangeRequest_Body)(nil)
+ _ json.Unmarshaler = (*GetRangeRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRangeRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Address)
+ size += proto.NestedStructureSize(2, x.Range)
+ size += proto.BoolSize(3, x.Raw)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRangeRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRangeRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Address != nil && x.Address.StableSize() != 0 {
+ x.Address.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Range != nil && x.Range.StableSize() != 0 {
+ x.Range.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.Raw {
+ mm.AppendBool(3, x.Raw)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRangeRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRangeRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Address
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Address")
+ }
+ x.Address = new(grpc.Address)
+ if err := x.Address.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Range
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Range")
+ }
+ x.Range = new(Range)
+ if err := x.Range.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Raw
+ data, ok := fc.Bool()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Raw")
+ }
+ x.Raw = data
+ }
+ }
+ return nil
+}
+func (x *GetRangeRequest_Body) GetAddress() *grpc.Address {
+ if x != nil {
+ return x.Address
+ }
+ return nil
+}
+func (x *GetRangeRequest_Body) SetAddress(v *grpc.Address) {
+ x.Address = v
+}
+func (x *GetRangeRequest_Body) GetRange() *Range {
+ if x != nil {
+ return x.Range
+ }
+ return nil
+}
+func (x *GetRangeRequest_Body) SetRange(v *Range) {
+ x.Range = v
+}
+func (x *GetRangeRequest_Body) GetRaw() bool {
+ if x != nil {
+ return x.Raw
+ }
+ return false
+}
+func (x *GetRangeRequest_Body) SetRaw(v bool) {
+ x.Raw = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRangeRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRangeRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"address\":"
+ out.RawString(prefix[1:])
+ x.Address.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"range\":"
+ out.RawString(prefix)
+ x.Range.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"raw\":"
+ out.RawString(prefix)
+ out.Bool(x.Raw)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRangeRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRangeRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "address":
+ {
+ var f *grpc.Address
+ f = new(grpc.Address)
+ f.UnmarshalEasyJSON(in)
+ x.Address = f
+ }
+ case "range":
+ {
+ var f *Range
+ f = new(Range)
+ f.UnmarshalEasyJSON(in)
+ x.Range = f
+ }
+ case "raw":
+ {
+ var f bool
+ f = in.Bool()
+ x.Raw = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRangeRequest struct {
+ Body *GetRangeRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRangeRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRangeRequest)(nil)
+ _ json.Marshaler = (*GetRangeRequest)(nil)
+ _ json.Unmarshaler = (*GetRangeRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRangeRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetRangeRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetRangeRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRangeRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRangeRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRangeRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRangeRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetRangeRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetRangeRequest) GetBody() *GetRangeRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetRangeRequest) SetBody(v *GetRangeRequest_Body) {
+ x.Body = v
+}
+func (x *GetRangeRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetRangeRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetRangeRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetRangeRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRangeRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRangeRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRangeRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRangeRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetRangeRequest_Body
+ f = new(GetRangeRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRangeResponse_Body struct {
+ RangePart isGetRangeResponse_Body_RangePart
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRangeResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRangeResponse_Body)(nil)
+ _ json.Marshaler = (*GetRangeResponse_Body)(nil)
+ _ json.Unmarshaler = (*GetRangeResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRangeResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ if inner, ok := x.RangePart.(*GetRangeResponse_Body_Chunk); ok {
+ size += proto.BytesSize(1, inner.Chunk)
+ }
+ if inner, ok := x.RangePart.(*GetRangeResponse_Body_SplitInfo); ok {
+ size += proto.NestedStructureSize(2, inner.SplitInfo)
+ }
+ if inner, ok := x.RangePart.(*GetRangeResponse_Body_EcInfo); ok {
+ size += proto.NestedStructureSize(3, inner.EcInfo)
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRangeResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRangeResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if inner, ok := x.RangePart.(*GetRangeResponse_Body_Chunk); ok {
+ if len(inner.Chunk) != 0 {
+ mm.AppendBytes(1, inner.Chunk)
+ }
+ }
+ if inner, ok := x.RangePart.(*GetRangeResponse_Body_SplitInfo); ok {
+ if inner.SplitInfo != nil && inner.SplitInfo.StableSize() != 0 {
+ inner.SplitInfo.EmitProtobuf(mm.AppendMessage(2))
+ }
+ }
+ if inner, ok := x.RangePart.(*GetRangeResponse_Body_EcInfo); ok {
+ if inner.EcInfo != nil && inner.EcInfo.StableSize() != 0 {
+ inner.EcInfo.EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRangeResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRangeResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Chunk
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Chunk")
+ }
+ x.RangePart = &GetRangeResponse_Body_Chunk{Chunk: data}
+ case 2: // SplitInfo
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SplitInfo")
+ }
+ oneofField := &GetRangeResponse_Body_SplitInfo{SplitInfo: new(SplitInfo)}
+ if err := oneofField.SplitInfo.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.RangePart = oneofField
+ case 3: // EcInfo
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "EcInfo")
+ }
+ oneofField := &GetRangeResponse_Body_EcInfo{EcInfo: new(ECInfo)}
+ if err := oneofField.EcInfo.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.RangePart = oneofField
+ }
+ }
+ return nil
+}
+func (x *GetRangeResponse_Body) GetRangePart() isGetRangeResponse_Body_RangePart {
+ if x != nil {
+ return x.RangePart
+ }
+ return nil
+}
+func (x *GetRangeResponse_Body) SetRangePart(v isGetRangeResponse_Body_RangePart) {
+ x.RangePart = v
+}
+func (x *GetRangeResponse_Body) GetChunk() *GetRangeResponse_Body_Chunk {
+ if xx, ok := x.GetRangePart().(*GetRangeResponse_Body_Chunk); ok {
+ return xx
+ }
+ return nil
+}
+func (x *GetRangeResponse_Body) SetChunk(v *GetRangeResponse_Body_Chunk) {
+ x.RangePart = v
+}
+func (x *GetRangeResponse_Body_Chunk) GetChunk() []byte {
+ if x != nil {
+ return x.Chunk
+ }
+ return nil
+}
+func (x *GetRangeResponse_Body_Chunk) SetChunk(v []byte) {
+ x.Chunk = v
+}
+func (x *GetRangeResponse_Body) GetSplitInfo() *SplitInfo {
+ if xx, ok := x.GetRangePart().(*GetRangeResponse_Body_SplitInfo); ok {
+ return xx.SplitInfo
+ }
+ return nil
+}
+func (x *GetRangeResponse_Body) SetSplitInfo(v *SplitInfo) {
+ x.RangePart = &GetRangeResponse_Body_SplitInfo{SplitInfo: v}
+}
+func (x *GetRangeResponse_Body) GetEcInfo() *ECInfo {
+ if xx, ok := x.GetRangePart().(*GetRangeResponse_Body_EcInfo); ok {
+ return xx.EcInfo
+ }
+ return nil
+}
+func (x *GetRangeResponse_Body) SetEcInfo(v *ECInfo) {
+ x.RangePart = &GetRangeResponse_Body_EcInfo{EcInfo: v}
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRangeResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRangeResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ switch xx := x.RangePart.(type) {
+ case *GetRangeResponse_Body_Chunk:
+ {
+ const prefix string = ",\"chunk\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(xx.Chunk)
+ }
+ case *GetRangeResponse_Body_SplitInfo:
+ {
+ const prefix string = ",\"splitInfo\":"
+ out.RawString(prefix[1:])
+ xx.SplitInfo.MarshalEasyJSON(out)
+ }
+ case *GetRangeResponse_Body_EcInfo:
+ {
+ const prefix string = ",\"ecInfo\":"
+ out.RawString(prefix[1:])
+ xx.EcInfo.MarshalEasyJSON(out)
+ }
+ default:
+ out.RawString("null")
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRangeResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRangeResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "chunk":
+ xx := new(GetRangeResponse_Body_Chunk)
+ x.RangePart = xx
+ {
+ var f []byte
+ f = in.Bytes()
+ xx.Chunk = f
+ }
+ case "splitInfo":
+ xx := new(GetRangeResponse_Body_SplitInfo)
+ x.RangePart = xx
+ {
+ var f *SplitInfo
+ f = new(SplitInfo)
+ f.UnmarshalEasyJSON(in)
+ xx.SplitInfo = f
+ }
+ case "ecInfo":
+ xx := new(GetRangeResponse_Body_EcInfo)
+ x.RangePart = xx
+ {
+ var f *ECInfo
+ f = new(ECInfo)
+ f.UnmarshalEasyJSON(in)
+ xx.EcInfo = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type isGetRangeResponse_Body_RangePart interface {
+ isGetRangeResponse_Body_RangePart()
+}
+
+type GetRangeResponse_Body_Chunk struct {
+ Chunk []byte
+}
+
+type GetRangeResponse_Body_SplitInfo struct {
+ SplitInfo *SplitInfo
+}
+
+type GetRangeResponse_Body_EcInfo struct {
+ EcInfo *ECInfo
+}
+
+func (*GetRangeResponse_Body_Chunk) isGetRangeResponse_Body_RangePart() {}
+
+func (*GetRangeResponse_Body_SplitInfo) isGetRangeResponse_Body_RangePart() {}
+
+func (*GetRangeResponse_Body_EcInfo) isGetRangeResponse_Body_RangePart() {}
+
+type GetRangeResponse struct {
+ Body *GetRangeResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRangeResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRangeResponse)(nil)
+ _ json.Marshaler = (*GetRangeResponse)(nil)
+ _ json.Unmarshaler = (*GetRangeResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRangeResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetRangeResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetRangeResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRangeResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRangeResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRangeResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRangeResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetRangeResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetRangeResponse) GetBody() *GetRangeResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetRangeResponse) SetBody(v *GetRangeResponse_Body) {
+ x.Body = v
+}
+func (x *GetRangeResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetRangeResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetRangeResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetRangeResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRangeResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRangeResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRangeResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRangeResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetRangeResponse_Body
+ f = new(GetRangeResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRangeHashRequest_Body struct {
+ Address *grpc.Address `json:"address"`
+ Ranges []*Range `json:"ranges"`
+ Salt []byte `json:"salt"`
+ Type grpc.ChecksumType `json:"type"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRangeHashRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRangeHashRequest_Body)(nil)
+ _ json.Marshaler = (*GetRangeHashRequest_Body)(nil)
+ _ json.Unmarshaler = (*GetRangeHashRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRangeHashRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Address)
+ for i := range x.Ranges {
+ size += proto.NestedStructureSize(2, x.Ranges[i])
+ }
+ size += proto.BytesSize(3, x.Salt)
+ size += proto.EnumSize(4, int32(x.Type))
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRangeHashRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRangeHashRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Address != nil && x.Address.StableSize() != 0 {
+ x.Address.EmitProtobuf(mm.AppendMessage(1))
+ }
+ for i := range x.Ranges {
+ if x.Ranges[i] != nil && x.Ranges[i].StableSize() != 0 {
+ x.Ranges[i].EmitProtobuf(mm.AppendMessage(2))
+ }
+ }
+ if len(x.Salt) != 0 {
+ mm.AppendBytes(3, x.Salt)
+ }
+ if int32(x.Type) != 0 {
+ mm.AppendInt32(4, int32(x.Type))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRangeHashRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRangeHashRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Address
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Address")
+ }
+ x.Address = new(grpc.Address)
+ if err := x.Address.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Ranges
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Ranges")
+ }
+ x.Ranges = append(x.Ranges, new(Range))
+ ff := x.Ranges[len(x.Ranges)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Salt
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Salt")
+ }
+ x.Salt = data
+ case 4: // Type
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Type")
+ }
+ x.Type = grpc.ChecksumType(data)
+ }
+ }
+ return nil
+}
+func (x *GetRangeHashRequest_Body) GetAddress() *grpc.Address {
+ if x != nil {
+ return x.Address
+ }
+ return nil
+}
+func (x *GetRangeHashRequest_Body) SetAddress(v *grpc.Address) {
+ x.Address = v
+}
+func (x *GetRangeHashRequest_Body) GetRanges() []*Range {
+ if x != nil {
+ return x.Ranges
+ }
+ return nil
+}
+func (x *GetRangeHashRequest_Body) SetRanges(v []*Range) {
+ x.Ranges = v
+}
+func (x *GetRangeHashRequest_Body) GetSalt() []byte {
+ if x != nil {
+ return x.Salt
+ }
+ return nil
+}
+func (x *GetRangeHashRequest_Body) SetSalt(v []byte) {
+ x.Salt = v
+}
+func (x *GetRangeHashRequest_Body) GetType() grpc.ChecksumType {
+ if x != nil {
+ return x.Type
+ }
+ return 0
+}
+func (x *GetRangeHashRequest_Body) SetType(v grpc.ChecksumType) {
+ x.Type = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRangeHashRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRangeHashRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"address\":"
+ out.RawString(prefix[1:])
+ x.Address.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"ranges\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Ranges {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Ranges[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"salt\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Salt)
+ }
+ {
+ const prefix string = ",\"type\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.Type))
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRangeHashRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRangeHashRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "address":
+ {
+ var f *grpc.Address
+ f = new(grpc.Address)
+ f.UnmarshalEasyJSON(in)
+ x.Address = f
+ }
+ case "ranges":
+ {
+ var f *Range
+ var list []*Range
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Range)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Ranges = list
+ in.Delim(']')
+ }
+ case "salt":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Salt = f
+ }
+ case "type":
+ {
+ var f grpc.ChecksumType
+ var parsedValue grpc.ChecksumType
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := grpc.ChecksumType_value[v]; ok {
+ parsedValue = grpc.ChecksumType(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = grpc.ChecksumType(vv)
+ case float64:
+ parsedValue = grpc.ChecksumType(v)
+ }
+ f = parsedValue
+ x.Type = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRangeHashRequest struct {
+ Body *GetRangeHashRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRangeHashRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRangeHashRequest)(nil)
+ _ json.Marshaler = (*GetRangeHashRequest)(nil)
+ _ json.Unmarshaler = (*GetRangeHashRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRangeHashRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetRangeHashRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetRangeHashRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRangeHashRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRangeHashRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRangeHashRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRangeHashRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetRangeHashRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetRangeHashRequest) GetBody() *GetRangeHashRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetRangeHashRequest) SetBody(v *GetRangeHashRequest_Body) {
+ x.Body = v
+}
+func (x *GetRangeHashRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetRangeHashRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetRangeHashRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetRangeHashRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRangeHashRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRangeHashRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRangeHashRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRangeHashRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetRangeHashRequest_Body
+ f = new(GetRangeHashRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRangeHashResponse_Body struct {
+ Type grpc.ChecksumType `json:"type"`
+ HashList [][]byte `json:"hashList"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRangeHashResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRangeHashResponse_Body)(nil)
+ _ json.Marshaler = (*GetRangeHashResponse_Body)(nil)
+ _ json.Unmarshaler = (*GetRangeHashResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRangeHashResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.EnumSize(1, int32(x.Type))
+ size += proto.RepeatedBytesSize(2, x.HashList)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRangeHashResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRangeHashResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if int32(x.Type) != 0 {
+ mm.AppendInt32(1, int32(x.Type))
+ }
+ for j := range x.HashList {
+ mm.AppendBytes(2, x.HashList[j])
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRangeHashResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRangeHashResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Type
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Type")
+ }
+ x.Type = grpc.ChecksumType(data)
+ case 2: // HashList
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "HashList")
+ }
+ x.HashList = append(x.HashList, data)
+ }
+ }
+ return nil
+}
+func (x *GetRangeHashResponse_Body) GetType() grpc.ChecksumType {
+ if x != nil {
+ return x.Type
+ }
+ return 0
+}
+func (x *GetRangeHashResponse_Body) SetType(v grpc.ChecksumType) {
+ x.Type = v
+}
+func (x *GetRangeHashResponse_Body) GetHashList() [][]byte {
+ if x != nil {
+ return x.HashList
+ }
+ return nil
+}
+func (x *GetRangeHashResponse_Body) SetHashList(v [][]byte) {
+ x.HashList = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRangeHashResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRangeHashResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"type\":"
+ out.RawString(prefix[1:])
+ out.Int32(int32(x.Type))
+ }
+ {
+ const prefix string = ",\"hashList\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.HashList {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Base64Bytes(x.HashList[i])
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRangeHashResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRangeHashResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "type":
+ {
+ var f grpc.ChecksumType
+ var parsedValue grpc.ChecksumType
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := grpc.ChecksumType_value[v]; ok {
+ parsedValue = grpc.ChecksumType(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = grpc.ChecksumType(vv)
+ case float64:
+ parsedValue = grpc.ChecksumType(v)
+ }
+ f = parsedValue
+ x.Type = f
+ }
+ case "hashList":
+ {
+ var f []byte
+ var list [][]byte
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Bytes()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.HashList = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type GetRangeHashResponse struct {
+ Body *GetRangeHashResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*GetRangeHashResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*GetRangeHashResponse)(nil)
+ _ json.Marshaler = (*GetRangeHashResponse)(nil)
+ _ json.Unmarshaler = (*GetRangeHashResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *GetRangeHashResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *GetRangeHashResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *GetRangeHashResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *GetRangeHashResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *GetRangeHashResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *GetRangeHashResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "GetRangeHashResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(GetRangeHashResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *GetRangeHashResponse) GetBody() *GetRangeHashResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *GetRangeHashResponse) SetBody(v *GetRangeHashResponse_Body) {
+ x.Body = v
+}
+func (x *GetRangeHashResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *GetRangeHashResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *GetRangeHashResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *GetRangeHashResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *GetRangeHashResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *GetRangeHashResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *GetRangeHashResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *GetRangeHashResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *GetRangeHashResponse_Body
+ f = new(GetRangeHashResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutSingleRequest_Body struct {
+ Object *Object `json:"object"`
+ CopiesNumber []uint32 `json:"copiesNumber"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutSingleRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutSingleRequest_Body)(nil)
+ _ json.Marshaler = (*PutSingleRequest_Body)(nil)
+ _ json.Unmarshaler = (*PutSingleRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutSingleRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ var n int
+ size += proto.NestedStructureSize(1, x.Object)
+ n, _ = proto.RepeatedUInt32Size(2, x.CopiesNumber)
+ size += n
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutSingleRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutSingleRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Object != nil && x.Object.StableSize() != 0 {
+ x.Object.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if len(x.CopiesNumber) != 0 {
+ mm.AppendUint32s(2, x.CopiesNumber)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutSingleRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutSingleRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Object
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Object")
+ }
+ x.Object = new(Object)
+ if err := x.Object.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // CopiesNumber
+ data, ok := fc.UnpackUint32s(nil)
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "CopiesNumber")
+ }
+ x.CopiesNumber = data
+ }
+ }
+ return nil
+}
+func (x *PutSingleRequest_Body) GetObject() *Object {
+ if x != nil {
+ return x.Object
+ }
+ return nil
+}
+func (x *PutSingleRequest_Body) SetObject(v *Object) {
+ x.Object = v
+}
+func (x *PutSingleRequest_Body) GetCopiesNumber() []uint32 {
+ if x != nil {
+ return x.CopiesNumber
+ }
+ return nil
+}
+func (x *PutSingleRequest_Body) SetCopiesNumber(v []uint32) {
+ x.CopiesNumber = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutSingleRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutSingleRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"object\":"
+ out.RawString(prefix[1:])
+ x.Object.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"copiesNumber\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.CopiesNumber {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint32(x.CopiesNumber[i])
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutSingleRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutSingleRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "object":
+ {
+ var f *Object
+ f = new(Object)
+ f.UnmarshalEasyJSON(in)
+ x.Object = f
+ }
+ case "copiesNumber":
+ {
+ var f uint32
+ var list []uint32
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Uint32()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.CopiesNumber = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutSingleRequest struct {
+ Body *PutSingleRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutSingleRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutSingleRequest)(nil)
+ _ json.Marshaler = (*PutSingleRequest)(nil)
+ _ json.Unmarshaler = (*PutSingleRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutSingleRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *PutSingleRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *PutSingleRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutSingleRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutSingleRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutSingleRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutSingleRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(PutSingleRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PutSingleRequest) GetBody() *PutSingleRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *PutSingleRequest) SetBody(v *PutSingleRequest_Body) {
+ x.Body = v
+}
+func (x *PutSingleRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *PutSingleRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *PutSingleRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *PutSingleRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutSingleRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutSingleRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutSingleRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutSingleRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *PutSingleRequest_Body
+ f = new(PutSingleRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutSingleResponse_Body struct {
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutSingleResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutSingleResponse_Body)(nil)
+ _ json.Marshaler = (*PutSingleResponse_Body)(nil)
+ _ json.Unmarshaler = (*PutSingleResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutSingleResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutSingleResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutSingleResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutSingleResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutSingleResponse_Body")
+ }
+ switch fc.FieldNum {
+ }
+ }
+ return nil
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutSingleResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutSingleResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutSingleResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutSingleResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PutSingleResponse struct {
+ Body *PutSingleResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PutSingleResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*PutSingleResponse)(nil)
+ _ json.Marshaler = (*PutSingleResponse)(nil)
+ _ json.Unmarshaler = (*PutSingleResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PutSingleResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *PutSingleResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *PutSingleResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PutSingleResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PutSingleResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PutSingleResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PutSingleResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(PutSingleResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PutSingleResponse) GetBody() *PutSingleResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *PutSingleResponse) SetBody(v *PutSingleResponse_Body) {
+ x.Body = v
+}
+func (x *PutSingleResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *PutSingleResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *PutSingleResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *PutSingleResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PutSingleResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PutSingleResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PutSingleResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PutSingleResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *PutSingleResponse_Body
+ f = new(PutSingleResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PatchRequest_Body_Patch struct {
+ SourceRange *Range `json:"sourceRange"`
+ Chunk []byte `json:"chunk"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PatchRequest_Body_Patch)(nil)
+ _ encoding.ProtoUnmarshaler = (*PatchRequest_Body_Patch)(nil)
+ _ json.Marshaler = (*PatchRequest_Body_Patch)(nil)
+ _ json.Unmarshaler = (*PatchRequest_Body_Patch)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PatchRequest_Body_Patch) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.SourceRange)
+ size += proto.BytesSize(2, x.Chunk)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PatchRequest_Body_Patch) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PatchRequest_Body_Patch) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.SourceRange != nil && x.SourceRange.StableSize() != 0 {
+ x.SourceRange.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if len(x.Chunk) != 0 {
+ mm.AppendBytes(2, x.Chunk)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PatchRequest_Body_Patch) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PatchRequest_Body_Patch")
+ }
+ switch fc.FieldNum {
+ case 1: // SourceRange
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SourceRange")
+ }
+ x.SourceRange = new(Range)
+ if err := x.SourceRange.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Chunk
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Chunk")
+ }
+ x.Chunk = data
+ }
+ }
+ return nil
+}
+func (x *PatchRequest_Body_Patch) GetSourceRange() *Range {
+ if x != nil {
+ return x.SourceRange
+ }
+ return nil
+}
+func (x *PatchRequest_Body_Patch) SetSourceRange(v *Range) {
+ x.SourceRange = v
+}
+func (x *PatchRequest_Body_Patch) GetChunk() []byte {
+ if x != nil {
+ return x.Chunk
+ }
+ return nil
+}
+func (x *PatchRequest_Body_Patch) SetChunk(v []byte) {
+ x.Chunk = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PatchRequest_Body_Patch) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PatchRequest_Body_Patch) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"sourceRange\":"
+ out.RawString(prefix[1:])
+ x.SourceRange.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"chunk\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Chunk)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PatchRequest_Body_Patch) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PatchRequest_Body_Patch) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "sourceRange":
+ {
+ var f *Range
+ f = new(Range)
+ f.UnmarshalEasyJSON(in)
+ x.SourceRange = f
+ }
+ case "chunk":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Chunk = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PatchRequest_Body struct {
+ Address *grpc.Address `json:"address"`
+ NewAttributes []*Header_Attribute `json:"newAttributes"`
+ ReplaceAttributes bool `json:"replaceAttributes"`
+ Patch *PatchRequest_Body_Patch `json:"patch"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PatchRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*PatchRequest_Body)(nil)
+ _ json.Marshaler = (*PatchRequest_Body)(nil)
+ _ json.Unmarshaler = (*PatchRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PatchRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Address)
+ for i := range x.NewAttributes {
+ size += proto.NestedStructureSize(2, x.NewAttributes[i])
+ }
+ size += proto.BoolSize(3, x.ReplaceAttributes)
+ size += proto.NestedStructureSize(4, x.Patch)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PatchRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PatchRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Address != nil && x.Address.StableSize() != 0 {
+ x.Address.EmitProtobuf(mm.AppendMessage(1))
+ }
+ for i := range x.NewAttributes {
+ if x.NewAttributes[i] != nil && x.NewAttributes[i].StableSize() != 0 {
+ x.NewAttributes[i].EmitProtobuf(mm.AppendMessage(2))
+ }
+ }
+ if x.ReplaceAttributes {
+ mm.AppendBool(3, x.ReplaceAttributes)
+ }
+ if x.Patch != nil && x.Patch.StableSize() != 0 {
+ x.Patch.EmitProtobuf(mm.AppendMessage(4))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PatchRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PatchRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Address
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Address")
+ }
+ x.Address = new(grpc.Address)
+ if err := x.Address.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // NewAttributes
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "NewAttributes")
+ }
+ x.NewAttributes = append(x.NewAttributes, new(Header_Attribute))
+ ff := x.NewAttributes[len(x.NewAttributes)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // ReplaceAttributes
+ data, ok := fc.Bool()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ReplaceAttributes")
+ }
+ x.ReplaceAttributes = data
+ case 4: // Patch
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Patch")
+ }
+ x.Patch = new(PatchRequest_Body_Patch)
+ if err := x.Patch.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PatchRequest_Body) GetAddress() *grpc.Address {
+ if x != nil {
+ return x.Address
+ }
+ return nil
+}
+func (x *PatchRequest_Body) SetAddress(v *grpc.Address) {
+ x.Address = v
+}
+func (x *PatchRequest_Body) GetNewAttributes() []*Header_Attribute {
+ if x != nil {
+ return x.NewAttributes
+ }
+ return nil
+}
+func (x *PatchRequest_Body) SetNewAttributes(v []*Header_Attribute) {
+ x.NewAttributes = v
+}
+func (x *PatchRequest_Body) GetReplaceAttributes() bool {
+ if x != nil {
+ return x.ReplaceAttributes
+ }
+ return false
+}
+func (x *PatchRequest_Body) SetReplaceAttributes(v bool) {
+ x.ReplaceAttributes = v
+}
+func (x *PatchRequest_Body) GetPatch() *PatchRequest_Body_Patch {
+ if x != nil {
+ return x.Patch
+ }
+ return nil
+}
+func (x *PatchRequest_Body) SetPatch(v *PatchRequest_Body_Patch) {
+ x.Patch = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PatchRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PatchRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"address\":"
+ out.RawString(prefix[1:])
+ x.Address.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"newAttributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.NewAttributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.NewAttributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"replaceAttributes\":"
+ out.RawString(prefix)
+ out.Bool(x.ReplaceAttributes)
+ }
+ {
+ const prefix string = ",\"patch\":"
+ out.RawString(prefix)
+ x.Patch.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PatchRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PatchRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "address":
+ {
+ var f *grpc.Address
+ f = new(grpc.Address)
+ f.UnmarshalEasyJSON(in)
+ x.Address = f
+ }
+ case "newAttributes":
+ {
+ var f *Header_Attribute
+ var list []*Header_Attribute
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Header_Attribute)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.NewAttributes = list
+ in.Delim(']')
+ }
+ case "replaceAttributes":
+ {
+ var f bool
+ f = in.Bool()
+ x.ReplaceAttributes = f
+ }
+ case "patch":
+ {
+ var f *PatchRequest_Body_Patch
+ f = new(PatchRequest_Body_Patch)
+ f.UnmarshalEasyJSON(in)
+ x.Patch = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PatchRequest struct {
+ Body *PatchRequest_Body `json:"body"`
+ MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PatchRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*PatchRequest)(nil)
+ _ json.Marshaler = (*PatchRequest)(nil)
+ _ json.Unmarshaler = (*PatchRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PatchRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *PatchRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *PatchRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PatchRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PatchRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PatchRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PatchRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(PatchRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PatchRequest) GetBody() *PatchRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *PatchRequest) SetBody(v *PatchRequest_Body) {
+ x.Body = v
+}
+func (x *PatchRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *PatchRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *PatchRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *PatchRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PatchRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PatchRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PatchRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PatchRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *PatchRequest_Body
+ f = new(PatchRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.RequestMetaHeader
+ f = new(grpc1.RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.RequestVerificationHeader
+ f = new(grpc1.RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PatchResponse_Body struct {
+ ObjectId *grpc.ObjectID `json:"objectId"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PatchResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*PatchResponse_Body)(nil)
+ _ json.Marshaler = (*PatchResponse_Body)(nil)
+ _ json.Unmarshaler = (*PatchResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PatchResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ObjectId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PatchResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PatchResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PatchResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PatchResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // ObjectId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ObjectId")
+ }
+ x.ObjectId = new(grpc.ObjectID)
+ if err := x.ObjectId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PatchResponse_Body) GetObjectId() *grpc.ObjectID {
+ if x != nil {
+ return x.ObjectId
+ }
+ return nil
+}
+func (x *PatchResponse_Body) SetObjectId(v *grpc.ObjectID) {
+ x.ObjectId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PatchResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PatchResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"objectId\":"
+ out.RawString(prefix[1:])
+ x.ObjectId.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PatchResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PatchResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "objectId":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.ObjectId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type PatchResponse struct {
+ Body *PatchResponse_Body `json:"body"`
+ MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*PatchResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*PatchResponse)(nil)
+ _ json.Marshaler = (*PatchResponse)(nil)
+ _ json.Unmarshaler = (*PatchResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *PatchResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *PatchResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *PatchResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *PatchResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *PatchResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *PatchResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "PatchResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(PatchResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(grpc1.ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *PatchResponse) GetBody() *PatchResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *PatchResponse) SetBody(v *PatchResponse_Body) {
+ x.Body = v
+}
+func (x *PatchResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *PatchResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *PatchResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *PatchResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *PatchResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *PatchResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *PatchResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *PatchResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *PatchResponse_Body
+ f = new(PatchResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *grpc1.ResponseMetaHeader
+ f = new(grpc1.ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *grpc1.ResponseVerificationHeader
+ f = new(grpc1.ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/object/grpc/service_frostfs_fuzz.go b/object/grpc/service_frostfs_fuzz.go
new file mode 100644
index 0000000..f58ee01
--- /dev/null
+++ b/object/grpc/service_frostfs_fuzz.go
@@ -0,0 +1,387 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package object
+
+func DoFuzzProtoGetRequest(data []byte) int {
+ msg := new(GetRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetRequest(data []byte) int {
+ msg := new(GetRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoGetResponse(data []byte) int {
+ msg := new(GetResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetResponse(data []byte) int {
+ msg := new(GetResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoPutRequest(data []byte) int {
+ msg := new(PutRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONPutRequest(data []byte) int {
+ msg := new(PutRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoPutResponse(data []byte) int {
+ msg := new(PutResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONPutResponse(data []byte) int {
+ msg := new(PutResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoDeleteRequest(data []byte) int {
+ msg := new(DeleteRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONDeleteRequest(data []byte) int {
+ msg := new(DeleteRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoDeleteResponse(data []byte) int {
+ msg := new(DeleteResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONDeleteResponse(data []byte) int {
+ msg := new(DeleteResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoHeadRequest(data []byte) int {
+ msg := new(HeadRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONHeadRequest(data []byte) int {
+ msg := new(HeadRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoHeaderWithSignature(data []byte) int {
+ msg := new(HeaderWithSignature)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONHeaderWithSignature(data []byte) int {
+ msg := new(HeaderWithSignature)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoHeadResponse(data []byte) int {
+ msg := new(HeadResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONHeadResponse(data []byte) int {
+ msg := new(HeadResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoSearchRequest(data []byte) int {
+ msg := new(SearchRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONSearchRequest(data []byte) int {
+ msg := new(SearchRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoSearchResponse(data []byte) int {
+ msg := new(SearchResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONSearchResponse(data []byte) int {
+ msg := new(SearchResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoRange(data []byte) int {
+ msg := new(Range)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONRange(data []byte) int {
+ msg := new(Range)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoGetRangeRequest(data []byte) int {
+ msg := new(GetRangeRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetRangeRequest(data []byte) int {
+ msg := new(GetRangeRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoGetRangeResponse(data []byte) int {
+ msg := new(GetRangeResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetRangeResponse(data []byte) int {
+ msg := new(GetRangeResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoGetRangeHashRequest(data []byte) int {
+ msg := new(GetRangeHashRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetRangeHashRequest(data []byte) int {
+ msg := new(GetRangeHashRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoGetRangeHashResponse(data []byte) int {
+ msg := new(GetRangeHashResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONGetRangeHashResponse(data []byte) int {
+ msg := new(GetRangeHashResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoPutSingleRequest(data []byte) int {
+ msg := new(PutSingleRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONPutSingleRequest(data []byte) int {
+ msg := new(PutSingleRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoPutSingleResponse(data []byte) int {
+ msg := new(PutSingleResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONPutSingleResponse(data []byte) int {
+ msg := new(PutSingleResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoPatchRequest(data []byte) int {
+ msg := new(PatchRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONPatchRequest(data []byte) int {
+ msg := new(PatchRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoPatchResponse(data []byte) int {
+ msg := new(PatchResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONPatchResponse(data []byte) int {
+ msg := new(PatchResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/object/grpc/service_frostfs_test.go b/object/grpc/service_frostfs_test.go
new file mode 100644
index 0000000..cb4baeb
--- /dev/null
+++ b/object/grpc/service_frostfs_test.go
@@ -0,0 +1,211 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package object
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoGetRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetRequest(data)
+ })
+}
+func FuzzJSONGetRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetRequest(data)
+ })
+}
+func FuzzProtoGetResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetResponse(data)
+ })
+}
+func FuzzJSONGetResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetResponse(data)
+ })
+}
+func FuzzProtoPutRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoPutRequest(data)
+ })
+}
+func FuzzJSONPutRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONPutRequest(data)
+ })
+}
+func FuzzProtoPutResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoPutResponse(data)
+ })
+}
+func FuzzJSONPutResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONPutResponse(data)
+ })
+}
+func FuzzProtoDeleteRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoDeleteRequest(data)
+ })
+}
+func FuzzJSONDeleteRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONDeleteRequest(data)
+ })
+}
+func FuzzProtoDeleteResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoDeleteResponse(data)
+ })
+}
+func FuzzJSONDeleteResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONDeleteResponse(data)
+ })
+}
+func FuzzProtoHeadRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoHeadRequest(data)
+ })
+}
+func FuzzJSONHeadRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONHeadRequest(data)
+ })
+}
+func FuzzProtoHeaderWithSignature(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoHeaderWithSignature(data)
+ })
+}
+func FuzzJSONHeaderWithSignature(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONHeaderWithSignature(data)
+ })
+}
+func FuzzProtoHeadResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoHeadResponse(data)
+ })
+}
+func FuzzJSONHeadResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONHeadResponse(data)
+ })
+}
+func FuzzProtoSearchRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoSearchRequest(data)
+ })
+}
+func FuzzJSONSearchRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONSearchRequest(data)
+ })
+}
+func FuzzProtoSearchResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoSearchResponse(data)
+ })
+}
+func FuzzJSONSearchResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONSearchResponse(data)
+ })
+}
+func FuzzProtoRange(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoRange(data)
+ })
+}
+func FuzzJSONRange(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONRange(data)
+ })
+}
+func FuzzProtoGetRangeRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetRangeRequest(data)
+ })
+}
+func FuzzJSONGetRangeRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetRangeRequest(data)
+ })
+}
+func FuzzProtoGetRangeResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetRangeResponse(data)
+ })
+}
+func FuzzJSONGetRangeResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetRangeResponse(data)
+ })
+}
+func FuzzProtoGetRangeHashRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetRangeHashRequest(data)
+ })
+}
+func FuzzJSONGetRangeHashRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetRangeHashRequest(data)
+ })
+}
+func FuzzProtoGetRangeHashResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoGetRangeHashResponse(data)
+ })
+}
+func FuzzJSONGetRangeHashResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONGetRangeHashResponse(data)
+ })
+}
+func FuzzProtoPutSingleRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoPutSingleRequest(data)
+ })
+}
+func FuzzJSONPutSingleRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONPutSingleRequest(data)
+ })
+}
+func FuzzProtoPutSingleResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoPutSingleResponse(data)
+ })
+}
+func FuzzJSONPutSingleResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONPutSingleResponse(data)
+ })
+}
+func FuzzProtoPatchRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoPatchRequest(data)
+ })
+}
+func FuzzJSONPatchRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONPatchRequest(data)
+ })
+}
+func FuzzProtoPatchResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoPatchResponse(data)
+ })
+}
+func FuzzJSONPatchResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONPatchResponse(data)
+ })
+}
diff --git a/object/grpc/service_grpc.pb.go b/object/grpc/service_grpc.pb.go
index 2494be9..687df99 100644
--- a/object/grpc/service_grpc.pb.go
+++ b/object/grpc/service_grpc.pb.go
@@ -331,7 +331,7 @@ type ObjectServiceClient interface {
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
// object not found in container;
// - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \
- // the requested object has been marked as deleted;
+ // the requested object has been marked as deleted.
// - **OUT_OF_RANGE** (2053, SECTION_OBJECT): \
// the requested range is out of bounds;
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
@@ -855,7 +855,7 @@ type ObjectServiceServer interface {
// - **OBJECT_NOT_FOUND** (2049, SECTION_OBJECT): \
// object not found in container;
// - **OBJECT_ALREADY_REMOVED** (2052, SECTION_OBJECT): \
- // the requested object has been marked as deleted;
+ // the requested object has been marked as deleted.
// - **OUT_OF_RANGE** (2053, SECTION_OBJECT): \
// the requested range is out of bounds;
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
diff --git a/object/grpc/status.pb.go b/object/grpc/status.pb.go
deleted file mode 100644
index 034fa1b..0000000
--- a/object/grpc/status.pb.go
+++ /dev/null
@@ -1,251 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.27.1
-// protoc v3.18.0
-// source: v2/object/grpc/status.proto
-
-package object
-
-import (
- reflect "reflect"
- sync "sync"
-
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-)
-
-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 StatusCommon int32
-
-const (
- StatusCommon_ACCESS_DENIED StatusCommon = 0
-)
-
-// Enum value maps for StatusCommon.
-var (
- StatusCommon_name = map[int32]string{
- 0: "ACCESS_DENIED",
- }
- StatusCommon_value = map[string]int32{
- "ACCESS_DENIED": 0,
- }
-)
-
-func (x StatusCommon) Enum() *StatusCommon {
- p := new(StatusCommon)
- *p = x
- return p
-}
-
-func (x StatusCommon) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (StatusCommon) Descriptor() protoreflect.EnumDescriptor {
- return file_v2_object_grpc_status_proto_enumTypes[0].Descriptor()
-}
-
-func (StatusCommon) Type() protoreflect.EnumType {
- return &file_v2_object_grpc_status_proto_enumTypes[0]
-}
-
-func (x StatusCommon) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use StatusCommon.Descriptor instead.
-func (StatusCommon) EnumDescriptor() ([]byte, []int) {
- return file_v2_object_grpc_status_proto_rawDescGZIP(), []int{0}
-}
-
-type StatusPut int32
-
-const (
- StatusPut_STATUS_PUT_INCOMPLETE StatusPut = 0
-)
-
-// Enum value maps for StatusPut.
-var (
- StatusPut_name = map[int32]string{
- 0: "STATUS_PUT_INCOMPLETE",
- }
- StatusPut_value = map[string]int32{
- "STATUS_PUT_INCOMPLETE": 0,
- }
-)
-
-func (x StatusPut) Enum() *StatusPut {
- p := new(StatusPut)
- *p = x
- return p
-}
-
-func (x StatusPut) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (StatusPut) Descriptor() protoreflect.EnumDescriptor {
- return file_v2_object_grpc_status_proto_enumTypes[1].Descriptor()
-}
-
-func (StatusPut) Type() protoreflect.EnumType {
- return &file_v2_object_grpc_status_proto_enumTypes[1]
-}
-
-func (x StatusPut) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use StatusPut.Descriptor instead.
-func (StatusPut) EnumDescriptor() ([]byte, []int) {
- return file_v2_object_grpc_status_proto_rawDescGZIP(), []int{1}
-}
-
-type PutIncompleteDetail struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- Statuses []*grpc.Status `protobuf:"bytes,1,rep,name=statuses,proto3" json:"statuses,omitempty"`
-}
-
-func (x *PutIncompleteDetail) Reset() {
- *x = PutIncompleteDetail{}
- if protoimpl.UnsafeEnabled {
- mi := &file_v2_object_grpc_status_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *PutIncompleteDetail) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*PutIncompleteDetail) ProtoMessage() {}
-
-func (x *PutIncompleteDetail) ProtoReflect() protoreflect.Message {
- mi := &file_v2_object_grpc_status_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 PutIncompleteDetail.ProtoReflect.Descriptor instead.
-func (*PutIncompleteDetail) Descriptor() ([]byte, []int) {
- return file_v2_object_grpc_status_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *PutIncompleteDetail) GetStatuses() []*grpc.Status {
- if x != nil {
- return x.Statuses
- }
- return nil
-}
-
-var File_v2_object_grpc_status_proto protoreflect.FileDescriptor
-
-var file_v2_object_grpc_status_proto_rawDesc = []byte{
- 0x0a, 0x1b, 0x76, 0x32, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63,
- 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x1a,
- 0x1a, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f,
- 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4b, 0x0a, 0x13, 0x50,
- 0x75, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x74, 0x61,
- 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x18, 0x01,
- 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x08,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x2a, 0x21, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x43, 0x43, 0x45,
- 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x00, 0x2a, 0x26, 0x0a, 0x09, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x75, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x41, 0x54,
- 0x55, 0x53, 0x5f, 0x50, 0x55, 0x54, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54,
- 0x45, 0x10, 0x00, 0x42, 0x56, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
- 0x6d, 0x2f, 0x6e, 0x73, 0x70, 0x63, 0x63, 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x6e, 0x65, 0x6f, 0x66,
- 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0xaa, 0x02,
- 0x1a, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
- 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x33,
-}
-
-var (
- file_v2_object_grpc_status_proto_rawDescOnce sync.Once
- file_v2_object_grpc_status_proto_rawDescData = file_v2_object_grpc_status_proto_rawDesc
-)
-
-func file_v2_object_grpc_status_proto_rawDescGZIP() []byte {
- file_v2_object_grpc_status_proto_rawDescOnce.Do(func() {
- file_v2_object_grpc_status_proto_rawDescData = protoimpl.X.CompressGZIP(file_v2_object_grpc_status_proto_rawDescData)
- })
- return file_v2_object_grpc_status_proto_rawDescData
-}
-
-var file_v2_object_grpc_status_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_v2_object_grpc_status_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_v2_object_grpc_status_proto_goTypes = []interface{}{
- (StatusCommon)(0), // 0: neo.fs.v2.object.StatusCommon
- (StatusPut)(0), // 1: neo.fs.v2.object.StatusPut
- (*PutIncompleteDetail)(nil), // 2: neo.fs.v2.object.PutIncompleteDetail
- (*grpc.Status)(nil), // 3: neo.fs.v2.status.Status
-}
-var file_v2_object_grpc_status_proto_depIdxs = []int32{
- 3, // 0: neo.fs.v2.object.PutIncompleteDetail.statuses:type_name -> neo.fs.v2.status.Status
- 1, // [1:1] is the sub-list for method output_type
- 1, // [1:1] is the sub-list for method input_type
- 1, // [1:1] is the sub-list for extension type_name
- 1, // [1:1] is the sub-list for extension extendee
- 0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_v2_object_grpc_status_proto_init() }
-func file_v2_object_grpc_status_proto_init() {
- if File_v2_object_grpc_status_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_v2_object_grpc_status_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*PutIncompleteDetail); 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_v2_object_grpc_status_proto_rawDesc,
- NumEnums: 2,
- NumMessages: 1,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_v2_object_grpc_status_proto_goTypes,
- DependencyIndexes: file_v2_object_grpc_status_proto_depIdxs,
- EnumInfos: file_v2_object_grpc_status_proto_enumTypes,
- MessageInfos: file_v2_object_grpc_status_proto_msgTypes,
- }.Build()
- File_v2_object_grpc_status_proto = out.File
- file_v2_object_grpc_status_proto_rawDesc = nil
- file_v2_object_grpc_status_proto_goTypes = nil
- file_v2_object_grpc_status_proto_depIdxs = nil
-}
diff --git a/object/grpc/types.go b/object/grpc/types.go
deleted file mode 100644
index 9a2cdea..0000000
--- a/object/grpc/types.go
+++ /dev/null
@@ -1,197 +0,0 @@
-package object
-
-import (
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
-)
-
-// SetKey sets key to the object attribute.
-func (m *Header_Attribute) SetKey(v string) {
- m.Key = v
-}
-
-// SetValue sets value of the object attribute.
-func (m *Header_Attribute) SetValue(v string) {
- m.Value = v
-}
-
-// SetParent sets identifier of the parent object.
-func (m *Header_Split) SetParent(v *refs.ObjectID) {
- m.Parent = v
-}
-
-// SetPrevious sets identifier of the previous object in split-chain.
-func (m *Header_Split) SetPrevious(v *refs.ObjectID) {
- m.Previous = v
-}
-
-// SetParentSignature sets signature of the parent object header.
-func (m *Header_Split) SetParentSignature(v *refs.Signature) {
- m.ParentSignature = v
-}
-
-// SetParentHeader sets parent header structure.
-func (m *Header_Split) SetParentHeader(v *Header) {
- m.ParentHeader = v
-}
-
-// SetChildren sets list of the identifiers of the child objects.
-func (m *Header_Split) SetChildren(v []*refs.ObjectID) {
- m.Children = v
-}
-
-// SetSplitId sets split ID of the object.
-func (m *Header_Split) SetSplitId(v []byte) {
- m.SplitId = v
-}
-
-// SetContainerId sets identifier of the container.
-func (m *Header) SetContainerId(v *refs.ContainerID) {
- m.ContainerId = v
-}
-
-// SetOwnerId sets identifier of the object owner.
-func (m *Header) SetOwnerId(v *refs.OwnerID) {
- m.OwnerId = v
-}
-
-// SetCreationEpoch sets creation epoch number.
-func (m *Header) SetCreationEpoch(v uint64) {
- m.CreationEpoch = v
-}
-
-// SetVersion sets version of the object format.
-func (m *Header) SetVersion(v *refs.Version) {
- m.Version = v
-}
-
-// SetPayloadLength sets length of the object payload.
-func (m *Header) SetPayloadLength(v uint64) {
- m.PayloadLength = v
-}
-
-// SetPayloadHash sets hash of the object payload.
-func (m *Header) SetPayloadHash(v *refs.Checksum) {
- m.PayloadHash = v
-}
-
-// SetObjectType sets type of the object.
-func (m *Header) SetObjectType(v ObjectType) {
- m.ObjectType = v
-}
-
-// SetHomomorphicHash sets homomorphic hash of the object payload.
-func (m *Header) SetHomomorphicHash(v *refs.Checksum) {
- m.HomomorphicHash = v
-}
-
-// SetSessionToken sets session token.
-func (m *Header) SetSessionToken(v *session.SessionToken) {
- m.SessionToken = v
-}
-
-// SetAttributes sets list of the object attributes.
-func (m *Header) SetAttributes(v []*Header_Attribute) {
- m.Attributes = v
-}
-
-// SetSplit sets split header.
-func (m *Header) SetSplit(v *Header_Split) {
- m.Split = v
-}
-
-// SetObjectId sets identifier of the object.
-func (m *Object) SetObjectId(v *refs.ObjectID) {
- m.ObjectId = v
-}
-
-// SetSignature sets signature of the object identifier.
-func (m *Object) SetSignature(v *refs.Signature) {
- m.Signature = v
-}
-
-// SetHeader sets header of the object.
-func (m *Object) SetHeader(v *Header) {
- m.Header = v
-}
-
-// SetPayload sets payload bytes of the object.
-func (m *Object) SetPayload(v []byte) {
- m.Payload = v
-}
-
-// SetVersion sets version of the object.
-func (m *ShortHeader) SetVersion(v *refs.Version) {
- m.Version = v
-}
-
-// SetCreationEpoch sets creation epoch number.
-func (m *ShortHeader) SetCreationEpoch(v uint64) {
- m.CreationEpoch = v
-}
-
-// SetOwnerId sets identifier of the object owner.
-func (m *ShortHeader) SetOwnerId(v *refs.OwnerID) {
- m.OwnerId = v
-}
-
-// SetObjectType sets type of the object.
-func (m *ShortHeader) SetObjectType(v ObjectType) {
- m.ObjectType = v
-}
-
-// SetPayloadLength sets length of the object payload.
-func (m *ShortHeader) SetPayloadLength(v uint64) {
- m.PayloadLength = v
-}
-
-// SetPayloadHash sets hash of the object payload.
-func (m *ShortHeader) SetPayloadHash(v *refs.Checksum) {
- m.PayloadHash = v
-}
-
-// SetHomomorphicHash sets homomorphic hash of the object payload.
-func (m *ShortHeader) SetHomomorphicHash(v *refs.Checksum) {
- m.HomomorphicHash = v
-}
-
-// SetSplitId sets id of split hierarchy.
-func (m *SplitInfo) SetSplitId(v []byte) {
- m.SplitId = v
-}
-
-// SetLastPart sets id of most right child in split hierarchy.
-func (m *SplitInfo) SetLastPart(v *refs.ObjectID) {
- m.LastPart = v
-}
-
-// SetLink sets id of linking object in split hierarchy.
-func (m *SplitInfo) SetLink(v *refs.ObjectID) {
- m.Link = v
-}
-
-// FromString parses ObjectType from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *ObjectType) FromString(s string) bool {
- i, ok := ObjectType_value[s]
- if ok {
- *x = ObjectType(i)
- }
-
- return ok
-}
-
-// FromString parses MatchType from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *MatchType) FromString(s string) bool {
- i, ok := MatchType_value[s]
- if ok {
- *x = MatchType(i)
- }
-
- return ok
-}
diff --git a/object/grpc/types.pb.go b/object/grpc/types.pb.go
deleted file mode 100644
index 2a5a2f9..0000000
--- a/object/grpc/types.pb.go
+++ /dev/null
@@ -1,1373 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: object/grpc/types.proto
-
-package object
-
-import (
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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 of the object payload content. Only `REGULAR` type objects can be split,
-// hence `TOMBSTONE` and `LOCK` payload is limited by the
-// maximum object size.
-//
-// String presentation of object type is the same as definition:
-// * REGULAR
-// * TOMBSTONE
-// * LOCK
-type ObjectType int32
-
-const (
- // Just a normal object
- ObjectType_REGULAR ObjectType = 0
- // Used internally to identify deleted objects
- ObjectType_TOMBSTONE ObjectType = 1
- // Object lock
- ObjectType_LOCK ObjectType = 3
-)
-
-// Enum value maps for ObjectType.
-var (
- ObjectType_name = map[int32]string{
- 0: "REGULAR",
- 1: "TOMBSTONE",
- 3: "LOCK",
- }
- ObjectType_value = map[string]int32{
- "REGULAR": 0,
- "TOMBSTONE": 1,
- "LOCK": 3,
- }
-)
-
-func (x ObjectType) Enum() *ObjectType {
- p := new(ObjectType)
- *p = x
- return p
-}
-
-func (x ObjectType) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (ObjectType) Descriptor() protoreflect.EnumDescriptor {
- return file_object_grpc_types_proto_enumTypes[0].Descriptor()
-}
-
-func (ObjectType) Type() protoreflect.EnumType {
- return &file_object_grpc_types_proto_enumTypes[0]
-}
-
-func (x ObjectType) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use ObjectType.Descriptor instead.
-func (ObjectType) EnumDescriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-// Type of match expression
-type MatchType int32
-
-const (
- // Unknown. Not used
- MatchType_MATCH_TYPE_UNSPECIFIED MatchType = 0
- // Full string match
- MatchType_STRING_EQUAL MatchType = 1
- // Full string mismatch
- MatchType_STRING_NOT_EQUAL MatchType = 2
- // Lack of key
- MatchType_NOT_PRESENT MatchType = 3
- // String prefix match
- MatchType_COMMON_PREFIX MatchType = 4
-)
-
-// Enum value maps for MatchType.
-var (
- MatchType_name = map[int32]string{
- 0: "MATCH_TYPE_UNSPECIFIED",
- 1: "STRING_EQUAL",
- 2: "STRING_NOT_EQUAL",
- 3: "NOT_PRESENT",
- 4: "COMMON_PREFIX",
- }
- MatchType_value = map[string]int32{
- "MATCH_TYPE_UNSPECIFIED": 0,
- "STRING_EQUAL": 1,
- "STRING_NOT_EQUAL": 2,
- "NOT_PRESENT": 3,
- "COMMON_PREFIX": 4,
- }
-)
-
-func (x MatchType) Enum() *MatchType {
- p := new(MatchType)
- *p = x
- return p
-}
-
-func (x MatchType) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (MatchType) Descriptor() protoreflect.EnumDescriptor {
- return file_object_grpc_types_proto_enumTypes[1].Descriptor()
-}
-
-func (MatchType) Type() protoreflect.EnumType {
- return &file_object_grpc_types_proto_enumTypes[1]
-}
-
-func (x MatchType) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use MatchType.Descriptor instead.
-func (MatchType) EnumDescriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-// Short header fields
-type ShortHeader struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Object format version. Effectively, the version of API library used to
- // create particular object.
- Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
- // Epoch when the object was created
- CreationEpoch uint64 `protobuf:"varint,2,opt,name=creation_epoch,json=creationEpoch,proto3" json:"creation_epoch,omitempty"`
- // Object's owner
- OwnerId *grpc.OwnerID `protobuf:"bytes,3,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
- // Type of the object payload content
- ObjectType ObjectType `protobuf:"varint,4,opt,name=object_type,json=objectType,proto3,enum=neo.fs.v2.object.ObjectType" json:"object_type,omitempty"`
- // Size of payload in bytes.
- // `0xFFFFFFFFFFFFFFFF` means `payload_length` is unknown
- PayloadLength uint64 `protobuf:"varint,5,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"`
- // Hash of payload bytes
- PayloadHash *grpc.Checksum `protobuf:"bytes,6,opt,name=payload_hash,json=payloadHash,proto3" json:"payload_hash,omitempty"`
- // Homomorphic hash of the object payload
- HomomorphicHash *grpc.Checksum `protobuf:"bytes,7,opt,name=homomorphic_hash,json=homomorphicHash,proto3" json:"homomorphic_hash,omitempty"`
-}
-
-func (x *ShortHeader) Reset() {
- *x = ShortHeader{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ShortHeader) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ShortHeader) ProtoMessage() {}
-
-func (x *ShortHeader) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_types_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 ShortHeader.ProtoReflect.Descriptor instead.
-func (*ShortHeader) Descriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ShortHeader) GetVersion() *grpc.Version {
- if x != nil {
- return x.Version
- }
- return nil
-}
-
-func (x *ShortHeader) GetCreationEpoch() uint64 {
- if x != nil {
- return x.CreationEpoch
- }
- return 0
-}
-
-func (x *ShortHeader) GetOwnerId() *grpc.OwnerID {
- if x != nil {
- return x.OwnerId
- }
- return nil
-}
-
-func (x *ShortHeader) GetObjectType() ObjectType {
- if x != nil {
- return x.ObjectType
- }
- return ObjectType_REGULAR
-}
-
-func (x *ShortHeader) GetPayloadLength() uint64 {
- if x != nil {
- return x.PayloadLength
- }
- return 0
-}
-
-func (x *ShortHeader) GetPayloadHash() *grpc.Checksum {
- if x != nil {
- return x.PayloadHash
- }
- return nil
-}
-
-func (x *ShortHeader) GetHomomorphicHash() *grpc.Checksum {
- if x != nil {
- return x.HomomorphicHash
- }
- return nil
-}
-
-// Object Header
-type Header struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Object format version. Effectively, the version of API library used to
- // create particular object
- Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
- // Object's container
- ContainerId *grpc.ContainerID `protobuf:"bytes,2,opt,name=container_id,json=containerID,proto3" json:"container_id,omitempty"`
- // Object's owner
- OwnerId *grpc.OwnerID `protobuf:"bytes,3,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
- // Object creation Epoch
- CreationEpoch uint64 `protobuf:"varint,4,opt,name=creation_epoch,json=creationEpoch,proto3" json:"creation_epoch,omitempty"`
- // Size of payload in bytes.
- // `0xFFFFFFFFFFFFFFFF` means `payload_length` is unknown.
- PayloadLength uint64 `protobuf:"varint,5,opt,name=payload_length,json=payloadLength,proto3" json:"payload_length,omitempty"`
- // Hash of payload bytes
- PayloadHash *grpc.Checksum `protobuf:"bytes,6,opt,name=payload_hash,json=payloadHash,proto3" json:"payload_hash,omitempty"`
- // Type of the object payload content
- ObjectType ObjectType `protobuf:"varint,7,opt,name=object_type,json=objectType,proto3,enum=neo.fs.v2.object.ObjectType" json:"object_type,omitempty"`
- // Homomorphic hash of the object payload
- HomomorphicHash *grpc.Checksum `protobuf:"bytes,8,opt,name=homomorphic_hash,json=homomorphicHash,proto3" json:"homomorphic_hash,omitempty"`
- // Session token, if it was used during Object creation. Need it to verify
- // integrity and authenticity out of Request scope.
- SessionToken *grpc1.SessionToken `protobuf:"bytes,9,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
- // User-defined object attributes
- Attributes []*Header_Attribute `protobuf:"bytes,10,rep,name=attributes,proto3" json:"attributes,omitempty"`
- // Position of the object in the split hierarchy
- Split *Header_Split `protobuf:"bytes,11,opt,name=split,proto3" json:"split,omitempty"`
- // Erasure code chunk information.
- Ec *Header_EC `protobuf:"bytes,12,opt,name=ec,proto3" json:"ec,omitempty"`
-}
-
-func (x *Header) Reset() {
- *x = Header{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_types_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Header) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Header) ProtoMessage() {}
-
-func (x *Header) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_types_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 Header.ProtoReflect.Descriptor instead.
-func (*Header) Descriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *Header) GetVersion() *grpc.Version {
- if x != nil {
- return x.Version
- }
- return nil
-}
-
-func (x *Header) GetContainerId() *grpc.ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-
-func (x *Header) GetOwnerId() *grpc.OwnerID {
- if x != nil {
- return x.OwnerId
- }
- return nil
-}
-
-func (x *Header) GetCreationEpoch() uint64 {
- if x != nil {
- return x.CreationEpoch
- }
- return 0
-}
-
-func (x *Header) GetPayloadLength() uint64 {
- if x != nil {
- return x.PayloadLength
- }
- return 0
-}
-
-func (x *Header) GetPayloadHash() *grpc.Checksum {
- if x != nil {
- return x.PayloadHash
- }
- return nil
-}
-
-func (x *Header) GetObjectType() ObjectType {
- if x != nil {
- return x.ObjectType
- }
- return ObjectType_REGULAR
-}
-
-func (x *Header) GetHomomorphicHash() *grpc.Checksum {
- if x != nil {
- return x.HomomorphicHash
- }
- return nil
-}
-
-func (x *Header) GetSessionToken() *grpc1.SessionToken {
- if x != nil {
- return x.SessionToken
- }
- return nil
-}
-
-func (x *Header) GetAttributes() []*Header_Attribute {
- if x != nil {
- return x.Attributes
- }
- return nil
-}
-
-func (x *Header) GetSplit() *Header_Split {
- if x != nil {
- return x.Split
- }
- return nil
-}
-
-func (x *Header) GetEc() *Header_EC {
- if x != nil {
- return x.Ec
- }
- return nil
-}
-
-// Object structure. Object is immutable and content-addressed. It means
-// `ObjectID` will change if the header or the payload changes. It's calculated
-// as a hash of header field which contains hash of the object's payload.
-//
-// For non-regular object types payload format depends on object type specified
-// in the header.
-type Object struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Object's unique identifier.
- ObjectId *grpc.ObjectID `protobuf:"bytes,1,opt,name=object_id,json=objectID,proto3" json:"object_id,omitempty"`
- // Signed object_id
- Signature *grpc.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
- // Object metadata headers
- Header *Header `protobuf:"bytes,3,opt,name=header,proto3" json:"header,omitempty"`
- // Payload bytes
- Payload []byte `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
-}
-
-func (x *Object) Reset() {
- *x = Object{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_types_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Object) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Object) ProtoMessage() {}
-
-func (x *Object) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_types_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 Object.ProtoReflect.Descriptor instead.
-func (*Object) Descriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *Object) GetObjectId() *grpc.ObjectID {
- if x != nil {
- return x.ObjectId
- }
- return nil
-}
-
-func (x *Object) GetSignature() *grpc.Signature {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-func (x *Object) GetHeader() *Header {
- if x != nil {
- return x.Header
- }
- return nil
-}
-
-func (x *Object) GetPayload() []byte {
- if x != nil {
- return x.Payload
- }
- return nil
-}
-
-// Meta information of split hierarchy for object assembly. With the last part
-// one can traverse linked list of split hierarchy back to the first part and
-// assemble the original object. With a linking object one can assemble an
-// object right from the object parts.
-type SplitInfo struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // 16 byte UUID used to identify the split object hierarchy parts.
- SplitId []byte `protobuf:"bytes,1,opt,name=split_id,json=splitId,proto3" json:"split_id,omitempty"`
- // The identifier of the last object in split hierarchy parts. It contains
- // split header with the original object header.
- LastPart *grpc.ObjectID `protobuf:"bytes,2,opt,name=last_part,json=lastPart,proto3" json:"last_part,omitempty"`
- // The identifier of a linking object for split hierarchy parts. It contains
- // split header with the original object header and a sorted list of
- // object parts.
- Link *grpc.ObjectID `protobuf:"bytes,3,opt,name=link,proto3" json:"link,omitempty"`
-}
-
-func (x *SplitInfo) Reset() {
- *x = SplitInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_types_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SplitInfo) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SplitInfo) ProtoMessage() {}
-
-func (x *SplitInfo) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_types_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 SplitInfo.ProtoReflect.Descriptor instead.
-func (*SplitInfo) Descriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *SplitInfo) GetSplitId() []byte {
- if x != nil {
- return x.SplitId
- }
- return nil
-}
-
-func (x *SplitInfo) GetLastPart() *grpc.ObjectID {
- if x != nil {
- return x.LastPart
- }
- return nil
-}
-
-func (x *SplitInfo) GetLink() *grpc.ObjectID {
- if x != nil {
- return x.Link
- }
- return nil
-}
-
-// Meta information for the erasure-encoded object.
-type ECInfo struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Chunk stored on the node.
- Chunks []*ECInfo_Chunk `protobuf:"bytes,1,rep,name=chunks,proto3" json:"chunks,omitempty"`
-}
-
-func (x *ECInfo) Reset() {
- *x = ECInfo{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_types_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ECInfo) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ECInfo) ProtoMessage() {}
-
-func (x *ECInfo) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_types_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 ECInfo.ProtoReflect.Descriptor instead.
-func (*ECInfo) Descriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *ECInfo) GetChunks() []*ECInfo_Chunk {
- if x != nil {
- return x.Chunks
- }
- return nil
-}
-
-// `Attribute` is a user-defined Key-Value metadata pair attached to an
-// object.
-//
-// Key name must be an object-unique valid UTF-8 string. Value can't be empty.
-// Objects with duplicated attribute names or attributes with empty values
-// will be considered invalid.
-//
-// There are some "well-known" attributes starting with `__SYSTEM__`
-// (`__NEOFS__` is deprecated) prefix that affect system behaviour:
-//
-// - [ __SYSTEM__UPLOAD_ID ] \
-// (`__NEOFS__UPLOAD_ID` is deprecated) \
-// Marks smaller parts of a split bigger object
-// - [ __SYSTEM__EXPIRATION_EPOCH ] \
-// (`__NEOFS__EXPIRATION_EPOCH` is deprecated) \
-// The epoch after which object with no LOCKs on it becomes unavailable.
-// Locked object continues to be available until each of the LOCKs expire.
-// - [ __SYSTEM__TICK_EPOCH ] \
-// (`__NEOFS__TICK_EPOCH` is deprecated) \
-// Decimal number that defines what epoch must produce
-// object notification with UTF-8 object address in a
-// body (`0` value produces notification right after
-// object put)
-// - [ __SYSTEM__TICK_TOPIC ] \
-// (`__NEOFS__TICK_TOPIC` is deprecated) \
-// UTF-8 string topic ID that is used for object notification
-//
-// And some well-known attributes used by applications only:
-//
-// - Name \
-// Human-friendly name
-// - FileName \
-// File name to be associated with the object on saving
-// - FilePath \
-// Full path to be associated with the object on saving. Should start with a
-// '/' and use '/' as a delimiting symbol. Trailing '/' should be
-// interpreted as a virtual directory marker. If an object has conflicting
-// FilePath and FileName, FilePath should have higher priority, because it
-// is used to construct the directory tree. FilePath with trailing '/' and
-// non-empty FileName attribute should not be used together.
-// - Timestamp \
-// User-defined local time of object creation in Unix Timestamp format
-// - Content-Type \
-// MIME Content Type of object's payload
-//
-// For detailed description of each well-known attribute please see the
-// corresponding section in NeoFS Technical Specification.
-type Header_Attribute struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // string key to the object attribute
- Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- // string value of the object attribute
- Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *Header_Attribute) Reset() {
- *x = Header_Attribute{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_types_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Header_Attribute) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Header_Attribute) ProtoMessage() {}
-
-func (x *Header_Attribute) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_types_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 Header_Attribute.ProtoReflect.Descriptor instead.
-func (*Header_Attribute) Descriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (x *Header_Attribute) GetKey() string {
- if x != nil {
- return x.Key
- }
- return ""
-}
-
-func (x *Header_Attribute) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-// Bigger objects can be split into a chain of smaller objects. Information
-// about inter-dependencies between spawned objects and how to re-construct
-// the original one is in the `Split` headers. Parent and children objects
-// must be within the same container.
-type Header_Split struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier of the origin object. Known only to the minor child.
- Parent *grpc.ObjectID `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
- // Identifier of the left split neighbor
- Previous *grpc.ObjectID `protobuf:"bytes,2,opt,name=previous,proto3" json:"previous,omitempty"`
- // `signature` field of the parent object. Used to reconstruct parent.
- ParentSignature *grpc.Signature `protobuf:"bytes,3,opt,name=parent_signature,json=parentSignature,proto3" json:"parent_signature,omitempty"`
- // `header` field of the parent object. Used to reconstruct parent.
- ParentHeader *Header `protobuf:"bytes,4,opt,name=parent_header,json=parentHeader,proto3" json:"parent_header,omitempty"`
- // List of identifiers of the objects generated by splitting current one.
- Children []*grpc.ObjectID `protobuf:"bytes,5,rep,name=children,proto3" json:"children,omitempty"`
- // 16 byte UUIDv4 used to identify the split object hierarchy parts. Must be
- // unique inside container. All objects participating in the split must have
- // the same `split_id` value.
- SplitId []byte `protobuf:"bytes,6,opt,name=split_id,json=splitID,proto3" json:"split_id,omitempty"`
-}
-
-func (x *Header_Split) Reset() {
- *x = Header_Split{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_types_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Header_Split) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Header_Split) ProtoMessage() {}
-
-func (x *Header_Split) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_types_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 Header_Split.ProtoReflect.Descriptor instead.
-func (*Header_Split) Descriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{1, 1}
-}
-
-func (x *Header_Split) GetParent() *grpc.ObjectID {
- if x != nil {
- return x.Parent
- }
- return nil
-}
-
-func (x *Header_Split) GetPrevious() *grpc.ObjectID {
- if x != nil {
- return x.Previous
- }
- return nil
-}
-
-func (x *Header_Split) GetParentSignature() *grpc.Signature {
- if x != nil {
- return x.ParentSignature
- }
- return nil
-}
-
-func (x *Header_Split) GetParentHeader() *Header {
- if x != nil {
- return x.ParentHeader
- }
- return nil
-}
-
-func (x *Header_Split) GetChildren() []*grpc.ObjectID {
- if x != nil {
- return x.Children
- }
- return nil
-}
-
-func (x *Header_Split) GetSplitId() []byte {
- if x != nil {
- return x.SplitId
- }
- return nil
-}
-
-// Erasure code can be applied to any object.
-// Information about encoded object structure is stored in `EC` header.
-// All objects belonging to a single EC group have the same `parent` field.
-type Header_EC struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier of the origin object. Known to all chunks.
- Parent *grpc.ObjectID `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
- // Index of this chunk.
- Index uint32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
- // Total number of chunks in this split.
- Total uint32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"`
- // Total length of a parent header. Used to trim padding zeroes.
- HeaderLength uint32 `protobuf:"varint,4,opt,name=header_length,json=headerLength,proto3" json:"header_length,omitempty"`
- // Chunk of a parent header.
- Header []byte `protobuf:"bytes,5,opt,name=header,proto3" json:"header,omitempty"`
- // As the origin object is EC-splitted its identifier is known to all
- // chunks as parent. But parent itself can be a part of Split (does not
- // relate to EC-split). In this case parent_split_id should be set.
- ParentSplitId []byte `protobuf:"bytes,6,opt,name=parent_split_id,json=parentSplitID,proto3" json:"parent_split_id,omitempty"`
- // EC-parent's parent ID. parent_split_parent_id is set if EC-parent,
- // itself, is a part of Split and if an object ID of its parent is
- // presented. The field allows to determine how EC-chunk is placed in Split
- // hierarchy.
- ParentSplitParentId *grpc.ObjectID `protobuf:"bytes,7,opt,name=parent_split_parent_id,json=parentSplitParentID,proto3" json:"parent_split_parent_id,omitempty"`
- // EC parent's attributes.
- ParentAttributes []*Header_Attribute `protobuf:"bytes,8,rep,name=parent_attributes,json=parentAttributes,proto3" json:"parent_attributes,omitempty"`
-}
-
-func (x *Header_EC) Reset() {
- *x = Header_EC{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_types_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Header_EC) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Header_EC) ProtoMessage() {}
-
-func (x *Header_EC) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_types_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 Header_EC.ProtoReflect.Descriptor instead.
-func (*Header_EC) Descriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{1, 2}
-}
-
-func (x *Header_EC) GetParent() *grpc.ObjectID {
- if x != nil {
- return x.Parent
- }
- return nil
-}
-
-func (x *Header_EC) GetIndex() uint32 {
- if x != nil {
- return x.Index
- }
- return 0
-}
-
-func (x *Header_EC) GetTotal() uint32 {
- if x != nil {
- return x.Total
- }
- return 0
-}
-
-func (x *Header_EC) GetHeaderLength() uint32 {
- if x != nil {
- return x.HeaderLength
- }
- return 0
-}
-
-func (x *Header_EC) GetHeader() []byte {
- if x != nil {
- return x.Header
- }
- return nil
-}
-
-func (x *Header_EC) GetParentSplitId() []byte {
- if x != nil {
- return x.ParentSplitId
- }
- return nil
-}
-
-func (x *Header_EC) GetParentSplitParentId() *grpc.ObjectID {
- if x != nil {
- return x.ParentSplitParentId
- }
- return nil
-}
-
-func (x *Header_EC) GetParentAttributes() []*Header_Attribute {
- if x != nil {
- return x.ParentAttributes
- }
- return nil
-}
-
-type ECInfo_Chunk struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Object ID of the chunk.
- Id *grpc.ObjectID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
- // Index of the chunk.
- Index uint32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
- // Total number of chunks in this split.
- Total uint32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"`
-}
-
-func (x *ECInfo_Chunk) Reset() {
- *x = ECInfo_Chunk{}
- if protoimpl.UnsafeEnabled {
- mi := &file_object_grpc_types_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ECInfo_Chunk) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ECInfo_Chunk) ProtoMessage() {}
-
-func (x *ECInfo_Chunk) ProtoReflect() protoreflect.Message {
- mi := &file_object_grpc_types_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 ECInfo_Chunk.ProtoReflect.Descriptor instead.
-func (*ECInfo_Chunk) Descriptor() ([]byte, []int) {
- return file_object_grpc_types_proto_rawDescGZIP(), []int{4, 0}
-}
-
-func (x *ECInfo_Chunk) GetId() *grpc.ObjectID {
- if x != nil {
- return x.Id
- }
- return nil
-}
-
-func (x *ECInfo_Chunk) GetIndex() uint32 {
- if x != nil {
- return x.Index
- }
- return 0
-}
-
-func (x *ECInfo_Chunk) GetTotal() uint32 {
- if x != nil {
- return x.Total
- }
- return 0
-}
-
-var File_object_grpc_types_proto protoreflect.FileDescriptor
-
-var file_object_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x17, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x15, 0x72, 0x65, 0x66,
- 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x1a, 0x18, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63,
- 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x83, 0x03, 0x0a,
- 0x0b, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x07,
- 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x56,
- 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12,
- 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x70, 0x6f, 0x63,
- 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f,
- 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49,
- 0x44, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3d, 0x0a, 0x0b, 0x6f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32,
- 0x1c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x79,
- 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68,
- 0x12, 0x3b, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68,
- 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d,
- 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x43, 0x0a,
- 0x10, 0x68, 0x6f, 0x6d, 0x6f, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x68, 0x61, 0x73,
- 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75,
- 0x6d, 0x52, 0x0f, 0x68, 0x6f, 0x6d, 0x6f, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x48, 0x61,
- 0x73, 0x68, 0x22, 0x92, 0x0b, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x31, 0x0a,
- 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
- 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44,
- 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72,
- 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x6f, 0x77, 0x6e,
- 0x65, 0x72, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x72,
- 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x70,
- 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20,
- 0x01, 0x28, 0x04, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67,
- 0x74, 0x68, 0x12, 0x3b, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x68, 0x61,
- 0x73, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73,
- 0x75, 0x6d, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12,
- 0x3d, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x52, 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43,
- 0x0a, 0x10, 0x68, 0x6f, 0x6d, 0x6f, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x5f, 0x68, 0x61,
- 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73,
- 0x75, 0x6d, 0x52, 0x0f, 0x68, 0x6f, 0x6d, 0x6f, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x48,
- 0x61, 0x73, 0x68, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
- 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0c, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x42, 0x0a, 0x0a, 0x61, 0x74, 0x74,
- 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
- 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x34, 0x0a,
- 0x05, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
- 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x52, 0x05, 0x73, 0x70,
- 0x6c, 0x69, 0x74, 0x12, 0x2b, 0x0a, 0x02, 0x65, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x45, 0x43, 0x52, 0x02, 0x65, 0x63,
- 0x1a, 0x33, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a,
- 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
- 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xc5, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12,
- 0x30, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73,
- 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x70,
- 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
- 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0f, 0x70, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3d, 0x0a,
- 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c,
- 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x08,
- 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
- 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72,
- 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06,
- 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x44, 0x1a, 0xe7, 0x02,
- 0x0a, 0x02, 0x45, 0x43, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x06,
- 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05,
- 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, 0x74,
- 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e,
- 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
- 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f,
- 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
- 0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x44, 0x12, 0x4d, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e,
- 0x74, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69,
- 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49,
- 0x44, 0x52, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x61,
- 0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x4f, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
- 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x74, 0x74, 0x72,
- 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74,
- 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52,
- 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67,
- 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69,
- 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
- 0x72, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x8b,
- 0x01, 0x0a, 0x09, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08,
- 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
- 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f,
- 0x70, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65,
- 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x12, 0x2c,
- 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0x9f, 0x01, 0x0a,
- 0x06, 0x45, 0x43, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x75, 0x6e, 0x6b,
- 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x43, 0x49, 0x6e, 0x66,
- 0x6f, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x06, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x1a,
- 0x5d, 0x0a, 0x05, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x28, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x02,
- 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61,
- 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2a, 0x32,
- 0x0a, 0x0a, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07,
- 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x4f, 0x4d,
- 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x43, 0x4b,
- 0x10, 0x03, 0x2a, 0x73, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12,
- 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
- 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53,
- 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a,
- 0x10, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41,
- 0x4c, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45,
- 0x4e, 0x54, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x50,
- 0x52, 0x45, 0x46, 0x49, 0x58, 0x10, 0x04, 0x42, 0x61, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x2e, 0x66,
- 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65,
- 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73,
- 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
- 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0xaa, 0x02, 0x1a,
- 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e,
- 0x41, 0x50, 0x49, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
-}
-
-var (
- file_object_grpc_types_proto_rawDescOnce sync.Once
- file_object_grpc_types_proto_rawDescData = file_object_grpc_types_proto_rawDesc
-)
-
-func file_object_grpc_types_proto_rawDescGZIP() []byte {
- file_object_grpc_types_proto_rawDescOnce.Do(func() {
- file_object_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_object_grpc_types_proto_rawDescData)
- })
- return file_object_grpc_types_proto_rawDescData
-}
-
-var file_object_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_object_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
-var file_object_grpc_types_proto_goTypes = []interface{}{
- (ObjectType)(0), // 0: neo.fs.v2.object.ObjectType
- (MatchType)(0), // 1: neo.fs.v2.object.MatchType
- (*ShortHeader)(nil), // 2: neo.fs.v2.object.ShortHeader
- (*Header)(nil), // 3: neo.fs.v2.object.Header
- (*Object)(nil), // 4: neo.fs.v2.object.Object
- (*SplitInfo)(nil), // 5: neo.fs.v2.object.SplitInfo
- (*ECInfo)(nil), // 6: neo.fs.v2.object.ECInfo
- (*Header_Attribute)(nil), // 7: neo.fs.v2.object.Header.Attribute
- (*Header_Split)(nil), // 8: neo.fs.v2.object.Header.Split
- (*Header_EC)(nil), // 9: neo.fs.v2.object.Header.EC
- (*ECInfo_Chunk)(nil), // 10: neo.fs.v2.object.ECInfo.Chunk
- (*grpc.Version)(nil), // 11: neo.fs.v2.refs.Version
- (*grpc.OwnerID)(nil), // 12: neo.fs.v2.refs.OwnerID
- (*grpc.Checksum)(nil), // 13: neo.fs.v2.refs.Checksum
- (*grpc.ContainerID)(nil), // 14: neo.fs.v2.refs.ContainerID
- (*grpc1.SessionToken)(nil), // 15: neo.fs.v2.session.SessionToken
- (*grpc.ObjectID)(nil), // 16: neo.fs.v2.refs.ObjectID
- (*grpc.Signature)(nil), // 17: neo.fs.v2.refs.Signature
-}
-var file_object_grpc_types_proto_depIdxs = []int32{
- 11, // 0: neo.fs.v2.object.ShortHeader.version:type_name -> neo.fs.v2.refs.Version
- 12, // 1: neo.fs.v2.object.ShortHeader.owner_id:type_name -> neo.fs.v2.refs.OwnerID
- 0, // 2: neo.fs.v2.object.ShortHeader.object_type:type_name -> neo.fs.v2.object.ObjectType
- 13, // 3: neo.fs.v2.object.ShortHeader.payload_hash:type_name -> neo.fs.v2.refs.Checksum
- 13, // 4: neo.fs.v2.object.ShortHeader.homomorphic_hash:type_name -> neo.fs.v2.refs.Checksum
- 11, // 5: neo.fs.v2.object.Header.version:type_name -> neo.fs.v2.refs.Version
- 14, // 6: neo.fs.v2.object.Header.container_id:type_name -> neo.fs.v2.refs.ContainerID
- 12, // 7: neo.fs.v2.object.Header.owner_id:type_name -> neo.fs.v2.refs.OwnerID
- 13, // 8: neo.fs.v2.object.Header.payload_hash:type_name -> neo.fs.v2.refs.Checksum
- 0, // 9: neo.fs.v2.object.Header.object_type:type_name -> neo.fs.v2.object.ObjectType
- 13, // 10: neo.fs.v2.object.Header.homomorphic_hash:type_name -> neo.fs.v2.refs.Checksum
- 15, // 11: neo.fs.v2.object.Header.session_token:type_name -> neo.fs.v2.session.SessionToken
- 7, // 12: neo.fs.v2.object.Header.attributes:type_name -> neo.fs.v2.object.Header.Attribute
- 8, // 13: neo.fs.v2.object.Header.split:type_name -> neo.fs.v2.object.Header.Split
- 9, // 14: neo.fs.v2.object.Header.ec:type_name -> neo.fs.v2.object.Header.EC
- 16, // 15: neo.fs.v2.object.Object.object_id:type_name -> neo.fs.v2.refs.ObjectID
- 17, // 16: neo.fs.v2.object.Object.signature:type_name -> neo.fs.v2.refs.Signature
- 3, // 17: neo.fs.v2.object.Object.header:type_name -> neo.fs.v2.object.Header
- 16, // 18: neo.fs.v2.object.SplitInfo.last_part:type_name -> neo.fs.v2.refs.ObjectID
- 16, // 19: neo.fs.v2.object.SplitInfo.link:type_name -> neo.fs.v2.refs.ObjectID
- 10, // 20: neo.fs.v2.object.ECInfo.chunks:type_name -> neo.fs.v2.object.ECInfo.Chunk
- 16, // 21: neo.fs.v2.object.Header.Split.parent:type_name -> neo.fs.v2.refs.ObjectID
- 16, // 22: neo.fs.v2.object.Header.Split.previous:type_name -> neo.fs.v2.refs.ObjectID
- 17, // 23: neo.fs.v2.object.Header.Split.parent_signature:type_name -> neo.fs.v2.refs.Signature
- 3, // 24: neo.fs.v2.object.Header.Split.parent_header:type_name -> neo.fs.v2.object.Header
- 16, // 25: neo.fs.v2.object.Header.Split.children:type_name -> neo.fs.v2.refs.ObjectID
- 16, // 26: neo.fs.v2.object.Header.EC.parent:type_name -> neo.fs.v2.refs.ObjectID
- 16, // 27: neo.fs.v2.object.Header.EC.parent_split_parent_id:type_name -> neo.fs.v2.refs.ObjectID
- 7, // 28: neo.fs.v2.object.Header.EC.parent_attributes:type_name -> neo.fs.v2.object.Header.Attribute
- 16, // 29: neo.fs.v2.object.ECInfo.Chunk.id:type_name -> neo.fs.v2.refs.ObjectID
- 30, // [30:30] is the sub-list for method output_type
- 30, // [30:30] is the sub-list for method input_type
- 30, // [30:30] is the sub-list for extension type_name
- 30, // [30:30] is the sub-list for extension extendee
- 0, // [0:30] is the sub-list for field type_name
-}
-
-func init() { file_object_grpc_types_proto_init() }
-func file_object_grpc_types_proto_init() {
- if File_object_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_object_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ShortHeader); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Header); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Object); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SplitInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ECInfo); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Header_Attribute); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Header_Split); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Header_EC); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_object_grpc_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ECInfo_Chunk); 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_object_grpc_types_proto_rawDesc,
- NumEnums: 2,
- NumMessages: 9,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_object_grpc_types_proto_goTypes,
- DependencyIndexes: file_object_grpc_types_proto_depIdxs,
- EnumInfos: file_object_grpc_types_proto_enumTypes,
- MessageInfos: file_object_grpc_types_proto_msgTypes,
- }.Build()
- File_object_grpc_types_proto = out.File
- file_object_grpc_types_proto_rawDesc = nil
- file_object_grpc_types_proto_goTypes = nil
- file_object_grpc_types_proto_depIdxs = nil
-}
diff --git a/object/grpc/types_frostfs.pb.go b/object/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..492ee48
--- /dev/null
+++ b/object/grpc/types_frostfs.pb.go
@@ -0,0 +1,2621 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package object
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
+)
+
+type ObjectType int32
+
+const (
+ ObjectType_REGULAR ObjectType = 0
+ ObjectType_TOMBSTONE ObjectType = 1
+ ObjectType_LOCK ObjectType = 3
+)
+
+var (
+ ObjectType_name = map[int32]string{
+ 0: "REGULAR",
+ 1: "TOMBSTONE",
+ 3: "LOCK",
+ }
+ ObjectType_value = map[string]int32{
+ "REGULAR": 0,
+ "TOMBSTONE": 1,
+ "LOCK": 3,
+ }
+)
+
+func (x ObjectType) String() string {
+ if v, ok := ObjectType_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *ObjectType) FromString(s string) bool {
+ if v, ok := ObjectType_value[s]; ok {
+ *x = ObjectType(v)
+ return true
+ }
+ return false
+}
+
+type MatchType int32
+
+const (
+ MatchType_MATCH_TYPE_UNSPECIFIED MatchType = 0
+ MatchType_STRING_EQUAL MatchType = 1
+ MatchType_STRING_NOT_EQUAL MatchType = 2
+ MatchType_NOT_PRESENT MatchType = 3
+ MatchType_COMMON_PREFIX MatchType = 4
+)
+
+var (
+ MatchType_name = map[int32]string{
+ 0: "MATCH_TYPE_UNSPECIFIED",
+ 1: "STRING_EQUAL",
+ 2: "STRING_NOT_EQUAL",
+ 3: "NOT_PRESENT",
+ 4: "COMMON_PREFIX",
+ }
+ MatchType_value = map[string]int32{
+ "MATCH_TYPE_UNSPECIFIED": 0,
+ "STRING_EQUAL": 1,
+ "STRING_NOT_EQUAL": 2,
+ "NOT_PRESENT": 3,
+ "COMMON_PREFIX": 4,
+ }
+)
+
+func (x MatchType) String() string {
+ if v, ok := MatchType_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *MatchType) FromString(s string) bool {
+ if v, ok := MatchType_value[s]; ok {
+ *x = MatchType(v)
+ return true
+ }
+ return false
+}
+
+type ShortHeader struct {
+ Version *grpc.Version `json:"version"`
+ CreationEpoch uint64 `json:"creationEpoch"`
+ OwnerId *grpc.OwnerID `json:"ownerID"`
+ ObjectType ObjectType `json:"objectType"`
+ PayloadLength uint64 `json:"payloadLength"`
+ PayloadHash *grpc.Checksum `json:"payloadHash"`
+ HomomorphicHash *grpc.Checksum `json:"homomorphicHash"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ShortHeader)(nil)
+ _ encoding.ProtoUnmarshaler = (*ShortHeader)(nil)
+ _ json.Marshaler = (*ShortHeader)(nil)
+ _ json.Unmarshaler = (*ShortHeader)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ShortHeader) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Version)
+ size += proto.UInt64Size(2, x.CreationEpoch)
+ size += proto.NestedStructureSize(3, x.OwnerId)
+ size += proto.EnumSize(4, int32(x.ObjectType))
+ size += proto.UInt64Size(5, x.PayloadLength)
+ size += proto.NestedStructureSize(6, x.PayloadHash)
+ size += proto.NestedStructureSize(7, x.HomomorphicHash)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ShortHeader) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ShortHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Version != nil && x.Version.StableSize() != 0 {
+ x.Version.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.CreationEpoch != 0 {
+ mm.AppendUint64(2, x.CreationEpoch)
+ }
+ if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ x.OwnerId.EmitProtobuf(mm.AppendMessage(3))
+ }
+ if int32(x.ObjectType) != 0 {
+ mm.AppendInt32(4, int32(x.ObjectType))
+ }
+ if x.PayloadLength != 0 {
+ mm.AppendUint64(5, x.PayloadLength)
+ }
+ if x.PayloadHash != nil && x.PayloadHash.StableSize() != 0 {
+ x.PayloadHash.EmitProtobuf(mm.AppendMessage(6))
+ }
+ if x.HomomorphicHash != nil && x.HomomorphicHash.StableSize() != 0 {
+ x.HomomorphicHash.EmitProtobuf(mm.AppendMessage(7))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ShortHeader) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ShortHeader")
+ }
+ switch fc.FieldNum {
+ case 1: // Version
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Version")
+ }
+ x.Version = new(grpc.Version)
+ if err := x.Version.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // CreationEpoch
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "CreationEpoch")
+ }
+ x.CreationEpoch = data
+ case 3: // OwnerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OwnerId")
+ }
+ x.OwnerId = new(grpc.OwnerID)
+ if err := x.OwnerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // ObjectType
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ObjectType")
+ }
+ x.ObjectType = ObjectType(data)
+ case 5: // PayloadLength
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "PayloadLength")
+ }
+ x.PayloadLength = data
+ case 6: // PayloadHash
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "PayloadHash")
+ }
+ x.PayloadHash = new(grpc.Checksum)
+ if err := x.PayloadHash.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 7: // HomomorphicHash
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "HomomorphicHash")
+ }
+ x.HomomorphicHash = new(grpc.Checksum)
+ if err := x.HomomorphicHash.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ShortHeader) GetVersion() *grpc.Version {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+func (x *ShortHeader) SetVersion(v *grpc.Version) {
+ x.Version = v
+}
+func (x *ShortHeader) GetCreationEpoch() uint64 {
+ if x != nil {
+ return x.CreationEpoch
+ }
+ return 0
+}
+func (x *ShortHeader) SetCreationEpoch(v uint64) {
+ x.CreationEpoch = v
+}
+func (x *ShortHeader) GetOwnerId() *grpc.OwnerID {
+ if x != nil {
+ return x.OwnerId
+ }
+ return nil
+}
+func (x *ShortHeader) SetOwnerId(v *grpc.OwnerID) {
+ x.OwnerId = v
+}
+func (x *ShortHeader) GetObjectType() ObjectType {
+ if x != nil {
+ return x.ObjectType
+ }
+ return 0
+}
+func (x *ShortHeader) SetObjectType(v ObjectType) {
+ x.ObjectType = v
+}
+func (x *ShortHeader) GetPayloadLength() uint64 {
+ if x != nil {
+ return x.PayloadLength
+ }
+ return 0
+}
+func (x *ShortHeader) SetPayloadLength(v uint64) {
+ x.PayloadLength = v
+}
+func (x *ShortHeader) GetPayloadHash() *grpc.Checksum {
+ if x != nil {
+ return x.PayloadHash
+ }
+ return nil
+}
+func (x *ShortHeader) SetPayloadHash(v *grpc.Checksum) {
+ x.PayloadHash = v
+}
+func (x *ShortHeader) GetHomomorphicHash() *grpc.Checksum {
+ if x != nil {
+ return x.HomomorphicHash
+ }
+ return nil
+}
+func (x *ShortHeader) SetHomomorphicHash(v *grpc.Checksum) {
+ x.HomomorphicHash = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ShortHeader) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ShortHeader) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"version\":"
+ out.RawString(prefix[1:])
+ x.Version.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"creationEpoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.CreationEpoch)
+ }
+ {
+ const prefix string = ",\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"objectType\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.ObjectType))
+ }
+ {
+ const prefix string = ",\"payloadLength\":"
+ out.RawString(prefix)
+ out.Uint64(x.PayloadLength)
+ }
+ {
+ const prefix string = ",\"payloadHash\":"
+ out.RawString(prefix)
+ x.PayloadHash.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"homomorphicHash\":"
+ out.RawString(prefix)
+ x.HomomorphicHash.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ShortHeader) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ShortHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "version":
+ {
+ var f *grpc.Version
+ f = new(grpc.Version)
+ f.UnmarshalEasyJSON(in)
+ x.Version = f
+ }
+ case "creationEpoch":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.CreationEpoch = f
+ }
+ case "ownerID":
+ {
+ var f *grpc.OwnerID
+ f = new(grpc.OwnerID)
+ f.UnmarshalEasyJSON(in)
+ x.OwnerId = f
+ }
+ case "objectType":
+ {
+ var f ObjectType
+ var parsedValue ObjectType
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := ObjectType_value[v]; ok {
+ parsedValue = ObjectType(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = ObjectType(vv)
+ case float64:
+ parsedValue = ObjectType(v)
+ }
+ f = parsedValue
+ x.ObjectType = f
+ }
+ case "payloadLength":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.PayloadLength = f
+ }
+ case "payloadHash":
+ {
+ var f *grpc.Checksum
+ f = new(grpc.Checksum)
+ f.UnmarshalEasyJSON(in)
+ x.PayloadHash = f
+ }
+ case "homomorphicHash":
+ {
+ var f *grpc.Checksum
+ f = new(grpc.Checksum)
+ f.UnmarshalEasyJSON(in)
+ x.HomomorphicHash = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Header_Attribute struct {
+ Key string `json:"key"`
+ Value string `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Header_Attribute)(nil)
+ _ encoding.ProtoUnmarshaler = (*Header_Attribute)(nil)
+ _ json.Marshaler = (*Header_Attribute)(nil)
+ _ json.Unmarshaler = (*Header_Attribute)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Header_Attribute) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.StringSize(1, x.Key)
+ size += proto.StringSize(2, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Header_Attribute) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Header_Attribute) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Key) != 0 {
+ mm.AppendString(1, x.Key)
+ }
+ if len(x.Value) != 0 {
+ mm.AppendString(2, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Header_Attribute) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Header_Attribute")
+ }
+ switch fc.FieldNum {
+ case 1: // Key
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 2: // Value
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *Header_Attribute) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+func (x *Header_Attribute) SetKey(v string) {
+ x.Key = v
+}
+func (x *Header_Attribute) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+func (x *Header_Attribute) SetValue(v string) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Header_Attribute) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Header_Attribute) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix[1:])
+ out.String(x.Key)
+ }
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Header_Attribute) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Header_Attribute) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "key":
+ {
+ var f string
+ f = in.String()
+ x.Key = f
+ }
+ case "value":
+ {
+ var f string
+ f = in.String()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Header_Split struct {
+ Parent *grpc.ObjectID `json:"parent"`
+ Previous *grpc.ObjectID `json:"previous"`
+ ParentSignature *grpc.Signature `json:"parentSignature"`
+ ParentHeader *Header `json:"parentHeader"`
+ Children []*grpc.ObjectID `json:"children"`
+ SplitId []byte `json:"splitID"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Header_Split)(nil)
+ _ encoding.ProtoUnmarshaler = (*Header_Split)(nil)
+ _ json.Marshaler = (*Header_Split)(nil)
+ _ json.Unmarshaler = (*Header_Split)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Header_Split) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Parent)
+ size += proto.NestedStructureSize(2, x.Previous)
+ size += proto.NestedStructureSize(3, x.ParentSignature)
+ size += proto.NestedStructureSize(4, x.ParentHeader)
+ for i := range x.Children {
+ size += proto.NestedStructureSize(5, x.Children[i])
+ }
+ size += proto.BytesSize(6, x.SplitId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Header_Split) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Header_Split) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Parent != nil && x.Parent.StableSize() != 0 {
+ x.Parent.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Previous != nil && x.Previous.StableSize() != 0 {
+ x.Previous.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.ParentSignature != nil && x.ParentSignature.StableSize() != 0 {
+ x.ParentSignature.EmitProtobuf(mm.AppendMessage(3))
+ }
+ if x.ParentHeader != nil && x.ParentHeader.StableSize() != 0 {
+ x.ParentHeader.EmitProtobuf(mm.AppendMessage(4))
+ }
+ for i := range x.Children {
+ if x.Children[i] != nil && x.Children[i].StableSize() != 0 {
+ x.Children[i].EmitProtobuf(mm.AppendMessage(5))
+ }
+ }
+ if len(x.SplitId) != 0 {
+ mm.AppendBytes(6, x.SplitId)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Header_Split) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Header_Split")
+ }
+ switch fc.FieldNum {
+ case 1: // Parent
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Parent")
+ }
+ x.Parent = new(grpc.ObjectID)
+ if err := x.Parent.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Previous
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Previous")
+ }
+ x.Previous = new(grpc.ObjectID)
+ if err := x.Previous.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // ParentSignature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ParentSignature")
+ }
+ x.ParentSignature = new(grpc.Signature)
+ if err := x.ParentSignature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // ParentHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ParentHeader")
+ }
+ x.ParentHeader = new(Header)
+ if err := x.ParentHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 5: // Children
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Children")
+ }
+ x.Children = append(x.Children, new(grpc.ObjectID))
+ ff := x.Children[len(x.Children)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 6: // SplitId
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SplitId")
+ }
+ x.SplitId = data
+ }
+ }
+ return nil
+}
+func (x *Header_Split) GetParent() *grpc.ObjectID {
+ if x != nil {
+ return x.Parent
+ }
+ return nil
+}
+func (x *Header_Split) SetParent(v *grpc.ObjectID) {
+ x.Parent = v
+}
+func (x *Header_Split) GetPrevious() *grpc.ObjectID {
+ if x != nil {
+ return x.Previous
+ }
+ return nil
+}
+func (x *Header_Split) SetPrevious(v *grpc.ObjectID) {
+ x.Previous = v
+}
+func (x *Header_Split) GetParentSignature() *grpc.Signature {
+ if x != nil {
+ return x.ParentSignature
+ }
+ return nil
+}
+func (x *Header_Split) SetParentSignature(v *grpc.Signature) {
+ x.ParentSignature = v
+}
+func (x *Header_Split) GetParentHeader() *Header {
+ if x != nil {
+ return x.ParentHeader
+ }
+ return nil
+}
+func (x *Header_Split) SetParentHeader(v *Header) {
+ x.ParentHeader = v
+}
+func (x *Header_Split) GetChildren() []*grpc.ObjectID {
+ if x != nil {
+ return x.Children
+ }
+ return nil
+}
+func (x *Header_Split) SetChildren(v []*grpc.ObjectID) {
+ x.Children = v
+}
+func (x *Header_Split) GetSplitId() []byte {
+ if x != nil {
+ return x.SplitId
+ }
+ return nil
+}
+func (x *Header_Split) SetSplitId(v []byte) {
+ x.SplitId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Header_Split) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Header_Split) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"parent\":"
+ out.RawString(prefix[1:])
+ x.Parent.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"previous\":"
+ out.RawString(prefix)
+ x.Previous.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"parentSignature\":"
+ out.RawString(prefix)
+ x.ParentSignature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"parentHeader\":"
+ out.RawString(prefix)
+ x.ParentHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"children\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Children {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Children[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"splitID\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.SplitId)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Header_Split) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Header_Split) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "parent":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.Parent = f
+ }
+ case "previous":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.Previous = f
+ }
+ case "parentSignature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.ParentSignature = f
+ }
+ case "parentHeader":
+ {
+ var f *Header
+ f = new(Header)
+ f.UnmarshalEasyJSON(in)
+ x.ParentHeader = f
+ }
+ case "children":
+ {
+ var f *grpc.ObjectID
+ var list []*grpc.ObjectID
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Children = list
+ in.Delim(']')
+ }
+ case "splitID":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.SplitId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Header_EC struct {
+ Parent *grpc.ObjectID `json:"parent"`
+ Index uint32 `json:"index"`
+ Total uint32 `json:"total"`
+ HeaderLength uint32 `json:"headerLength"`
+ Header []byte `json:"header"`
+ ParentSplitId []byte `json:"parentSplitID"`
+ ParentSplitParentId *grpc.ObjectID `json:"parentSplitParentID"`
+ ParentAttributes []*Header_Attribute `json:"parentAttributes"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Header_EC)(nil)
+ _ encoding.ProtoUnmarshaler = (*Header_EC)(nil)
+ _ json.Marshaler = (*Header_EC)(nil)
+ _ json.Unmarshaler = (*Header_EC)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Header_EC) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Parent)
+ size += proto.UInt32Size(2, x.Index)
+ size += proto.UInt32Size(3, x.Total)
+ size += proto.UInt32Size(4, x.HeaderLength)
+ size += proto.BytesSize(5, x.Header)
+ size += proto.BytesSize(6, x.ParentSplitId)
+ size += proto.NestedStructureSize(7, x.ParentSplitParentId)
+ for i := range x.ParentAttributes {
+ size += proto.NestedStructureSize(8, x.ParentAttributes[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Header_EC) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Header_EC) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Parent != nil && x.Parent.StableSize() != 0 {
+ x.Parent.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Index != 0 {
+ mm.AppendUint32(2, x.Index)
+ }
+ if x.Total != 0 {
+ mm.AppendUint32(3, x.Total)
+ }
+ if x.HeaderLength != 0 {
+ mm.AppendUint32(4, x.HeaderLength)
+ }
+ if len(x.Header) != 0 {
+ mm.AppendBytes(5, x.Header)
+ }
+ if len(x.ParentSplitId) != 0 {
+ mm.AppendBytes(6, x.ParentSplitId)
+ }
+ if x.ParentSplitParentId != nil && x.ParentSplitParentId.StableSize() != 0 {
+ x.ParentSplitParentId.EmitProtobuf(mm.AppendMessage(7))
+ }
+ for i := range x.ParentAttributes {
+ if x.ParentAttributes[i] != nil && x.ParentAttributes[i].StableSize() != 0 {
+ x.ParentAttributes[i].EmitProtobuf(mm.AppendMessage(8))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Header_EC) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Header_EC")
+ }
+ switch fc.FieldNum {
+ case 1: // Parent
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Parent")
+ }
+ x.Parent = new(grpc.ObjectID)
+ if err := x.Parent.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Index
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Index")
+ }
+ x.Index = data
+ case 3: // Total
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Total")
+ }
+ x.Total = data
+ case 4: // HeaderLength
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "HeaderLength")
+ }
+ x.HeaderLength = data
+ case 5: // Header
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Header")
+ }
+ x.Header = data
+ case 6: // ParentSplitId
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ParentSplitId")
+ }
+ x.ParentSplitId = data
+ case 7: // ParentSplitParentId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ParentSplitParentId")
+ }
+ x.ParentSplitParentId = new(grpc.ObjectID)
+ if err := x.ParentSplitParentId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 8: // ParentAttributes
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ParentAttributes")
+ }
+ x.ParentAttributes = append(x.ParentAttributes, new(Header_Attribute))
+ ff := x.ParentAttributes[len(x.ParentAttributes)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *Header_EC) GetParent() *grpc.ObjectID {
+ if x != nil {
+ return x.Parent
+ }
+ return nil
+}
+func (x *Header_EC) SetParent(v *grpc.ObjectID) {
+ x.Parent = v
+}
+func (x *Header_EC) GetIndex() uint32 {
+ if x != nil {
+ return x.Index
+ }
+ return 0
+}
+func (x *Header_EC) SetIndex(v uint32) {
+ x.Index = v
+}
+func (x *Header_EC) GetTotal() uint32 {
+ if x != nil {
+ return x.Total
+ }
+ return 0
+}
+func (x *Header_EC) SetTotal(v uint32) {
+ x.Total = v
+}
+func (x *Header_EC) GetHeaderLength() uint32 {
+ if x != nil {
+ return x.HeaderLength
+ }
+ return 0
+}
+func (x *Header_EC) SetHeaderLength(v uint32) {
+ x.HeaderLength = v
+}
+func (x *Header_EC) GetHeader() []byte {
+ if x != nil {
+ return x.Header
+ }
+ return nil
+}
+func (x *Header_EC) SetHeader(v []byte) {
+ x.Header = v
+}
+func (x *Header_EC) GetParentSplitId() []byte {
+ if x != nil {
+ return x.ParentSplitId
+ }
+ return nil
+}
+func (x *Header_EC) SetParentSplitId(v []byte) {
+ x.ParentSplitId = v
+}
+func (x *Header_EC) GetParentSplitParentId() *grpc.ObjectID {
+ if x != nil {
+ return x.ParentSplitParentId
+ }
+ return nil
+}
+func (x *Header_EC) SetParentSplitParentId(v *grpc.ObjectID) {
+ x.ParentSplitParentId = v
+}
+func (x *Header_EC) GetParentAttributes() []*Header_Attribute {
+ if x != nil {
+ return x.ParentAttributes
+ }
+ return nil
+}
+func (x *Header_EC) SetParentAttributes(v []*Header_Attribute) {
+ x.ParentAttributes = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Header_EC) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Header_EC) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"parent\":"
+ out.RawString(prefix[1:])
+ x.Parent.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"index\":"
+ out.RawString(prefix)
+ out.Uint32(x.Index)
+ }
+ {
+ const prefix string = ",\"total\":"
+ out.RawString(prefix)
+ out.Uint32(x.Total)
+ }
+ {
+ const prefix string = ",\"headerLength\":"
+ out.RawString(prefix)
+ out.Uint32(x.HeaderLength)
+ }
+ {
+ const prefix string = ",\"header\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Header)
+ }
+ {
+ const prefix string = ",\"parentSplitID\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.ParentSplitId)
+ }
+ {
+ const prefix string = ",\"parentSplitParentID\":"
+ out.RawString(prefix)
+ x.ParentSplitParentId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"parentAttributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.ParentAttributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.ParentAttributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Header_EC) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Header_EC) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "parent":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.Parent = f
+ }
+ case "index":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Index = f
+ }
+ case "total":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Total = f
+ }
+ case "headerLength":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.HeaderLength = f
+ }
+ case "header":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Header = f
+ }
+ case "parentSplitID":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.ParentSplitId = f
+ }
+ case "parentSplitParentID":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.ParentSplitParentId = f
+ }
+ case "parentAttributes":
+ {
+ var f *Header_Attribute
+ var list []*Header_Attribute
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Header_Attribute)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.ParentAttributes = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Header struct {
+ Version *grpc.Version `json:"version"`
+ ContainerId *grpc.ContainerID `json:"containerID"`
+ OwnerId *grpc.OwnerID `json:"ownerID"`
+ CreationEpoch uint64 `json:"creationEpoch"`
+ PayloadLength uint64 `json:"payloadLength"`
+ PayloadHash *grpc.Checksum `json:"payloadHash"`
+ ObjectType ObjectType `json:"objectType"`
+ HomomorphicHash *grpc.Checksum `json:"homomorphicHash"`
+ SessionToken *grpc1.SessionToken `json:"sessionToken"`
+ Attributes []*Header_Attribute `json:"attributes"`
+ Split *Header_Split `json:"split"`
+ Ec *Header_EC `json:"ec"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Header)(nil)
+ _ encoding.ProtoUnmarshaler = (*Header)(nil)
+ _ json.Marshaler = (*Header)(nil)
+ _ json.Unmarshaler = (*Header)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Header) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Version)
+ size += proto.NestedStructureSize(2, x.ContainerId)
+ size += proto.NestedStructureSize(3, x.OwnerId)
+ size += proto.UInt64Size(4, x.CreationEpoch)
+ size += proto.UInt64Size(5, x.PayloadLength)
+ size += proto.NestedStructureSize(6, x.PayloadHash)
+ size += proto.EnumSize(7, int32(x.ObjectType))
+ size += proto.NestedStructureSize(8, x.HomomorphicHash)
+ size += proto.NestedStructureSize(9, x.SessionToken)
+ for i := range x.Attributes {
+ size += proto.NestedStructureSize(10, x.Attributes[i])
+ }
+ size += proto.NestedStructureSize(11, x.Split)
+ size += proto.NestedStructureSize(12, x.Ec)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Header) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Header) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Version != nil && x.Version.StableSize() != 0 {
+ x.Version.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ x.ContainerId.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ x.OwnerId.EmitProtobuf(mm.AppendMessage(3))
+ }
+ if x.CreationEpoch != 0 {
+ mm.AppendUint64(4, x.CreationEpoch)
+ }
+ if x.PayloadLength != 0 {
+ mm.AppendUint64(5, x.PayloadLength)
+ }
+ if x.PayloadHash != nil && x.PayloadHash.StableSize() != 0 {
+ x.PayloadHash.EmitProtobuf(mm.AppendMessage(6))
+ }
+ if int32(x.ObjectType) != 0 {
+ mm.AppendInt32(7, int32(x.ObjectType))
+ }
+ if x.HomomorphicHash != nil && x.HomomorphicHash.StableSize() != 0 {
+ x.HomomorphicHash.EmitProtobuf(mm.AppendMessage(8))
+ }
+ if x.SessionToken != nil && x.SessionToken.StableSize() != 0 {
+ x.SessionToken.EmitProtobuf(mm.AppendMessage(9))
+ }
+ for i := range x.Attributes {
+ if x.Attributes[i] != nil && x.Attributes[i].StableSize() != 0 {
+ x.Attributes[i].EmitProtobuf(mm.AppendMessage(10))
+ }
+ }
+ if x.Split != nil && x.Split.StableSize() != 0 {
+ x.Split.EmitProtobuf(mm.AppendMessage(11))
+ }
+ if x.Ec != nil && x.Ec.StableSize() != 0 {
+ x.Ec.EmitProtobuf(mm.AppendMessage(12))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Header) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Header")
+ }
+ switch fc.FieldNum {
+ case 1: // Version
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Version")
+ }
+ x.Version = new(grpc.Version)
+ if err := x.Version.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // ContainerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
+ }
+ x.ContainerId = new(grpc.ContainerID)
+ if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // OwnerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OwnerId")
+ }
+ x.OwnerId = new(grpc.OwnerID)
+ if err := x.OwnerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // CreationEpoch
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "CreationEpoch")
+ }
+ x.CreationEpoch = data
+ case 5: // PayloadLength
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "PayloadLength")
+ }
+ x.PayloadLength = data
+ case 6: // PayloadHash
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "PayloadHash")
+ }
+ x.PayloadHash = new(grpc.Checksum)
+ if err := x.PayloadHash.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 7: // ObjectType
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ObjectType")
+ }
+ x.ObjectType = ObjectType(data)
+ case 8: // HomomorphicHash
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "HomomorphicHash")
+ }
+ x.HomomorphicHash = new(grpc.Checksum)
+ if err := x.HomomorphicHash.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 9: // SessionToken
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SessionToken")
+ }
+ x.SessionToken = new(grpc1.SessionToken)
+ if err := x.SessionToken.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 10: // Attributes
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Attributes")
+ }
+ x.Attributes = append(x.Attributes, new(Header_Attribute))
+ ff := x.Attributes[len(x.Attributes)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 11: // Split
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Split")
+ }
+ x.Split = new(Header_Split)
+ if err := x.Split.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 12: // Ec
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Ec")
+ }
+ x.Ec = new(Header_EC)
+ if err := x.Ec.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *Header) GetVersion() *grpc.Version {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+func (x *Header) SetVersion(v *grpc.Version) {
+ x.Version = v
+}
+func (x *Header) GetContainerId() *grpc.ContainerID {
+ if x != nil {
+ return x.ContainerId
+ }
+ return nil
+}
+func (x *Header) SetContainerId(v *grpc.ContainerID) {
+ x.ContainerId = v
+}
+func (x *Header) GetOwnerId() *grpc.OwnerID {
+ if x != nil {
+ return x.OwnerId
+ }
+ return nil
+}
+func (x *Header) SetOwnerId(v *grpc.OwnerID) {
+ x.OwnerId = v
+}
+func (x *Header) GetCreationEpoch() uint64 {
+ if x != nil {
+ return x.CreationEpoch
+ }
+ return 0
+}
+func (x *Header) SetCreationEpoch(v uint64) {
+ x.CreationEpoch = v
+}
+func (x *Header) GetPayloadLength() uint64 {
+ if x != nil {
+ return x.PayloadLength
+ }
+ return 0
+}
+func (x *Header) SetPayloadLength(v uint64) {
+ x.PayloadLength = v
+}
+func (x *Header) GetPayloadHash() *grpc.Checksum {
+ if x != nil {
+ return x.PayloadHash
+ }
+ return nil
+}
+func (x *Header) SetPayloadHash(v *grpc.Checksum) {
+ x.PayloadHash = v
+}
+func (x *Header) GetObjectType() ObjectType {
+ if x != nil {
+ return x.ObjectType
+ }
+ return 0
+}
+func (x *Header) SetObjectType(v ObjectType) {
+ x.ObjectType = v
+}
+func (x *Header) GetHomomorphicHash() *grpc.Checksum {
+ if x != nil {
+ return x.HomomorphicHash
+ }
+ return nil
+}
+func (x *Header) SetHomomorphicHash(v *grpc.Checksum) {
+ x.HomomorphicHash = v
+}
+func (x *Header) GetSessionToken() *grpc1.SessionToken {
+ if x != nil {
+ return x.SessionToken
+ }
+ return nil
+}
+func (x *Header) SetSessionToken(v *grpc1.SessionToken) {
+ x.SessionToken = v
+}
+func (x *Header) GetAttributes() []*Header_Attribute {
+ if x != nil {
+ return x.Attributes
+ }
+ return nil
+}
+func (x *Header) SetAttributes(v []*Header_Attribute) {
+ x.Attributes = v
+}
+func (x *Header) GetSplit() *Header_Split {
+ if x != nil {
+ return x.Split
+ }
+ return nil
+}
+func (x *Header) SetSplit(v *Header_Split) {
+ x.Split = v
+}
+func (x *Header) GetEc() *Header_EC {
+ if x != nil {
+ return x.Ec
+ }
+ return nil
+}
+func (x *Header) SetEc(v *Header_EC) {
+ x.Ec = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Header) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Header) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"version\":"
+ out.RawString(prefix[1:])
+ x.Version.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"creationEpoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.CreationEpoch)
+ }
+ {
+ const prefix string = ",\"payloadLength\":"
+ out.RawString(prefix)
+ out.Uint64(x.PayloadLength)
+ }
+ {
+ const prefix string = ",\"payloadHash\":"
+ out.RawString(prefix)
+ x.PayloadHash.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"objectType\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.ObjectType))
+ }
+ {
+ const prefix string = ",\"homomorphicHash\":"
+ out.RawString(prefix)
+ x.HomomorphicHash.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"attributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Attributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Attributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"split\":"
+ out.RawString(prefix)
+ x.Split.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"ec\":"
+ out.RawString(prefix)
+ x.Ec.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Header) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Header) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "version":
+ {
+ var f *grpc.Version
+ f = new(grpc.Version)
+ f.UnmarshalEasyJSON(in)
+ x.Version = f
+ }
+ case "containerID":
+ {
+ var f *grpc.ContainerID
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.ContainerId = f
+ }
+ case "ownerID":
+ {
+ var f *grpc.OwnerID
+ f = new(grpc.OwnerID)
+ f.UnmarshalEasyJSON(in)
+ x.OwnerId = f
+ }
+ case "creationEpoch":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.CreationEpoch = f
+ }
+ case "payloadLength":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.PayloadLength = f
+ }
+ case "payloadHash":
+ {
+ var f *grpc.Checksum
+ f = new(grpc.Checksum)
+ f.UnmarshalEasyJSON(in)
+ x.PayloadHash = f
+ }
+ case "objectType":
+ {
+ var f ObjectType
+ var parsedValue ObjectType
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := ObjectType_value[v]; ok {
+ parsedValue = ObjectType(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = ObjectType(vv)
+ case float64:
+ parsedValue = ObjectType(v)
+ }
+ f = parsedValue
+ x.ObjectType = f
+ }
+ case "homomorphicHash":
+ {
+ var f *grpc.Checksum
+ f = new(grpc.Checksum)
+ f.UnmarshalEasyJSON(in)
+ x.HomomorphicHash = f
+ }
+ case "sessionToken":
+ {
+ var f *grpc1.SessionToken
+ f = new(grpc1.SessionToken)
+ f.UnmarshalEasyJSON(in)
+ x.SessionToken = f
+ }
+ case "attributes":
+ {
+ var f *Header_Attribute
+ var list []*Header_Attribute
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Header_Attribute)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Attributes = list
+ in.Delim(']')
+ }
+ case "split":
+ {
+ var f *Header_Split
+ f = new(Header_Split)
+ f.UnmarshalEasyJSON(in)
+ x.Split = f
+ }
+ case "ec":
+ {
+ var f *Header_EC
+ f = new(Header_EC)
+ f.UnmarshalEasyJSON(in)
+ x.Ec = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Object struct {
+ ObjectId *grpc.ObjectID `json:"objectID"`
+ Signature *grpc.Signature `json:"signature"`
+ Header *Header `json:"header"`
+ Payload []byte `json:"payload"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Object)(nil)
+ _ encoding.ProtoUnmarshaler = (*Object)(nil)
+ _ json.Marshaler = (*Object)(nil)
+ _ json.Unmarshaler = (*Object)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Object) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ObjectId)
+ size += proto.NestedStructureSize(2, x.Signature)
+ size += proto.NestedStructureSize(3, x.Header)
+ size += proto.BytesSize(4, x.Payload)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Object) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Object) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.Header != nil && x.Header.StableSize() != 0 {
+ x.Header.EmitProtobuf(mm.AppendMessage(3))
+ }
+ if len(x.Payload) != 0 {
+ mm.AppendBytes(4, x.Payload)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Object) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Object")
+ }
+ switch fc.FieldNum {
+ case 1: // ObjectId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ObjectId")
+ }
+ x.ObjectId = new(grpc.ObjectID)
+ if err := x.ObjectId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.Signature)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Header
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Header")
+ }
+ x.Header = new(Header)
+ if err := x.Header.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // Payload
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Payload")
+ }
+ x.Payload = data
+ }
+ }
+ return nil
+}
+func (x *Object) GetObjectId() *grpc.ObjectID {
+ if x != nil {
+ return x.ObjectId
+ }
+ return nil
+}
+func (x *Object) SetObjectId(v *grpc.ObjectID) {
+ x.ObjectId = v
+}
+func (x *Object) GetSignature() *grpc.Signature {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *Object) SetSignature(v *grpc.Signature) {
+ x.Signature = v
+}
+func (x *Object) GetHeader() *Header {
+ if x != nil {
+ return x.Header
+ }
+ return nil
+}
+func (x *Object) SetHeader(v *Header) {
+ x.Header = v
+}
+func (x *Object) GetPayload() []byte {
+ if x != nil {
+ return x.Payload
+ }
+ return nil
+}
+func (x *Object) SetPayload(v []byte) {
+ x.Payload = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Object) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Object) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"objectID\":"
+ out.RawString(prefix[1:])
+ x.ObjectId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"payload\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Payload)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Object) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Object) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "objectID":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.ObjectId = f
+ }
+ case "signature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ case "header":
+ {
+ var f *Header
+ f = new(Header)
+ f.UnmarshalEasyJSON(in)
+ x.Header = f
+ }
+ case "payload":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Payload = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type SplitInfo struct {
+ SplitId []byte `json:"splitId"`
+ LastPart *grpc.ObjectID `json:"lastPart"`
+ Link *grpc.ObjectID `json:"link"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SplitInfo)(nil)
+ _ encoding.ProtoUnmarshaler = (*SplitInfo)(nil)
+ _ json.Marshaler = (*SplitInfo)(nil)
+ _ json.Unmarshaler = (*SplitInfo)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SplitInfo) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.SplitId)
+ size += proto.NestedStructureSize(2, x.LastPart)
+ size += proto.NestedStructureSize(3, x.Link)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SplitInfo) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SplitInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.SplitId) != 0 {
+ mm.AppendBytes(1, x.SplitId)
+ }
+ if x.LastPart != nil && x.LastPart.StableSize() != 0 {
+ x.LastPart.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.Link != nil && x.Link.StableSize() != 0 {
+ x.Link.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SplitInfo) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SplitInfo")
+ }
+ switch fc.FieldNum {
+ case 1: // SplitId
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SplitId")
+ }
+ x.SplitId = data
+ case 2: // LastPart
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "LastPart")
+ }
+ x.LastPart = new(grpc.ObjectID)
+ if err := x.LastPart.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Link
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Link")
+ }
+ x.Link = new(grpc.ObjectID)
+ if err := x.Link.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *SplitInfo) GetSplitId() []byte {
+ if x != nil {
+ return x.SplitId
+ }
+ return nil
+}
+func (x *SplitInfo) SetSplitId(v []byte) {
+ x.SplitId = v
+}
+func (x *SplitInfo) GetLastPart() *grpc.ObjectID {
+ if x != nil {
+ return x.LastPart
+ }
+ return nil
+}
+func (x *SplitInfo) SetLastPart(v *grpc.ObjectID) {
+ x.LastPart = v
+}
+func (x *SplitInfo) GetLink() *grpc.ObjectID {
+ if x != nil {
+ return x.Link
+ }
+ return nil
+}
+func (x *SplitInfo) SetLink(v *grpc.ObjectID) {
+ x.Link = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SplitInfo) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SplitInfo) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"splitId\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.SplitId)
+ }
+ {
+ const prefix string = ",\"lastPart\":"
+ out.RawString(prefix)
+ x.LastPart.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"link\":"
+ out.RawString(prefix)
+ x.Link.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SplitInfo) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SplitInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "splitId":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.SplitId = f
+ }
+ case "lastPart":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.LastPart = f
+ }
+ case "link":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.Link = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ECInfo_Chunk struct {
+ Id *grpc.ObjectID `json:"id"`
+ Index uint32 `json:"index"`
+ Total uint32 `json:"total"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ECInfo_Chunk)(nil)
+ _ encoding.ProtoUnmarshaler = (*ECInfo_Chunk)(nil)
+ _ json.Marshaler = (*ECInfo_Chunk)(nil)
+ _ json.Unmarshaler = (*ECInfo_Chunk)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ECInfo_Chunk) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Id)
+ size += proto.UInt32Size(2, x.Index)
+ size += proto.UInt32Size(3, x.Total)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ECInfo_Chunk) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ECInfo_Chunk) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Id != nil && x.Id.StableSize() != 0 {
+ x.Id.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Index != 0 {
+ mm.AppendUint32(2, x.Index)
+ }
+ if x.Total != 0 {
+ mm.AppendUint32(3, x.Total)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ECInfo_Chunk) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ECInfo_Chunk")
+ }
+ switch fc.FieldNum {
+ case 1: // Id
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Id")
+ }
+ x.Id = new(grpc.ObjectID)
+ if err := x.Id.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Index
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Index")
+ }
+ x.Index = data
+ case 3: // Total
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Total")
+ }
+ x.Total = data
+ }
+ }
+ return nil
+}
+func (x *ECInfo_Chunk) GetId() *grpc.ObjectID {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+func (x *ECInfo_Chunk) SetId(v *grpc.ObjectID) {
+ x.Id = v
+}
+func (x *ECInfo_Chunk) GetIndex() uint32 {
+ if x != nil {
+ return x.Index
+ }
+ return 0
+}
+func (x *ECInfo_Chunk) SetIndex(v uint32) {
+ x.Index = v
+}
+func (x *ECInfo_Chunk) GetTotal() uint32 {
+ if x != nil {
+ return x.Total
+ }
+ return 0
+}
+func (x *ECInfo_Chunk) SetTotal(v uint32) {
+ x.Total = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ECInfo_Chunk) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ECInfo_Chunk) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"id\":"
+ out.RawString(prefix[1:])
+ x.Id.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"index\":"
+ out.RawString(prefix)
+ out.Uint32(x.Index)
+ }
+ {
+ const prefix string = ",\"total\":"
+ out.RawString(prefix)
+ out.Uint32(x.Total)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ECInfo_Chunk) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ECInfo_Chunk) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "id":
+ {
+ var f *grpc.ObjectID
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.Id = f
+ }
+ case "index":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Index = f
+ }
+ case "total":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Total = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ECInfo struct {
+ Chunks []*ECInfo_Chunk `json:"chunks"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ECInfo)(nil)
+ _ encoding.ProtoUnmarshaler = (*ECInfo)(nil)
+ _ json.Marshaler = (*ECInfo)(nil)
+ _ json.Unmarshaler = (*ECInfo)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ECInfo) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ for i := range x.Chunks {
+ size += proto.NestedStructureSize(1, x.Chunks[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ECInfo) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ECInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ for i := range x.Chunks {
+ if x.Chunks[i] != nil && x.Chunks[i].StableSize() != 0 {
+ x.Chunks[i].EmitProtobuf(mm.AppendMessage(1))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ECInfo) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ECInfo")
+ }
+ switch fc.FieldNum {
+ case 1: // Chunks
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Chunks")
+ }
+ x.Chunks = append(x.Chunks, new(ECInfo_Chunk))
+ ff := x.Chunks[len(x.Chunks)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ECInfo) GetChunks() []*ECInfo_Chunk {
+ if x != nil {
+ return x.Chunks
+ }
+ return nil
+}
+func (x *ECInfo) SetChunks(v []*ECInfo_Chunk) {
+ x.Chunks = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ECInfo) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ECInfo) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"chunks\":"
+ out.RawString(prefix[1:])
+ out.RawByte('[')
+ for i := range x.Chunks {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Chunks[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ECInfo) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ECInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "chunks":
+ {
+ var f *ECInfo_Chunk
+ var list []*ECInfo_Chunk
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(ECInfo_Chunk)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Chunks = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/object/grpc/types_frostfs_fuzz.go b/object/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..8491638
--- /dev/null
+++ b/object/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,102 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package object
+
+func DoFuzzProtoShortHeader(data []byte) int {
+ msg := new(ShortHeader)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONShortHeader(data []byte) int {
+ msg := new(ShortHeader)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoHeader(data []byte) int {
+ msg := new(Header)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONHeader(data []byte) int {
+ msg := new(Header)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoObject(data []byte) int {
+ msg := new(Object)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONObject(data []byte) int {
+ msg := new(Object)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoSplitInfo(data []byte) int {
+ msg := new(SplitInfo)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONSplitInfo(data []byte) int {
+ msg := new(SplitInfo)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoECInfo(data []byte) int {
+ msg := new(ECInfo)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONECInfo(data []byte) int {
+ msg := new(ECInfo)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/object/grpc/types_frostfs_test.go b/object/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..11825be
--- /dev/null
+++ b/object/grpc/types_frostfs_test.go
@@ -0,0 +1,61 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package object
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoShortHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoShortHeader(data)
+ })
+}
+func FuzzJSONShortHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONShortHeader(data)
+ })
+}
+func FuzzProtoHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoHeader(data)
+ })
+}
+func FuzzJSONHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONHeader(data)
+ })
+}
+func FuzzProtoObject(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoObject(data)
+ })
+}
+func FuzzJSONObject(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONObject(data)
+ })
+}
+func FuzzProtoSplitInfo(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoSplitInfo(data)
+ })
+}
+func FuzzJSONSplitInfo(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONSplitInfo(data)
+ })
+}
+func FuzzProtoECInfo(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoECInfo(data)
+ })
+}
+func FuzzJSONECInfo(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONECInfo(data)
+ })
+}
diff --git a/refs/grpc/types.go b/refs/grpc/types.go
deleted file mode 100644
index cdb69aa..0000000
--- a/refs/grpc/types.go
+++ /dev/null
@@ -1,97 +0,0 @@
-package refs
-
-// SetValue sets container identifier in a binary format.
-func (x *ContainerID) SetValue(v []byte) {
- x.Value = v
-}
-
-// SetValue sets object identifier in a binary format.
-func (x *ObjectID) SetValue(v []byte) {
- x.Value = v
-}
-
-// SetValue sets owner identifier in a binary format.
-func (x *OwnerID) SetValue(v []byte) {
- x.Value = v
-}
-
-// SetContainerId sets container identifier of the address.
-func (x *Address) SetContainerId(v *ContainerID) {
- x.ContainerId = v
-}
-
-// SetObjectId sets object identifier of the address.
-func (x *Address) SetObjectId(v *ObjectID) {
- x.ObjectId = v
-}
-
-// SetType in generic checksum structure.
-func (x *Checksum) SetType(v ChecksumType) {
- x.Type = v
-}
-
-// SetSum in generic checksum structure.
-func (x *Checksum) SetSum(v []byte) {
- x.Sum = v
-}
-
-// SetMajor sets major version number.
-func (x *Version) SetMajor(v uint32) {
- x.Major = v
-}
-
-// SetMinor sets minor version number.
-func (x *Version) SetMinor(v uint32) {
- x.Minor = v
-}
-
-// SetKey sets public key in a binary format.
-func (x *Signature) SetKey(v []byte) {
- x.Key = v
-}
-
-// SetSign sets signature.
-func (x *Signature) SetSign(v []byte) {
- x.Sign = v
-}
-
-// SetScheme sets signature scheme.
-func (x *Signature) SetScheme(s SignatureScheme) {
- x.Scheme = s
-}
-
-// SetKey sets public key in a binary format.
-func (x *SignatureRFC6979) SetKey(v []byte) {
- x.Key = v
-}
-
-// SetSign sets signature.
-func (x *SignatureRFC6979) SetSign(v []byte) {
- x.Sign = v
-}
-
-// FromString parses SignatureScheme from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *SignatureScheme) FromString(s string) bool {
- i, ok := SignatureScheme_value[s]
- if ok {
- *x = SignatureScheme(i)
- }
-
- return ok
-}
-
-// FromString parses ChecksumType from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *ChecksumType) FromString(s string) bool {
- i, ok := ChecksumType_value[s]
- if ok {
- *x = ChecksumType(i)
- }
-
- return ok
-}
diff --git a/refs/grpc/types.pb.go b/refs/grpc/types.pb.go
deleted file mode 100644
index ab3ae42..0000000
--- a/refs/grpc/types.pb.go
+++ /dev/null
@@ -1,852 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: refs/grpc/types.proto
-
-package refs
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Signature scheme describes digital signing scheme used for (key, signature)
-// pair.
-type SignatureScheme int32
-
-const (
- // ECDSA with SHA-512 hashing (FIPS 186-3)
- SignatureScheme_ECDSA_SHA512 SignatureScheme = 0
- // Deterministic ECDSA with SHA-256 hashing (RFC 6979)
- SignatureScheme_ECDSA_RFC6979_SHA256 SignatureScheme = 1
- // Deterministic ECDSA with SHA-256 hashing using WalletConnect API.
- // Here the algorithm is the same, but the message format differs.
- SignatureScheme_ECDSA_RFC6979_SHA256_WALLET_CONNECT SignatureScheme = 2
-)
-
-// Enum value maps for SignatureScheme.
-var (
- SignatureScheme_name = map[int32]string{
- 0: "ECDSA_SHA512",
- 1: "ECDSA_RFC6979_SHA256",
- 2: "ECDSA_RFC6979_SHA256_WALLET_CONNECT",
- }
- SignatureScheme_value = map[string]int32{
- "ECDSA_SHA512": 0,
- "ECDSA_RFC6979_SHA256": 1,
- "ECDSA_RFC6979_SHA256_WALLET_CONNECT": 2,
- }
-)
-
-func (x SignatureScheme) Enum() *SignatureScheme {
- p := new(SignatureScheme)
- *p = x
- return p
-}
-
-func (x SignatureScheme) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (SignatureScheme) Descriptor() protoreflect.EnumDescriptor {
- return file_refs_grpc_types_proto_enumTypes[0].Descriptor()
-}
-
-func (SignatureScheme) Type() protoreflect.EnumType {
- return &file_refs_grpc_types_proto_enumTypes[0]
-}
-
-func (x SignatureScheme) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use SignatureScheme.Descriptor instead.
-func (SignatureScheme) EnumDescriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-// Checksum algorithm type.
-type ChecksumType int32
-
-const (
- // Unknown. Not used
- ChecksumType_CHECKSUM_TYPE_UNSPECIFIED ChecksumType = 0
- // Tillich-Zemor homomorphic hash function
- ChecksumType_TZ ChecksumType = 1
- // SHA-256
- ChecksumType_SHA256 ChecksumType = 2
-)
-
-// Enum value maps for ChecksumType.
-var (
- ChecksumType_name = map[int32]string{
- 0: "CHECKSUM_TYPE_UNSPECIFIED",
- 1: "TZ",
- 2: "SHA256",
- }
- ChecksumType_value = map[string]int32{
- "CHECKSUM_TYPE_UNSPECIFIED": 0,
- "TZ": 1,
- "SHA256": 2,
- }
-)
-
-func (x ChecksumType) Enum() *ChecksumType {
- p := new(ChecksumType)
- *p = x
- return p
-}
-
-func (x ChecksumType) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (ChecksumType) Descriptor() protoreflect.EnumDescriptor {
- return file_refs_grpc_types_proto_enumTypes[1].Descriptor()
-}
-
-func (ChecksumType) Type() protoreflect.EnumType {
- return &file_refs_grpc_types_proto_enumTypes[1]
-}
-
-func (x ChecksumType) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use ChecksumType.Descriptor instead.
-func (ChecksumType) EnumDescriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-// Objects in NeoFS are addressed by their ContainerID and ObjectID.
-//
-// String presentation of `Address` is a concatenation of string encoded
-// `ContainerID` and `ObjectID` delimited by '/' character.
-type Address struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Container identifier
- ContainerId *ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerID,proto3" json:"container_id,omitempty"`
- // Object identifier
- ObjectId *ObjectID `protobuf:"bytes,2,opt,name=object_id,json=objectID,proto3" json:"object_id,omitempty"`
-}
-
-func (x *Address) Reset() {
- *x = Address{}
- if protoimpl.UnsafeEnabled {
- mi := &file_refs_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Address) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Address) ProtoMessage() {}
-
-func (x *Address) ProtoReflect() protoreflect.Message {
- mi := &file_refs_grpc_types_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 Address.ProtoReflect.Descriptor instead.
-func (*Address) Descriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Address) GetContainerId() *ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-
-func (x *Address) GetObjectId() *ObjectID {
- if x != nil {
- return x.ObjectId
- }
- return nil
-}
-
-// NeoFS Object unique identifier. Objects are immutable and content-addressed.
-// It means `ObjectID` will change if the `header` or the `payload` changes.
-//
-// `ObjectID` is a 32 byte long
-// [SHA256](https://csrc.nist.gov/publications/detail/fips/180/4/final) hash of
-// the object's `header` field, which, in it's turn, contains the hash of the
-// object's payload.
-//
-// String presentation is a
-// [base58](https://tools.ietf.org/html/draft-msporny-base58-02) encoded string.
-//
-// JSON value will be data encoded as a string using standard base64
-// encoding with paddings. Either
-// [standard](https://tools.ietf.org/html/rfc4648#section-4) or
-// [URL-safe](https://tools.ietf.org/html/rfc4648#section-5) base64 encoding
-// with/without paddings are accepted.
-type ObjectID struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Object identifier in a binary format
- Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *ObjectID) Reset() {
- *x = ObjectID{}
- if protoimpl.UnsafeEnabled {
- mi := &file_refs_grpc_types_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ObjectID) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ObjectID) ProtoMessage() {}
-
-func (x *ObjectID) ProtoReflect() protoreflect.Message {
- mi := &file_refs_grpc_types_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 ObjectID.ProtoReflect.Descriptor instead.
-func (*ObjectID) Descriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *ObjectID) GetValue() []byte {
- if x != nil {
- return x.Value
- }
- return nil
-}
-
-// NeoFS container identifier. Container structures are immutable and
-// content-addressed.
-//
-// `ContainerID` is a 32 byte long
-// [SHA256](https://csrc.nist.gov/publications/detail/fips/180/4/final) hash of
-// stable-marshalled container message.
-//
-// String presentation is a
-// [base58](https://tools.ietf.org/html/draft-msporny-base58-02) encoded string.
-//
-// JSON value will be data encoded as a string using standard base64
-// encoding with paddings. Either
-// [standard](https://tools.ietf.org/html/rfc4648#section-4) or
-// [URL-safe](https://tools.ietf.org/html/rfc4648#section-5) base64 encoding
-// with/without paddings are accepted.
-type ContainerID struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Container identifier in a binary format.
- Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *ContainerID) Reset() {
- *x = ContainerID{}
- if protoimpl.UnsafeEnabled {
- mi := &file_refs_grpc_types_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ContainerID) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ContainerID) ProtoMessage() {}
-
-func (x *ContainerID) ProtoReflect() protoreflect.Message {
- mi := &file_refs_grpc_types_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 ContainerID.ProtoReflect.Descriptor instead.
-func (*ContainerID) Descriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *ContainerID) GetValue() []byte {
- if x != nil {
- return x.Value
- }
- return nil
-}
-
-// `OwnerID` is a derivative of a user's main public key. The transformation
-// algorithm is the same as for Neo3 wallet addresses. Neo3 wallet address can
-// be directly used as `OwnerID`.
-//
-// `OwnerID` is a 25 bytes sequence starting with Neo version prefix byte
-// followed by 20 bytes of ScrptHash and 4 bytes of checksum.
-//
-// String presentation is a [Base58
-// Check](https://en.bitcoin.it/wiki/Base58Check_encoding) Encoded string.
-//
-// JSON value will be data encoded as a string using standard base64
-// encoding with paddings. Either
-// [standard](https://tools.ietf.org/html/rfc4648#section-4) or
-// [URL-safe](https://tools.ietf.org/html/rfc4648#section-5) base64 encoding
-// with/without paddings are accepted.
-type OwnerID struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier of the container owner in a binary format
- Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *OwnerID) Reset() {
- *x = OwnerID{}
- if protoimpl.UnsafeEnabled {
- mi := &file_refs_grpc_types_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *OwnerID) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*OwnerID) ProtoMessage() {}
-
-func (x *OwnerID) ProtoReflect() protoreflect.Message {
- mi := &file_refs_grpc_types_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 OwnerID.ProtoReflect.Descriptor instead.
-func (*OwnerID) Descriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *OwnerID) GetValue() []byte {
- if x != nil {
- return x.Value
- }
- return nil
-}
-
-// API version used by a node.
-//
-// String presentation is a Semantic Versioning 2.0.0 compatible version string
-// with 'v' prefix. i.e. `vX.Y`, where `X` is the major number, `Y` is the minor
-// number.
-type Version struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Major API version
- Major uint32 `protobuf:"varint,1,opt,name=major,proto3" json:"major,omitempty"`
- // Minor API version
- Minor uint32 `protobuf:"varint,2,opt,name=minor,proto3" json:"minor,omitempty"`
-}
-
-func (x *Version) Reset() {
- *x = Version{}
- if protoimpl.UnsafeEnabled {
- mi := &file_refs_grpc_types_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Version) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Version) ProtoMessage() {}
-
-func (x *Version) ProtoReflect() protoreflect.Message {
- mi := &file_refs_grpc_types_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 Version.ProtoReflect.Descriptor instead.
-func (*Version) Descriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *Version) GetMajor() uint32 {
- if x != nil {
- return x.Major
- }
- return 0
-}
-
-func (x *Version) GetMinor() uint32 {
- if x != nil {
- return x.Minor
- }
- return 0
-}
-
-// Signature of something in NeoFS.
-type Signature struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Public key used for signing
- Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- // Signature
- Sign []byte `protobuf:"bytes,2,opt,name=sign,json=signature,proto3" json:"sign,omitempty"`
- // Scheme contains digital signature scheme identifier
- Scheme SignatureScheme `protobuf:"varint,3,opt,name=scheme,proto3,enum=neo.fs.v2.refs.SignatureScheme" json:"scheme,omitempty"`
-}
-
-func (x *Signature) Reset() {
- *x = Signature{}
- if protoimpl.UnsafeEnabled {
- mi := &file_refs_grpc_types_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Signature) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Signature) ProtoMessage() {}
-
-func (x *Signature) ProtoReflect() protoreflect.Message {
- mi := &file_refs_grpc_types_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 Signature.ProtoReflect.Descriptor instead.
-func (*Signature) Descriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *Signature) GetKey() []byte {
- if x != nil {
- return x.Key
- }
- return nil
-}
-
-func (x *Signature) GetSign() []byte {
- if x != nil {
- return x.Sign
- }
- return nil
-}
-
-func (x *Signature) GetScheme() SignatureScheme {
- if x != nil {
- return x.Scheme
- }
- return SignatureScheme_ECDSA_SHA512
-}
-
-// RFC 6979 signature.
-type SignatureRFC6979 struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Public key used for signing
- Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- // Deterministic ECDSA with SHA-256 hashing
- Sign []byte `protobuf:"bytes,2,opt,name=sign,json=signature,proto3" json:"sign,omitempty"`
-}
-
-func (x *SignatureRFC6979) Reset() {
- *x = SignatureRFC6979{}
- if protoimpl.UnsafeEnabled {
- mi := &file_refs_grpc_types_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SignatureRFC6979) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SignatureRFC6979) ProtoMessage() {}
-
-func (x *SignatureRFC6979) ProtoReflect() protoreflect.Message {
- mi := &file_refs_grpc_types_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 SignatureRFC6979.ProtoReflect.Descriptor instead.
-func (*SignatureRFC6979) Descriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *SignatureRFC6979) GetKey() []byte {
- if x != nil {
- return x.Key
- }
- return nil
-}
-
-func (x *SignatureRFC6979) GetSign() []byte {
- if x != nil {
- return x.Sign
- }
- return nil
-}
-
-// Checksum message.
-// Depending on checksum algorithm type, the string presentation may vary:
-//
-// - TZ \
-// Hex encoded string without `0x` prefix
-// - SHA256 \
-// Hex encoded string without `0x` prefix
-type Checksum struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Checksum algorithm type
- Type ChecksumType `protobuf:"varint,1,opt,name=type,proto3,enum=neo.fs.v2.refs.ChecksumType" json:"type,omitempty"`
- // Checksum itself
- Sum []byte `protobuf:"bytes,2,opt,name=sum,proto3" json:"sum,omitempty"`
-}
-
-func (x *Checksum) Reset() {
- *x = Checksum{}
- if protoimpl.UnsafeEnabled {
- mi := &file_refs_grpc_types_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Checksum) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Checksum) ProtoMessage() {}
-
-func (x *Checksum) ProtoReflect() protoreflect.Message {
- mi := &file_refs_grpc_types_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 Checksum.ProtoReflect.Descriptor instead.
-func (*Checksum) Descriptor() ([]byte, []int) {
- return file_refs_grpc_types_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *Checksum) GetType() ChecksumType {
- if x != nil {
- return x.Type
- }
- return ChecksumType_CHECKSUM_TYPE_UNSPECIFIED
-}
-
-func (x *Checksum) GetSum() []byte {
- if x != nil {
- return x.Sum
- }
- return nil
-}
-
-var File_refs_grpc_types_proto protoreflect.FileDescriptor
-
-var file_refs_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65,
- 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72,
- 0x65, 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
- 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44,
- 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x22, 0x20, 0x0a, 0x08, 0x4f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b,
- 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x76,
- 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x22, 0x1f, 0x0a, 0x07, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05,
- 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x22, 0x35, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a,
- 0x05, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61,
- 0x6a, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x22, 0x6f, 0x0a, 0x09, 0x53, 0x69, 0x67,
- 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
- 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0e, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
- 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x63, 0x68, 0x65,
- 0x6d, 0x65, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x22, 0x3d, 0x0a, 0x10, 0x53, 0x69,
- 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x46, 0x43, 0x36, 0x39, 0x37, 0x39, 0x12, 0x10,
- 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79,
- 0x12, 0x17, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09,
- 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x4e, 0x0a, 0x08, 0x43, 0x68, 0x65,
- 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x54, 0x79, 0x70,
- 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x75, 0x6d, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x75, 0x6d, 0x2a, 0x66, 0x0a, 0x0f, 0x53, 0x69, 0x67,
- 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x0c,
- 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x00, 0x12, 0x18,
- 0x0a, 0x14, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x52, 0x46, 0x43, 0x36, 0x39, 0x37, 0x39, 0x5f,
- 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x43, 0x44, 0x53,
- 0x41, 0x5f, 0x52, 0x46, 0x43, 0x36, 0x39, 0x37, 0x39, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36,
- 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10,
- 0x02, 0x2a, 0x41, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x54, 0x79, 0x70,
- 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x53, 0x55, 0x4d, 0x5f, 0x54, 0x59,
- 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
- 0x12, 0x06, 0x0a, 0x02, 0x54, 0x5a, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x32,
- 0x35, 0x36, 0x10, 0x02, 0x42, 0x5b, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73,
- 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f,
- 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70,
- 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70,
- 0x63, 0x3b, 0x72, 0x65, 0x66, 0x73, 0xaa, 0x02, 0x18, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c,
- 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x52, 0x65, 0x66,
- 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_refs_grpc_types_proto_rawDescOnce sync.Once
- file_refs_grpc_types_proto_rawDescData = file_refs_grpc_types_proto_rawDesc
-)
-
-func file_refs_grpc_types_proto_rawDescGZIP() []byte {
- file_refs_grpc_types_proto_rawDescOnce.Do(func() {
- file_refs_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_refs_grpc_types_proto_rawDescData)
- })
- return file_refs_grpc_types_proto_rawDescData
-}
-
-var file_refs_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_refs_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
-var file_refs_grpc_types_proto_goTypes = []interface{}{
- (SignatureScheme)(0), // 0: neo.fs.v2.refs.SignatureScheme
- (ChecksumType)(0), // 1: neo.fs.v2.refs.ChecksumType
- (*Address)(nil), // 2: neo.fs.v2.refs.Address
- (*ObjectID)(nil), // 3: neo.fs.v2.refs.ObjectID
- (*ContainerID)(nil), // 4: neo.fs.v2.refs.ContainerID
- (*OwnerID)(nil), // 5: neo.fs.v2.refs.OwnerID
- (*Version)(nil), // 6: neo.fs.v2.refs.Version
- (*Signature)(nil), // 7: neo.fs.v2.refs.Signature
- (*SignatureRFC6979)(nil), // 8: neo.fs.v2.refs.SignatureRFC6979
- (*Checksum)(nil), // 9: neo.fs.v2.refs.Checksum
-}
-var file_refs_grpc_types_proto_depIdxs = []int32{
- 4, // 0: neo.fs.v2.refs.Address.container_id:type_name -> neo.fs.v2.refs.ContainerID
- 3, // 1: neo.fs.v2.refs.Address.object_id:type_name -> neo.fs.v2.refs.ObjectID
- 0, // 2: neo.fs.v2.refs.Signature.scheme:type_name -> neo.fs.v2.refs.SignatureScheme
- 1, // 3: neo.fs.v2.refs.Checksum.type:type_name -> neo.fs.v2.refs.ChecksumType
- 4, // [4:4] is the sub-list for method output_type
- 4, // [4:4] is the sub-list for method input_type
- 4, // [4:4] is the sub-list for extension type_name
- 4, // [4:4] is the sub-list for extension extendee
- 0, // [0:4] is the sub-list for field type_name
-}
-
-func init() { file_refs_grpc_types_proto_init() }
-func file_refs_grpc_types_proto_init() {
- if File_refs_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_refs_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Address); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_refs_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ObjectID); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_refs_grpc_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ContainerID); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_refs_grpc_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*OwnerID); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_refs_grpc_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Version); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_refs_grpc_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Signature); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_refs_grpc_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SignatureRFC6979); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_refs_grpc_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Checksum); 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_refs_grpc_types_proto_rawDesc,
- NumEnums: 2,
- NumMessages: 8,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_refs_grpc_types_proto_goTypes,
- DependencyIndexes: file_refs_grpc_types_proto_depIdxs,
- EnumInfos: file_refs_grpc_types_proto_enumTypes,
- MessageInfos: file_refs_grpc_types_proto_msgTypes,
- }.Build()
- File_refs_grpc_types_proto = out.File
- file_refs_grpc_types_proto_rawDesc = nil
- file_refs_grpc_types_proto_goTypes = nil
- file_refs_grpc_types_proto_depIdxs = nil
-}
diff --git a/refs/grpc/types_frostfs.pb.go b/refs/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..881a06f
--- /dev/null
+++ b/refs/grpc/types_frostfs.pb.go
@@ -0,0 +1,1343 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package refs
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
+)
+
+type SignatureScheme int32
+
+const (
+ SignatureScheme_ECDSA_SHA512 SignatureScheme = 0
+ SignatureScheme_ECDSA_RFC6979_SHA256 SignatureScheme = 1
+ SignatureScheme_ECDSA_RFC6979_SHA256_WALLET_CONNECT SignatureScheme = 2
+)
+
+var (
+ SignatureScheme_name = map[int32]string{
+ 0: "ECDSA_SHA512",
+ 1: "ECDSA_RFC6979_SHA256",
+ 2: "ECDSA_RFC6979_SHA256_WALLET_CONNECT",
+ }
+ SignatureScheme_value = map[string]int32{
+ "ECDSA_SHA512": 0,
+ "ECDSA_RFC6979_SHA256": 1,
+ "ECDSA_RFC6979_SHA256_WALLET_CONNECT": 2,
+ }
+)
+
+func (x SignatureScheme) String() string {
+ if v, ok := SignatureScheme_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *SignatureScheme) FromString(s string) bool {
+ if v, ok := SignatureScheme_value[s]; ok {
+ *x = SignatureScheme(v)
+ return true
+ }
+ return false
+}
+
+type ChecksumType int32
+
+const (
+ ChecksumType_CHECKSUM_TYPE_UNSPECIFIED ChecksumType = 0
+ ChecksumType_TZ ChecksumType = 1
+ ChecksumType_SHA256 ChecksumType = 2
+)
+
+var (
+ ChecksumType_name = map[int32]string{
+ 0: "CHECKSUM_TYPE_UNSPECIFIED",
+ 1: "TZ",
+ 2: "SHA256",
+ }
+ ChecksumType_value = map[string]int32{
+ "CHECKSUM_TYPE_UNSPECIFIED": 0,
+ "TZ": 1,
+ "SHA256": 2,
+ }
+)
+
+func (x ChecksumType) String() string {
+ if v, ok := ChecksumType_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *ChecksumType) FromString(s string) bool {
+ if v, ok := ChecksumType_value[s]; ok {
+ *x = ChecksumType(v)
+ return true
+ }
+ return false
+}
+
+type Address struct {
+ ContainerId *ContainerID `json:"containerID"`
+ ObjectId *ObjectID `json:"objectID"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Address)(nil)
+ _ encoding.ProtoUnmarshaler = (*Address)(nil)
+ _ json.Marshaler = (*Address)(nil)
+ _ json.Unmarshaler = (*Address)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Address) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.ContainerId)
+ size += proto.NestedStructureSize(2, x.ObjectId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Address) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Address) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ x.ObjectId.EmitProtobuf(mm.AppendMessage(2))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Address) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Address")
+ }
+ switch fc.FieldNum {
+ case 1: // ContainerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
+ }
+ x.ContainerId = new(ContainerID)
+ if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // ObjectId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ObjectId")
+ }
+ x.ObjectId = new(ObjectID)
+ if err := x.ObjectId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *Address) GetContainerId() *ContainerID {
+ if x != nil {
+ return x.ContainerId
+ }
+ return nil
+}
+func (x *Address) SetContainerId(v *ContainerID) {
+ x.ContainerId = v
+}
+func (x *Address) GetObjectId() *ObjectID {
+ if x != nil {
+ return x.ObjectId
+ }
+ return nil
+}
+func (x *Address) SetObjectId(v *ObjectID) {
+ x.ObjectId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Address) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Address) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"containerID\":"
+ out.RawString(prefix[1:])
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"objectID\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Address) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Address) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "containerID":
+ {
+ var f *ContainerID
+ f = new(ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.ContainerId = f
+ }
+ case "objectID":
+ {
+ var f *ObjectID
+ f = new(ObjectID)
+ f.UnmarshalEasyJSON(in)
+ x.ObjectId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ObjectID struct {
+ Value []byte `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ObjectID)(nil)
+ _ encoding.ProtoUnmarshaler = (*ObjectID)(nil)
+ _ json.Marshaler = (*ObjectID)(nil)
+ _ json.Unmarshaler = (*ObjectID)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ObjectID) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ObjectID) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ObjectID) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Value) != 0 {
+ mm.AppendBytes(1, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ObjectID) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ObjectID")
+ }
+ switch fc.FieldNum {
+ case 1: // Value
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *ObjectID) GetValue() []byte {
+ if x != nil {
+ return x.Value
+ }
+ return nil
+}
+func (x *ObjectID) SetValue(v []byte) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ObjectID) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ObjectID) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ObjectID) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ObjectID) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "value":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ContainerID struct {
+ Value []byte `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ContainerID)(nil)
+ _ encoding.ProtoUnmarshaler = (*ContainerID)(nil)
+ _ json.Marshaler = (*ContainerID)(nil)
+ _ json.Unmarshaler = (*ContainerID)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ContainerID) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ContainerID) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ContainerID) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Value) != 0 {
+ mm.AppendBytes(1, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ContainerID) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ContainerID")
+ }
+ switch fc.FieldNum {
+ case 1: // Value
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *ContainerID) GetValue() []byte {
+ if x != nil {
+ return x.Value
+ }
+ return nil
+}
+func (x *ContainerID) SetValue(v []byte) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ContainerID) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ContainerID) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ContainerID) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ContainerID) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "value":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type OwnerID struct {
+ Value []byte `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*OwnerID)(nil)
+ _ encoding.ProtoUnmarshaler = (*OwnerID)(nil)
+ _ json.Marshaler = (*OwnerID)(nil)
+ _ json.Unmarshaler = (*OwnerID)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *OwnerID) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *OwnerID) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *OwnerID) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Value) != 0 {
+ mm.AppendBytes(1, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *OwnerID) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "OwnerID")
+ }
+ switch fc.FieldNum {
+ case 1: // Value
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *OwnerID) GetValue() []byte {
+ if x != nil {
+ return x.Value
+ }
+ return nil
+}
+func (x *OwnerID) SetValue(v []byte) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *OwnerID) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *OwnerID) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *OwnerID) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *OwnerID) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "value":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Version struct {
+ Major uint32 `json:"major"`
+ Minor uint32 `json:"minor"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Version)(nil)
+ _ encoding.ProtoUnmarshaler = (*Version)(nil)
+ _ json.Marshaler = (*Version)(nil)
+ _ json.Unmarshaler = (*Version)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Version) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt32Size(1, x.Major)
+ size += proto.UInt32Size(2, x.Minor)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Version) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Version) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Major != 0 {
+ mm.AppendUint32(1, x.Major)
+ }
+ if x.Minor != 0 {
+ mm.AppendUint32(2, x.Minor)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Version) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Version")
+ }
+ switch fc.FieldNum {
+ case 1: // Major
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Major")
+ }
+ x.Major = data
+ case 2: // Minor
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Minor")
+ }
+ x.Minor = data
+ }
+ }
+ return nil
+}
+func (x *Version) GetMajor() uint32 {
+ if x != nil {
+ return x.Major
+ }
+ return 0
+}
+func (x *Version) SetMajor(v uint32) {
+ x.Major = v
+}
+func (x *Version) GetMinor() uint32 {
+ if x != nil {
+ return x.Minor
+ }
+ return 0
+}
+func (x *Version) SetMinor(v uint32) {
+ x.Minor = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Version) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Version) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"major\":"
+ out.RawString(prefix[1:])
+ out.Uint32(x.Major)
+ }
+ {
+ const prefix string = ",\"minor\":"
+ out.RawString(prefix)
+ out.Uint32(x.Minor)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Version) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Version) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "major":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Major = f
+ }
+ case "minor":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Minor = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Signature struct {
+ Key []byte `json:"key"`
+ Sign []byte `json:"signature"`
+ Scheme SignatureScheme `json:"scheme"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Signature)(nil)
+ _ encoding.ProtoUnmarshaler = (*Signature)(nil)
+ _ json.Marshaler = (*Signature)(nil)
+ _ json.Unmarshaler = (*Signature)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Signature) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.Key)
+ size += proto.BytesSize(2, x.Sign)
+ size += proto.EnumSize(3, int32(x.Scheme))
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Signature) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Signature) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Key) != 0 {
+ mm.AppendBytes(1, x.Key)
+ }
+ if len(x.Sign) != 0 {
+ mm.AppendBytes(2, x.Sign)
+ }
+ if int32(x.Scheme) != 0 {
+ mm.AppendInt32(3, int32(x.Scheme))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Signature) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Signature")
+ }
+ switch fc.FieldNum {
+ case 1: // Key
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 2: // Sign
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Sign")
+ }
+ x.Sign = data
+ case 3: // Scheme
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Scheme")
+ }
+ x.Scheme = SignatureScheme(data)
+ }
+ }
+ return nil
+}
+func (x *Signature) GetKey() []byte {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+func (x *Signature) SetKey(v []byte) {
+ x.Key = v
+}
+func (x *Signature) GetSign() []byte {
+ if x != nil {
+ return x.Sign
+ }
+ return nil
+}
+func (x *Signature) SetSign(v []byte) {
+ x.Sign = v
+}
+func (x *Signature) GetScheme() SignatureScheme {
+ if x != nil {
+ return x.Scheme
+ }
+ return 0
+}
+func (x *Signature) SetScheme(v SignatureScheme) {
+ x.Scheme = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Signature) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Signature) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.Key)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Sign)
+ }
+ {
+ const prefix string = ",\"scheme\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.Scheme))
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Signature) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Signature) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "key":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Key = f
+ }
+ case "signature":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Sign = f
+ }
+ case "scheme":
+ {
+ var f SignatureScheme
+ var parsedValue SignatureScheme
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := SignatureScheme_value[v]; ok {
+ parsedValue = SignatureScheme(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = SignatureScheme(vv)
+ case float64:
+ parsedValue = SignatureScheme(v)
+ }
+ f = parsedValue
+ x.Scheme = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type SignatureRFC6979 struct {
+ Key []byte `json:"key"`
+ Sign []byte `json:"signature"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SignatureRFC6979)(nil)
+ _ encoding.ProtoUnmarshaler = (*SignatureRFC6979)(nil)
+ _ json.Marshaler = (*SignatureRFC6979)(nil)
+ _ json.Unmarshaler = (*SignatureRFC6979)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SignatureRFC6979) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.Key)
+ size += proto.BytesSize(2, x.Sign)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SignatureRFC6979) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SignatureRFC6979) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Key) != 0 {
+ mm.AppendBytes(1, x.Key)
+ }
+ if len(x.Sign) != 0 {
+ mm.AppendBytes(2, x.Sign)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SignatureRFC6979) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SignatureRFC6979")
+ }
+ switch fc.FieldNum {
+ case 1: // Key
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 2: // Sign
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Sign")
+ }
+ x.Sign = data
+ }
+ }
+ return nil
+}
+func (x *SignatureRFC6979) GetKey() []byte {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+func (x *SignatureRFC6979) SetKey(v []byte) {
+ x.Key = v
+}
+func (x *SignatureRFC6979) GetSign() []byte {
+ if x != nil {
+ return x.Sign
+ }
+ return nil
+}
+func (x *SignatureRFC6979) SetSign(v []byte) {
+ x.Sign = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SignatureRFC6979) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SignatureRFC6979) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.Key)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Sign)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SignatureRFC6979) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SignatureRFC6979) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "key":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Key = f
+ }
+ case "signature":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Sign = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Checksum struct {
+ Type ChecksumType `json:"type"`
+ Sum []byte `json:"sum"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Checksum)(nil)
+ _ encoding.ProtoUnmarshaler = (*Checksum)(nil)
+ _ json.Marshaler = (*Checksum)(nil)
+ _ json.Unmarshaler = (*Checksum)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Checksum) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.EnumSize(1, int32(x.Type))
+ size += proto.BytesSize(2, x.Sum)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Checksum) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Checksum) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if int32(x.Type) != 0 {
+ mm.AppendInt32(1, int32(x.Type))
+ }
+ if len(x.Sum) != 0 {
+ mm.AppendBytes(2, x.Sum)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Checksum) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Checksum")
+ }
+ switch fc.FieldNum {
+ case 1: // Type
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Type")
+ }
+ x.Type = ChecksumType(data)
+ case 2: // Sum
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Sum")
+ }
+ x.Sum = data
+ }
+ }
+ return nil
+}
+func (x *Checksum) GetType() ChecksumType {
+ if x != nil {
+ return x.Type
+ }
+ return 0
+}
+func (x *Checksum) SetType(v ChecksumType) {
+ x.Type = v
+}
+func (x *Checksum) GetSum() []byte {
+ if x != nil {
+ return x.Sum
+ }
+ return nil
+}
+func (x *Checksum) SetSum(v []byte) {
+ x.Sum = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Checksum) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Checksum) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"type\":"
+ out.RawString(prefix[1:])
+ out.Int32(int32(x.Type))
+ }
+ {
+ const prefix string = ",\"sum\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Sum)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Checksum) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Checksum) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "type":
+ {
+ var f ChecksumType
+ var parsedValue ChecksumType
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := ChecksumType_value[v]; ok {
+ parsedValue = ChecksumType(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = ChecksumType(vv)
+ case float64:
+ parsedValue = ChecksumType(v)
+ }
+ f = parsedValue
+ x.Type = f
+ }
+ case "sum":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Sum = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/refs/grpc/types_frostfs_fuzz.go b/refs/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..a64a9bf
--- /dev/null
+++ b/refs/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,159 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package refs
+
+func DoFuzzProtoAddress(data []byte) int {
+ msg := new(Address)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONAddress(data []byte) int {
+ msg := new(Address)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoObjectID(data []byte) int {
+ msg := new(ObjectID)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONObjectID(data []byte) int {
+ msg := new(ObjectID)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoContainerID(data []byte) int {
+ msg := new(ContainerID)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONContainerID(data []byte) int {
+ msg := new(ContainerID)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoOwnerID(data []byte) int {
+ msg := new(OwnerID)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONOwnerID(data []byte) int {
+ msg := new(OwnerID)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoVersion(data []byte) int {
+ msg := new(Version)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONVersion(data []byte) int {
+ msg := new(Version)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoSignature(data []byte) int {
+ msg := new(Signature)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONSignature(data []byte) int {
+ msg := new(Signature)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoSignatureRFC6979(data []byte) int {
+ msg := new(SignatureRFC6979)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONSignatureRFC6979(data []byte) int {
+ msg := new(SignatureRFC6979)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoChecksum(data []byte) int {
+ msg := new(Checksum)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONChecksum(data []byte) int {
+ msg := new(Checksum)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/refs/grpc/types_frostfs_test.go b/refs/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..9b19892
--- /dev/null
+++ b/refs/grpc/types_frostfs_test.go
@@ -0,0 +1,91 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package refs
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoAddress(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoAddress(data)
+ })
+}
+func FuzzJSONAddress(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONAddress(data)
+ })
+}
+func FuzzProtoObjectID(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoObjectID(data)
+ })
+}
+func FuzzJSONObjectID(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONObjectID(data)
+ })
+}
+func FuzzProtoContainerID(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoContainerID(data)
+ })
+}
+func FuzzJSONContainerID(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONContainerID(data)
+ })
+}
+func FuzzProtoOwnerID(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoOwnerID(data)
+ })
+}
+func FuzzJSONOwnerID(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONOwnerID(data)
+ })
+}
+func FuzzProtoVersion(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoVersion(data)
+ })
+}
+func FuzzJSONVersion(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONVersion(data)
+ })
+}
+func FuzzProtoSignature(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoSignature(data)
+ })
+}
+func FuzzJSONSignature(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONSignature(data)
+ })
+}
+func FuzzProtoSignatureRFC6979(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoSignatureRFC6979(data)
+ })
+}
+func FuzzJSONSignatureRFC6979(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONSignatureRFC6979(data)
+ })
+}
+func FuzzProtoChecksum(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoChecksum(data)
+ })
+}
+func FuzzJSONChecksum(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONChecksum(data)
+ })
+}
diff --git a/rpc/client/client.go b/rpc/client/client.go
index 7e914db..d9ce2fc 100644
--- a/rpc/client/client.go
+++ b/rpc/client/client.go
@@ -1,6 +1,7 @@
package client
import (
+ "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
)
@@ -20,6 +21,7 @@ func New(opts ...Option) *Client {
opt(&c.cfg)
}
+ c.grpcDialOpts = append(c.grpcDialOpts, grpc.WithDefaultCallOptions(grpc.ForceCodec(encoding.ProtoCodec{})))
if c.tlsCfg != nil {
c.grpcDialOpts = append(c.grpcDialOpts, grpc.WithTransportCredentials(credentials.NewTLS(c.tlsCfg)))
}
diff --git a/rpc/message/encoding.go b/rpc/message/encoding.go
index 715f015..d656acd 100644
--- a/rpc/message/encoding.go
+++ b/rpc/message/encoding.go
@@ -1,17 +1,14 @@
package message
import (
- "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
- "google.golang.org/protobuf/encoding/protojson"
- "google.golang.org/protobuf/proto"
+ "encoding/json"
)
// GRPCConvertedMessage is an interface
// of the gRPC message that is used
// for Message encoding/decoding.
type GRPCConvertedMessage interface {
- grpc.Message
- proto.Message
+ UnmarshalProtobuf([]byte) error
}
// Unmarshal decodes m from its Protobuf binary representation
@@ -19,7 +16,7 @@ type GRPCConvertedMessage interface {
//
// gm should be tof the same type as the m.ToGRPCMessage() return.
func Unmarshal(m Message, data []byte, gm GRPCConvertedMessage) error {
- if err := proto.Unmarshal(data, gm); err != nil {
+ if err := gm.UnmarshalProtobuf(data); err != nil {
return err
}
@@ -28,21 +25,16 @@ func Unmarshal(m Message, data []byte, gm GRPCConvertedMessage) error {
// MarshalJSON encodes m to Protobuf JSON representation.
func MarshalJSON(m Message) ([]byte, error) {
- return protojson.MarshalOptions{
- EmitUnpopulated: true,
- }.Marshal(
- m.ToGRPCMessage().(proto.Message),
- )
+ return json.Marshal(m.ToGRPCMessage())
}
// UnmarshalJSON decodes m from its Protobuf JSON representation
// via related gRPC message.
//
// gm should be tof the same type as the m.ToGRPCMessage() return.
-func UnmarshalJSON(m Message, data []byte, gm GRPCConvertedMessage) error {
- if err := protojson.Unmarshal(data, gm); err != nil {
+func UnmarshalJSON(m Message, data []byte, gm any) error {
+ if err := json.Unmarshal(data, gm); err != nil {
return err
}
-
return m.FromGRPCMessage(gm)
}
diff --git a/rpc/netmap.go b/rpc/netmap.go
index 38bdd6d..8119477 100644
--- a/rpc/netmap.go
+++ b/rpc/netmap.go
@@ -37,7 +37,6 @@ func NetworkInfo(
opts ...client.CallOption,
) (*netmap.NetworkInfoResponse, error) {
resp := new(netmap.NetworkInfoResponse)
-
err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceNetmap, rpcNetmapNetInfo), req, resp, opts...)
if err != nil {
return nil, err
diff --git a/session/convert.go b/session/convert.go
index 4197935..b7f334e 100644
--- a/session/convert.go
+++ b/session/convert.go
@@ -460,7 +460,7 @@ func (r *RequestMetaHeader) FromGRPCMessage(m grpc.Message) error {
r.epoch = v.GetEpoch()
r.ttl = v.GetTtl()
- r.netMagic = v.GetNetworkMagic()
+ r.netMagic = v.GetMagicNumber()
return nil
}
diff --git a/session/grpc/service.go b/session/grpc/service.go
deleted file mode 100644
index 6e02328..0000000
--- a/session/grpc/service.go
+++ /dev/null
@@ -1,55 +0,0 @@
-package session
-
-import (
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
-)
-
-// SetOwnerId sets identifier of the session initiator.
-func (m *CreateRequest_Body) SetOwnerId(v *refs.OwnerID) {
- m.OwnerId = v
-}
-
-// SetExpiration sets lifetime of the session.
-func (m *CreateRequest_Body) SetExpiration(v uint64) {
- m.Expiration = v
-}
-
-// SetBody sets body of the request.
-func (m *CreateRequest) SetBody(v *CreateRequest_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the request.
-func (m *CreateRequest) SetMetaHeader(v *RequestMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the request.
-func (m *CreateRequest) SetVerifyHeader(v *RequestVerificationHeader) {
- m.VerifyHeader = v
-}
-
-// SetId sets identifier of the session token.
-func (m *CreateResponse_Body) SetId(v []byte) {
- m.Id = v
-}
-
-// SetSessionKey sets session public key in a binary format.
-func (m *CreateResponse_Body) SetSessionKey(v []byte) {
- m.SessionKey = v
-}
-
-// SetBody sets body of the response.
-func (m *CreateResponse) SetBody(v *CreateResponse_Body) {
- m.Body = v
-}
-
-// SetMetaHeader sets meta header of the response.
-func (m *CreateResponse) SetMetaHeader(v *ResponseMetaHeader) {
- m.MetaHeader = v
-}
-
-// SetVerifyHeader sets verification header of the response.
-func (m *CreateResponse) SetVerifyHeader(v *ResponseVerificationHeader) {
- m.VerifyHeader = v
-}
diff --git a/session/grpc/service.pb.go b/session/grpc/service.pb.go
deleted file mode 100644
index b5e999f..0000000
--- a/session/grpc/service.pb.go
+++ /dev/null
@@ -1,458 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: session/grpc/service.proto
-
-package session
-
-import (
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Information necessary for opening a session.
-type CreateRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of a create session token request message.
- Body *CreateRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries request meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *RequestMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries request verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *RequestVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *CreateRequest) Reset() {
- *x = CreateRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_service_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *CreateRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CreateRequest) ProtoMessage() {}
-
-func (x *CreateRequest) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_service_proto_msgTypes[0]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead.
-func (*CreateRequest) Descriptor() ([]byte, []int) {
- return file_session_grpc_service_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *CreateRequest) GetBody() *CreateRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *CreateRequest) GetMetaHeader() *RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *CreateRequest) GetVerifyHeader() *RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Information about the opened session.
-type CreateResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Body of create session token response message.
- Body *CreateResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Carries response meta information. Header data is used only to regulate
- // message transport and does not affect request execution.
- MetaHeader *ResponseMetaHeader `protobuf:"bytes,2,opt,name=meta_header,json=metaHeader,proto3" json:"meta_header,omitempty"`
- // Carries response verification information. This header is used to
- // authenticate the nodes of the message route and check the correctness of
- // transmission.
- VerifyHeader *ResponseVerificationHeader `protobuf:"bytes,3,opt,name=verify_header,json=verifyHeader,proto3" json:"verify_header,omitempty"`
-}
-
-func (x *CreateResponse) Reset() {
- *x = CreateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_service_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *CreateResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CreateResponse) ProtoMessage() {}
-
-func (x *CreateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_service_proto_msgTypes[1]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use CreateResponse.ProtoReflect.Descriptor instead.
-func (*CreateResponse) Descriptor() ([]byte, []int) {
- return file_session_grpc_service_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *CreateResponse) GetBody() *CreateResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *CreateResponse) GetMetaHeader() *ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-
-func (x *CreateResponse) GetVerifyHeader() *ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-
-// Session creation request body
-type CreateRequest_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Session initiating user's or node's key derived `OwnerID`
- OwnerId *grpc.OwnerID `protobuf:"bytes,1,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
- // Session expiration `Epoch`
- Expiration uint64 `protobuf:"varint,2,opt,name=expiration,proto3" json:"expiration,omitempty"`
-}
-
-func (x *CreateRequest_Body) Reset() {
- *x = CreateRequest_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_service_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *CreateRequest_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CreateRequest_Body) ProtoMessage() {}
-
-func (x *CreateRequest_Body) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_service_proto_msgTypes[2]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use CreateRequest_Body.ProtoReflect.Descriptor instead.
-func (*CreateRequest_Body) Descriptor() ([]byte, []int) {
- return file_session_grpc_service_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *CreateRequest_Body) GetOwnerId() *grpc.OwnerID {
- if x != nil {
- return x.OwnerId
- }
- return nil
-}
-
-func (x *CreateRequest_Body) GetExpiration() uint64 {
- if x != nil {
- return x.Expiration
- }
- return 0
-}
-
-// Session creation response body
-type CreateResponse_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Identifier of a newly created session
- Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
- // Public key used for session
- SessionKey []byte `protobuf:"bytes,2,opt,name=session_key,json=sessionKey,proto3" json:"session_key,omitempty"`
-}
-
-func (x *CreateResponse_Body) Reset() {
- *x = CreateResponse_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_service_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *CreateResponse_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*CreateResponse_Body) ProtoMessage() {}
-
-func (x *CreateResponse_Body) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_service_proto_msgTypes[3]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use CreateResponse_Body.ProtoReflect.Descriptor instead.
-func (*CreateResponse_Body) Descriptor() ([]byte, []int) {
- return file_session_grpc_service_proto_rawDescGZIP(), []int{1, 0}
-}
-
-func (x *CreateResponse_Body) GetId() []byte {
- if x != nil {
- return x.Id
- }
- return nil
-}
-
-func (x *CreateResponse_Body) GetSessionKey() []byte {
- if x != nil {
- return x.SessionKey
- }
- return nil
-}
-
-var File_session_grpc_service_proto protoreflect.FileDescriptor
-
-var file_session_grpc_service_proto_rawDesc = []byte{
- 0x0a, 0x1a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x73,
- 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a,
- 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f,
- 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x22, 0xc0, 0x02, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a,
- 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65,
- 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65,
- 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68,
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66,
- 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x5a, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12,
- 0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
- 0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65,
- 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74,
- 0x69, 0x6f, 0x6e, 0x22, 0xa1, 0x02, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f,
- 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
- 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a,
- 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65,
- 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65,
- 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x37,
- 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x32, 0x5f, 0x0a, 0x0e, 0x53, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x43, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x64, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x2e,
- 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75,
- 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
- 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x65, 0x73, 0x73,
- 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0xaa, 0x02, 0x1b, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61,
- 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x62, 0x06,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_session_grpc_service_proto_rawDescOnce sync.Once
- file_session_grpc_service_proto_rawDescData = file_session_grpc_service_proto_rawDesc
-)
-
-func file_session_grpc_service_proto_rawDescGZIP() []byte {
- file_session_grpc_service_proto_rawDescOnce.Do(func() {
- file_session_grpc_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_session_grpc_service_proto_rawDescData)
- })
- return file_session_grpc_service_proto_rawDescData
-}
-
-var file_session_grpc_service_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
-var file_session_grpc_service_proto_goTypes = []interface{}{
- (*CreateRequest)(nil), // 0: neo.fs.v2.session.CreateRequest
- (*CreateResponse)(nil), // 1: neo.fs.v2.session.CreateResponse
- (*CreateRequest_Body)(nil), // 2: neo.fs.v2.session.CreateRequest.Body
- (*CreateResponse_Body)(nil), // 3: neo.fs.v2.session.CreateResponse.Body
- (*RequestMetaHeader)(nil), // 4: neo.fs.v2.session.RequestMetaHeader
- (*RequestVerificationHeader)(nil), // 5: neo.fs.v2.session.RequestVerificationHeader
- (*ResponseMetaHeader)(nil), // 6: neo.fs.v2.session.ResponseMetaHeader
- (*ResponseVerificationHeader)(nil), // 7: neo.fs.v2.session.ResponseVerificationHeader
- (*grpc.OwnerID)(nil), // 8: neo.fs.v2.refs.OwnerID
-}
-var file_session_grpc_service_proto_depIdxs = []int32{
- 2, // 0: neo.fs.v2.session.CreateRequest.body:type_name -> neo.fs.v2.session.CreateRequest.Body
- 4, // 1: neo.fs.v2.session.CreateRequest.meta_header:type_name -> neo.fs.v2.session.RequestMetaHeader
- 5, // 2: neo.fs.v2.session.CreateRequest.verify_header:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 3, // 3: neo.fs.v2.session.CreateResponse.body:type_name -> neo.fs.v2.session.CreateResponse.Body
- 6, // 4: neo.fs.v2.session.CreateResponse.meta_header:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 7, // 5: neo.fs.v2.session.CreateResponse.verify_header:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 8, // 6: neo.fs.v2.session.CreateRequest.Body.owner_id:type_name -> neo.fs.v2.refs.OwnerID
- 0, // 7: neo.fs.v2.session.SessionService.Create:input_type -> neo.fs.v2.session.CreateRequest
- 1, // 8: neo.fs.v2.session.SessionService.Create:output_type -> neo.fs.v2.session.CreateResponse
- 8, // [8:9] is the sub-list for method output_type
- 7, // [7:8] is the sub-list for method input_type
- 7, // [7:7] is the sub-list for extension type_name
- 7, // [7:7] is the sub-list for extension extendee
- 0, // [0:7] is the sub-list for field type_name
-}
-
-func init() { file_session_grpc_service_proto_init() }
-func file_session_grpc_service_proto_init() {
- if File_session_grpc_service_proto != nil {
- return
- }
- file_session_grpc_types_proto_init()
- if !protoimpl.UnsafeEnabled {
- file_session_grpc_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CreateRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CreateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CreateRequest_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CreateResponse_Body); 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_session_grpc_service_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 4,
- NumExtensions: 0,
- NumServices: 1,
- },
- GoTypes: file_session_grpc_service_proto_goTypes,
- DependencyIndexes: file_session_grpc_service_proto_depIdxs,
- MessageInfos: file_session_grpc_service_proto_msgTypes,
- }.Build()
- File_session_grpc_service_proto = out.File
- file_session_grpc_service_proto_rawDesc = nil
- file_session_grpc_service_proto_goTypes = nil
- file_session_grpc_service_proto_depIdxs = nil
-}
diff --git a/session/grpc/service_frostfs.pb.go b/session/grpc/service_frostfs.pb.go
new file mode 100644
index 0000000..cfec4d6
--- /dev/null
+++ b/session/grpc/service_frostfs.pb.go
@@ -0,0 +1,781 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package session
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+type CreateRequest_Body struct {
+ OwnerId *grpc.OwnerID `json:"ownerId"`
+ Expiration uint64 `json:"expiration"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*CreateRequest_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*CreateRequest_Body)(nil)
+ _ json.Marshaler = (*CreateRequest_Body)(nil)
+ _ json.Unmarshaler = (*CreateRequest_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *CreateRequest_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.OwnerId)
+ size += proto.UInt64Size(2, x.Expiration)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *CreateRequest_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *CreateRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ x.OwnerId.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Expiration != 0 {
+ mm.AppendUint64(2, x.Expiration)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *CreateRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "CreateRequest_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // OwnerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OwnerId")
+ }
+ x.OwnerId = new(grpc.OwnerID)
+ if err := x.OwnerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Expiration
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Expiration")
+ }
+ x.Expiration = data
+ }
+ }
+ return nil
+}
+func (x *CreateRequest_Body) GetOwnerId() *grpc.OwnerID {
+ if x != nil {
+ return x.OwnerId
+ }
+ return nil
+}
+func (x *CreateRequest_Body) SetOwnerId(v *grpc.OwnerID) {
+ x.OwnerId = v
+}
+func (x *CreateRequest_Body) GetExpiration() uint64 {
+ if x != nil {
+ return x.Expiration
+ }
+ return 0
+}
+func (x *CreateRequest_Body) SetExpiration(v uint64) {
+ x.Expiration = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *CreateRequest_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *CreateRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"ownerId\":"
+ out.RawString(prefix[1:])
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"expiration\":"
+ out.RawString(prefix)
+ out.Uint64(x.Expiration)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *CreateRequest_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *CreateRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "ownerId":
+ {
+ var f *grpc.OwnerID
+ f = new(grpc.OwnerID)
+ f.UnmarshalEasyJSON(in)
+ x.OwnerId = f
+ }
+ case "expiration":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Expiration = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type CreateRequest struct {
+ Body *CreateRequest_Body `json:"body"`
+ MetaHeader *RequestMetaHeader `json:"metaHeader"`
+ VerifyHeader *RequestVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*CreateRequest)(nil)
+ _ encoding.ProtoUnmarshaler = (*CreateRequest)(nil)
+ _ json.Marshaler = (*CreateRequest)(nil)
+ _ json.Unmarshaler = (*CreateRequest)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *CreateRequest) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *CreateRequest) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *CreateRequest) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *CreateRequest) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *CreateRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *CreateRequest) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "CreateRequest")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(CreateRequest_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(RequestMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(RequestVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *CreateRequest) GetBody() *CreateRequest_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *CreateRequest) SetBody(v *CreateRequest_Body) {
+ x.Body = v
+}
+func (x *CreateRequest) GetMetaHeader() *RequestMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *CreateRequest) SetMetaHeader(v *RequestMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *CreateRequest) GetVerifyHeader() *RequestVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *CreateRequest) SetVerifyHeader(v *RequestVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *CreateRequest) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *CreateRequest) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *CreateRequest) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *CreateRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *CreateRequest_Body
+ f = new(CreateRequest_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *RequestMetaHeader
+ f = new(RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *RequestVerificationHeader
+ f = new(RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type CreateResponse_Body struct {
+ Id []byte `json:"id"`
+ SessionKey []byte `json:"sessionKey"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*CreateResponse_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*CreateResponse_Body)(nil)
+ _ json.Marshaler = (*CreateResponse_Body)(nil)
+ _ json.Unmarshaler = (*CreateResponse_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *CreateResponse_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.Id)
+ size += proto.BytesSize(2, x.SessionKey)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *CreateResponse_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *CreateResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Id) != 0 {
+ mm.AppendBytes(1, x.Id)
+ }
+ if len(x.SessionKey) != 0 {
+ mm.AppendBytes(2, x.SessionKey)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *CreateResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "CreateResponse_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Id
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Id")
+ }
+ x.Id = data
+ case 2: // SessionKey
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SessionKey")
+ }
+ x.SessionKey = data
+ }
+ }
+ return nil
+}
+func (x *CreateResponse_Body) GetId() []byte {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+func (x *CreateResponse_Body) SetId(v []byte) {
+ x.Id = v
+}
+func (x *CreateResponse_Body) GetSessionKey() []byte {
+ if x != nil {
+ return x.SessionKey
+ }
+ return nil
+}
+func (x *CreateResponse_Body) SetSessionKey(v []byte) {
+ x.SessionKey = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *CreateResponse_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *CreateResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"id\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.Id)
+ }
+ {
+ const prefix string = ",\"sessionKey\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.SessionKey)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *CreateResponse_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *CreateResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "id":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Id = f
+ }
+ case "sessionKey":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.SessionKey = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type CreateResponse struct {
+ Body *CreateResponse_Body `json:"body"`
+ MetaHeader *ResponseMetaHeader `json:"metaHeader"`
+ VerifyHeader *ResponseVerificationHeader `json:"verifyHeader"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*CreateResponse)(nil)
+ _ encoding.ProtoUnmarshaler = (*CreateResponse)(nil)
+ _ json.Marshaler = (*CreateResponse)(nil)
+ _ json.Unmarshaler = (*CreateResponse)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *CreateResponse) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.MetaHeader)
+ size += proto.NestedStructureSize(3, x.VerifyHeader)
+ return size
+}
+
+// ReadSignedData fills buf with signed data of x.
+// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
+//
+// Returns any error encountered which did not allow writing the data completely.
+// Otherwise, returns the buffer in which the data is written.
+//
+// Structures with the same field values have the same signed data.
+func (x *CreateResponse) SignedDataSize() int {
+ return x.GetBody().StableSize()
+}
+
+// SignedDataSize returns size of the request signed data in bytes.
+//
+// Structures with the same field values have the same signed data size.
+func (x *CreateResponse) ReadSignedData(buf []byte) ([]byte, error) {
+ return x.GetBody().MarshalProtobuf(buf), nil
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *CreateResponse) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *CreateResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *CreateResponse) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "CreateResponse")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(CreateResponse_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
+ }
+ x.MetaHeader = new(ResponseMetaHeader)
+ if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // VerifyHeader
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
+ }
+ x.VerifyHeader = new(ResponseVerificationHeader)
+ if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *CreateResponse) GetBody() *CreateResponse_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *CreateResponse) SetBody(v *CreateResponse_Body) {
+ x.Body = v
+}
+func (x *CreateResponse) GetMetaHeader() *ResponseMetaHeader {
+ if x != nil {
+ return x.MetaHeader
+ }
+ return nil
+}
+func (x *CreateResponse) SetMetaHeader(v *ResponseMetaHeader) {
+ x.MetaHeader = v
+}
+func (x *CreateResponse) GetVerifyHeader() *ResponseVerificationHeader {
+ if x != nil {
+ return x.VerifyHeader
+ }
+ return nil
+}
+func (x *CreateResponse) SetVerifyHeader(v *ResponseVerificationHeader) {
+ x.VerifyHeader = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *CreateResponse) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *CreateResponse) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *CreateResponse) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *CreateResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *CreateResponse_Body
+ f = new(CreateResponse_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "metaHeader":
+ {
+ var f *ResponseMetaHeader
+ f = new(ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.MetaHeader = f
+ }
+ case "verifyHeader":
+ {
+ var f *ResponseVerificationHeader
+ f = new(ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.VerifyHeader = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/session/grpc/service_frostfs_fuzz.go b/session/grpc/service_frostfs_fuzz.go
new file mode 100644
index 0000000..759361c
--- /dev/null
+++ b/session/grpc/service_frostfs_fuzz.go
@@ -0,0 +1,45 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package session
+
+func DoFuzzProtoCreateRequest(data []byte) int {
+ msg := new(CreateRequest)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONCreateRequest(data []byte) int {
+ msg := new(CreateRequest)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoCreateResponse(data []byte) int {
+ msg := new(CreateResponse)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONCreateResponse(data []byte) int {
+ msg := new(CreateResponse)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/session/grpc/service_frostfs_test.go b/session/grpc/service_frostfs_test.go
new file mode 100644
index 0000000..fc8664e
--- /dev/null
+++ b/session/grpc/service_frostfs_test.go
@@ -0,0 +1,31 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package session
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoCreateRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoCreateRequest(data)
+ })
+}
+func FuzzJSONCreateRequest(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONCreateRequest(data)
+ })
+}
+func FuzzProtoCreateResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoCreateResponse(data)
+ })
+}
+func FuzzJSONCreateResponse(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONCreateResponse(data)
+ })
+}
diff --git a/session/grpc/types.go b/session/grpc/types.go
deleted file mode 100644
index 857c45e..0000000
--- a/session/grpc/types.go
+++ /dev/null
@@ -1,246 +0,0 @@
-package session
-
-import (
- acl "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- status "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/grpc"
-)
-
-// SetKey sets key to the X-Header.
-func (m *XHeader) SetKey(v string) {
- m.Key = v
-}
-
-// SetValue sets value of the X-Header.
-func (m *XHeader) SetValue(v string) {
- m.Value = v
-}
-
-// SetExp sets epoch number of the token expiration.
-func (m *SessionToken_Body_TokenLifetime) SetExp(v uint64) {
- m.Exp = v
-}
-
-// SetNbf sets starting epoch number of the token.
-func (m *SessionToken_Body_TokenLifetime) SetNbf(v uint64) {
- m.Nbf = v
-}
-
-// SetIat sets the number of the epoch in which the token was issued.
-func (m *SessionToken_Body_TokenLifetime) SetIat(v uint64) {
- m.Iat = v
-}
-
-// SetId sets identifier of the session token.
-func (m *SessionToken_Body) SetId(v []byte) {
- m.Id = v
-}
-
-// SetOwnerId sets identifier of the session token owner.
-func (m *SessionToken_Body) SetOwnerId(v *refs.OwnerID) {
- m.OwnerId = v
-}
-
-// SetLifetime sets lifetime of the session token.
-func (m *SessionToken_Body) SetLifetime(v *SessionToken_Body_TokenLifetime) {
- m.Lifetime = v
-}
-
-// SetSessionKey sets public session key in a binary format.
-func (m *SessionToken_Body) SetSessionKey(v []byte) {
- m.SessionKey = v
-}
-
-// SetObjectAddressContext sets object context of the session token.
-func (m *SessionToken_Body) SetObject(v *ObjectSessionContext) {
- m.Context = &SessionToken_Body_Object{
- Object: v,
- }
-}
-
-// SetContainer sets container context of the session token.
-func (m *SessionToken_Body) SetContainer(v *ContainerSessionContext) {
- m.Context = &SessionToken_Body_Container{
- Container: v,
- }
-}
-
-// SetTarget specifies objects involved in the object session.
-func (m *ObjectSessionContext) SetTarget(tgt *ObjectSessionContext_Target) {
- m.Target = tgt
-}
-
-// SetVerb sets type of request for which the token is issued.
-func (m *ObjectSessionContext) SetVerb(v ObjectSessionContext_Verb) {
- m.Verb = v
-}
-
-// SetVerb sets type of request for which the token is issued.
-func (x *ContainerSessionContext) SetVerb(v ContainerSessionContext_Verb) {
- x.Verb = v
-}
-
-// SetWildcard sets wildcard flag of the container session.
-func (x *ContainerSessionContext) SetWildcard(v bool) {
- x.Wildcard = v
-}
-
-// SetContainerId sets identifier of the container related to the session.
-func (x *ContainerSessionContext) SetContainerId(v *refs.ContainerID) {
- x.ContainerId = v
-}
-
-// SetBody sets session token body.
-func (m *SessionToken) SetBody(v *SessionToken_Body) {
- m.Body = v
-}
-
-// SetSignature sets session token signature.
-func (m *SessionToken) SetSignature(v *refs.Signature) {
- m.Signature = v
-}
-
-// SetVersion sets client protocol version.
-func (m *RequestMetaHeader) SetVersion(v *refs.Version) {
- m.Version = v
-}
-
-// SetEpoch sets client local epoch.
-func (m *RequestMetaHeader) SetEpoch(v uint64) {
- m.Epoch = v
-}
-
-// SetTtl sets request TTL.
-func (m *RequestMetaHeader) SetTtl(v uint32) {
- m.Ttl = v
-}
-
-// SetXHeaders sets request X-Headers.
-func (m *RequestMetaHeader) SetXHeaders(v []*XHeader) {
- m.XHeaders = v
-}
-
-// SetSessionToken sets session token of the request.
-func (m *RequestMetaHeader) SetSessionToken(v *SessionToken) {
- m.SessionToken = v
-}
-
-// SetBearerToken sets bearer token of the request.
-func (m *RequestMetaHeader) SetBearerToken(v *acl.BearerToken) {
- m.BearerToken = v
-}
-
-// SetOrigin sets origin request meta header.
-func (m *RequestMetaHeader) SetOrigin(v *RequestMetaHeader) {
- m.Origin = v
-}
-
-// GetNetworkMagic returns NeoFS network magic.
-func (m *RequestMetaHeader) GetNetworkMagic() uint64 {
- if m != nil {
- return m.MagicNumber
- }
-
- return 0
-}
-
-// SetMagicNumber sets NeoFS network magic.
-func (m *RequestMetaHeader) SetMagicNumber(v uint64) {
- m.MagicNumber = v
-}
-
-// SetVersion sets server protocol version.
-func (m *ResponseMetaHeader) SetVersion(v *refs.Version) {
- m.Version = v
-}
-
-// SetEpoch sets server local epoch.
-func (m *ResponseMetaHeader) SetEpoch(v uint64) {
- m.Epoch = v
-}
-
-// SetTtl sets response TTL.
-func (m *ResponseMetaHeader) SetTtl(v uint32) {
- m.Ttl = v
-}
-
-// SetXHeaders sets response X-Headers.
-func (m *ResponseMetaHeader) SetXHeaders(v []*XHeader) {
- m.XHeaders = v
-}
-
-// SetOrigin sets origin response meta header.
-func (m *ResponseMetaHeader) SetOrigin(v *ResponseMetaHeader) {
- m.Origin = v
-}
-
-// SetStatus sets response status.
-func (m *ResponseMetaHeader) SetStatus(v *status.Status) {
- m.Status = v
-}
-
-// SetBodySignature sets signature of the request body.
-func (m *RequestVerificationHeader) SetBodySignature(v *refs.Signature) {
- m.BodySignature = v
-}
-
-// SetMetaSignature sets signature of the request meta.
-func (m *RequestVerificationHeader) SetMetaSignature(v *refs.Signature) {
- m.MetaSignature = v
-}
-
-// SetOriginSignature sets signature of the origin verification header of the request.
-func (m *RequestVerificationHeader) SetOriginSignature(v *refs.Signature) {
- m.OriginSignature = v
-}
-
-// SetOrigin sets origin verification header of the request.
-func (m *RequestVerificationHeader) SetOrigin(v *RequestVerificationHeader) {
- m.Origin = v
-}
-
-// SetBodySignature sets signature of the response body.
-func (m *ResponseVerificationHeader) SetBodySignature(v *refs.Signature) {
- m.BodySignature = v
-}
-
-// SetMetaSignature sets signature of the response meta.
-func (m *ResponseVerificationHeader) SetMetaSignature(v *refs.Signature) {
- m.MetaSignature = v
-}
-
-// SetOriginSignature sets signature of the origin verification header of the response.
-func (m *ResponseVerificationHeader) SetOriginSignature(v *refs.Signature) {
- m.OriginSignature = v
-}
-
-// SetOrigin sets origin verification header of the response.
-func (m *ResponseVerificationHeader) SetOrigin(v *ResponseVerificationHeader) {
- m.Origin = v
-}
-
-// FromString parses ObjectSessionContext_Verb from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *ObjectSessionContext_Verb) FromString(s string) bool {
- i, ok := ObjectSessionContext_Verb_value[s]
- if ok {
- *x = ObjectSessionContext_Verb(i)
- }
-
- return ok
-}
-
-// FromString parses ContainerSessionContext_Verb from a string representation,
-// It is a reverse action to String().
-//
-// Returns true if s was parsed successfully.
-func (x *ContainerSessionContext_Verb) FromString(s string) bool {
- i, ok := ContainerSessionContext_Verb_value[s]
- if ok {
- *x = ContainerSessionContext_Verb(i)
- }
-
- return ok
-}
diff --git a/session/grpc/types.pb.go b/session/grpc/types.pb.go
deleted file mode 100644
index 9f51743..0000000
--- a/session/grpc/types.pb.go
+++ /dev/null
@@ -1,1451 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: session/grpc/types.proto
-
-package session
-
-import (
- grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- grpc2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Object request verbs
-type ObjectSessionContext_Verb int32
-
-const (
- // Unknown verb
- ObjectSessionContext_VERB_UNSPECIFIED ObjectSessionContext_Verb = 0
- // Refers to object.Put RPC call
- ObjectSessionContext_PUT ObjectSessionContext_Verb = 1
- // Refers to object.Get RPC call
- ObjectSessionContext_GET ObjectSessionContext_Verb = 2
- // Refers to object.Head RPC call
- ObjectSessionContext_HEAD ObjectSessionContext_Verb = 3
- // Refers to object.Search RPC call
- ObjectSessionContext_SEARCH ObjectSessionContext_Verb = 4
- // Refers to object.Delete RPC call
- ObjectSessionContext_DELETE ObjectSessionContext_Verb = 5
- // Refers to object.GetRange RPC call
- ObjectSessionContext_RANGE ObjectSessionContext_Verb = 6
- // Refers to object.GetRangeHash RPC call
- ObjectSessionContext_RANGEHASH ObjectSessionContext_Verb = 7
- // Refers to object.Patch RPC call
- ObjectSessionContext_PATCH ObjectSessionContext_Verb = 8
-)
-
-// Enum value maps for ObjectSessionContext_Verb.
-var (
- ObjectSessionContext_Verb_name = map[int32]string{
- 0: "VERB_UNSPECIFIED",
- 1: "PUT",
- 2: "GET",
- 3: "HEAD",
- 4: "SEARCH",
- 5: "DELETE",
- 6: "RANGE",
- 7: "RANGEHASH",
- 8: "PATCH",
- }
- ObjectSessionContext_Verb_value = map[string]int32{
- "VERB_UNSPECIFIED": 0,
- "PUT": 1,
- "GET": 2,
- "HEAD": 3,
- "SEARCH": 4,
- "DELETE": 5,
- "RANGE": 6,
- "RANGEHASH": 7,
- "PATCH": 8,
- }
-)
-
-func (x ObjectSessionContext_Verb) Enum() *ObjectSessionContext_Verb {
- p := new(ObjectSessionContext_Verb)
- *p = x
- return p
-}
-
-func (x ObjectSessionContext_Verb) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (ObjectSessionContext_Verb) Descriptor() protoreflect.EnumDescriptor {
- return file_session_grpc_types_proto_enumTypes[0].Descriptor()
-}
-
-func (ObjectSessionContext_Verb) Type() protoreflect.EnumType {
- return &file_session_grpc_types_proto_enumTypes[0]
-}
-
-func (x ObjectSessionContext_Verb) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use ObjectSessionContext_Verb.Descriptor instead.
-func (ObjectSessionContext_Verb) EnumDescriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{0, 0}
-}
-
-// Container request verbs
-type ContainerSessionContext_Verb int32
-
-const (
- // Unknown verb
- ContainerSessionContext_VERB_UNSPECIFIED ContainerSessionContext_Verb = 0
- // Refers to container.Put RPC call
- ContainerSessionContext_PUT ContainerSessionContext_Verb = 1
- // Refers to container.Delete RPC call
- ContainerSessionContext_DELETE ContainerSessionContext_Verb = 2
- // Refers to container.SetExtendedACL RPC call
- ContainerSessionContext_SETEACL ContainerSessionContext_Verb = 3
-)
-
-// Enum value maps for ContainerSessionContext_Verb.
-var (
- ContainerSessionContext_Verb_name = map[int32]string{
- 0: "VERB_UNSPECIFIED",
- 1: "PUT",
- 2: "DELETE",
- 3: "SETEACL",
- }
- ContainerSessionContext_Verb_value = map[string]int32{
- "VERB_UNSPECIFIED": 0,
- "PUT": 1,
- "DELETE": 2,
- "SETEACL": 3,
- }
-)
-
-func (x ContainerSessionContext_Verb) Enum() *ContainerSessionContext_Verb {
- p := new(ContainerSessionContext_Verb)
- *p = x
- return p
-}
-
-func (x ContainerSessionContext_Verb) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (ContainerSessionContext_Verb) Descriptor() protoreflect.EnumDescriptor {
- return file_session_grpc_types_proto_enumTypes[1].Descriptor()
-}
-
-func (ContainerSessionContext_Verb) Type() protoreflect.EnumType {
- return &file_session_grpc_types_proto_enumTypes[1]
-}
-
-func (x ContainerSessionContext_Verb) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use ContainerSessionContext_Verb.Descriptor instead.
-func (ContainerSessionContext_Verb) EnumDescriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{1, 0}
-}
-
-// Context information for Session Tokens related to ObjectService requests
-type ObjectSessionContext struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Type of request for which the token is issued
- Verb ObjectSessionContext_Verb `protobuf:"varint,1,opt,name=verb,proto3,enum=neo.fs.v2.session.ObjectSessionContext_Verb" json:"verb,omitempty"`
- // Object session target. MUST be correctly formed and set. If `objects`
- // field is not empty, then the session applies only to these elements,
- // otherwise, to all objects from the specified container.
- Target *ObjectSessionContext_Target `protobuf:"bytes,2,opt,name=target,proto3" json:"target,omitempty"`
-}
-
-func (x *ObjectSessionContext) Reset() {
- *x = ObjectSessionContext{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ObjectSessionContext) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ObjectSessionContext) ProtoMessage() {}
-
-func (x *ObjectSessionContext) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 ObjectSessionContext.ProtoReflect.Descriptor instead.
-func (*ObjectSessionContext) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *ObjectSessionContext) GetVerb() ObjectSessionContext_Verb {
- if x != nil {
- return x.Verb
- }
- return ObjectSessionContext_VERB_UNSPECIFIED
-}
-
-func (x *ObjectSessionContext) GetTarget() *ObjectSessionContext_Target {
- if x != nil {
- return x.Target
- }
- return nil
-}
-
-// Context information for Session Tokens related to ContainerService requests.
-type ContainerSessionContext struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Type of request for which the token is issued
- Verb ContainerSessionContext_Verb `protobuf:"varint,1,opt,name=verb,proto3,enum=neo.fs.v2.session.ContainerSessionContext_Verb" json:"verb,omitempty"`
- // Spreads the action to all owner containers.
- // If set, container_id field is ignored.
- Wildcard bool `protobuf:"varint,2,opt,name=wildcard,proto3" json:"wildcard,omitempty"`
- // Particular container to which the action applies.
- // Ignored if wildcard flag is set.
- ContainerId *grpc.ContainerID `protobuf:"bytes,3,opt,name=container_id,json=containerID,proto3" json:"container_id,omitempty"`
-}
-
-func (x *ContainerSessionContext) Reset() {
- *x = ContainerSessionContext{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ContainerSessionContext) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ContainerSessionContext) ProtoMessage() {}
-
-func (x *ContainerSessionContext) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 ContainerSessionContext.ProtoReflect.Descriptor instead.
-func (*ContainerSessionContext) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-func (x *ContainerSessionContext) GetVerb() ContainerSessionContext_Verb {
- if x != nil {
- return x.Verb
- }
- return ContainerSessionContext_VERB_UNSPECIFIED
-}
-
-func (x *ContainerSessionContext) GetWildcard() bool {
- if x != nil {
- return x.Wildcard
- }
- return false
-}
-
-func (x *ContainerSessionContext) GetContainerId() *grpc.ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-
-// NeoFS Session Token.
-type SessionToken struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Session Token contains the proof of trust between peers to be attached in
- // requests for further verification. Please see corresponding section of
- // NeoFS Technical Specification for details.
- Body *SessionToken_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"`
- // Signature of `SessionToken` information
- Signature *grpc.Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
-}
-
-func (x *SessionToken) Reset() {
- *x = SessionToken{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[2]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SessionToken) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SessionToken) ProtoMessage() {}
-
-func (x *SessionToken) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 SessionToken.ProtoReflect.Descriptor instead.
-func (*SessionToken) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{2}
-}
-
-func (x *SessionToken) GetBody() *SessionToken_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-
-func (x *SessionToken) GetSignature() *grpc.Signature {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-
-// Extended headers for Request/Response. They may contain any user-defined
-// headers to be interpreted on application level.
-//
-// Key name must be a unique valid UTF-8 string. Value can't be empty. Requests
-// or Responses with duplicated header names or headers with empty values will
-// be considered invalid.
-//
-// There are some "well-known" headers starting with `__SYSTEM__` (`__NEOFS__`
-// is deprecated) prefix that affect system behaviour:
-//
-// - [ __SYSTEM__NETMAP_EPOCH ] \
-// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
-// Netmap epoch to use for object placement calculation. The `value` is string
-// encoded `uint64` in decimal presentation. If set to '0' or not set, the
-// current epoch only will be used.
-// - [ __SYSTEM__NETMAP_LOOKUP_DEPTH ] \
-// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
-// If object can't be found using current epoch's netmap, this header limits
-// how many past epochs the node can look up through. The `value` is string
-// encoded `uint64` in decimal presentation. If set to '0' or not set, only
-// the current epoch will be used.
-type XHeader struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Key of the X-Header
- Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
- // Value of the X-Header
- Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *XHeader) Reset() {
- *x = XHeader{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[3]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *XHeader) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*XHeader) ProtoMessage() {}
-
-func (x *XHeader) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 XHeader.ProtoReflect.Descriptor instead.
-func (*XHeader) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{3}
-}
-
-func (x *XHeader) GetKey() string {
- if x != nil {
- return x.Key
- }
- return ""
-}
-
-func (x *XHeader) GetValue() string {
- if x != nil {
- return x.Value
- }
- return ""
-}
-
-// Meta information attached to the request. When forwarded between peers,
-// request meta headers are folded in matryoshka style.
-type RequestMetaHeader struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Peer's API version used
- Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
- // Peer's local epoch number. Set to 0 if unknown.
- Epoch uint64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
- // Maximum number of intermediate nodes in the request route
- Ttl uint32 `protobuf:"varint,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
- // Request X-Headers
- XHeaders []*XHeader `protobuf:"bytes,4,rep,name=x_headers,json=xHeaders,proto3" json:"x_headers,omitempty"`
- // Session token within which the request is sent
- SessionToken *SessionToken `protobuf:"bytes,5,opt,name=session_token,json=sessionToken,proto3" json:"session_token,omitempty"`
- // `BearerToken` with eACL overrides for the request
- BearerToken *grpc1.BearerToken `protobuf:"bytes,6,opt,name=bearer_token,json=bearerToken,proto3" json:"bearer_token,omitempty"`
- // `RequestMetaHeader` of the origin request
- Origin *RequestMetaHeader `protobuf:"bytes,7,opt,name=origin,proto3" json:"origin,omitempty"`
- // NeoFS network magic. Must match the value for the network
- // that the server belongs to.
- MagicNumber uint64 `protobuf:"varint,8,opt,name=magic_number,json=magicNumber,proto3" json:"magic_number,omitempty"`
-}
-
-func (x *RequestMetaHeader) Reset() {
- *x = RequestMetaHeader{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[4]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *RequestMetaHeader) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*RequestMetaHeader) ProtoMessage() {}
-
-func (x *RequestMetaHeader) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 RequestMetaHeader.ProtoReflect.Descriptor instead.
-func (*RequestMetaHeader) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{4}
-}
-
-func (x *RequestMetaHeader) GetVersion() *grpc.Version {
- if x != nil {
- return x.Version
- }
- return nil
-}
-
-func (x *RequestMetaHeader) GetEpoch() uint64 {
- if x != nil {
- return x.Epoch
- }
- return 0
-}
-
-func (x *RequestMetaHeader) GetTtl() uint32 {
- if x != nil {
- return x.Ttl
- }
- return 0
-}
-
-func (x *RequestMetaHeader) GetXHeaders() []*XHeader {
- if x != nil {
- return x.XHeaders
- }
- return nil
-}
-
-func (x *RequestMetaHeader) GetSessionToken() *SessionToken {
- if x != nil {
- return x.SessionToken
- }
- return nil
-}
-
-func (x *RequestMetaHeader) GetBearerToken() *grpc1.BearerToken {
- if x != nil {
- return x.BearerToken
- }
- return nil
-}
-
-func (x *RequestMetaHeader) GetOrigin() *RequestMetaHeader {
- if x != nil {
- return x.Origin
- }
- return nil
-}
-
-func (x *RequestMetaHeader) GetMagicNumber() uint64 {
- if x != nil {
- return x.MagicNumber
- }
- return 0
-}
-
-// Information about the response
-type ResponseMetaHeader struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Peer's API version used
- Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
- // Peer's local epoch number
- Epoch uint64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
- // Maximum number of intermediate nodes in the request route
- Ttl uint32 `protobuf:"varint,3,opt,name=ttl,proto3" json:"ttl,omitempty"`
- // Response X-Headers
- XHeaders []*XHeader `protobuf:"bytes,4,rep,name=x_headers,json=xHeaders,proto3" json:"x_headers,omitempty"`
- // `ResponseMetaHeader` of the origin request
- Origin *ResponseMetaHeader `protobuf:"bytes,5,opt,name=origin,proto3" json:"origin,omitempty"`
- // Status return
- Status *grpc2.Status `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"`
-}
-
-func (x *ResponseMetaHeader) Reset() {
- *x = ResponseMetaHeader{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[5]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ResponseMetaHeader) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ResponseMetaHeader) ProtoMessage() {}
-
-func (x *ResponseMetaHeader) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 ResponseMetaHeader.ProtoReflect.Descriptor instead.
-func (*ResponseMetaHeader) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{5}
-}
-
-func (x *ResponseMetaHeader) GetVersion() *grpc.Version {
- if x != nil {
- return x.Version
- }
- return nil
-}
-
-func (x *ResponseMetaHeader) GetEpoch() uint64 {
- if x != nil {
- return x.Epoch
- }
- return 0
-}
-
-func (x *ResponseMetaHeader) GetTtl() uint32 {
- if x != nil {
- return x.Ttl
- }
- return 0
-}
-
-func (x *ResponseMetaHeader) GetXHeaders() []*XHeader {
- if x != nil {
- return x.XHeaders
- }
- return nil
-}
-
-func (x *ResponseMetaHeader) GetOrigin() *ResponseMetaHeader {
- if x != nil {
- return x.Origin
- }
- return nil
-}
-
-func (x *ResponseMetaHeader) GetStatus() *grpc2.Status {
- if x != nil {
- return x.Status
- }
- return nil
-}
-
-// Verification info for the request signed by all intermediate nodes.
-type RequestVerificationHeader struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Request Body signature. Should be generated once by the request initiator.
- BodySignature *grpc.Signature `protobuf:"bytes,1,opt,name=body_signature,json=bodySignature,proto3" json:"body_signature,omitempty"`
- // Request Meta signature is added and signed by each intermediate node
- MetaSignature *grpc.Signature `protobuf:"bytes,2,opt,name=meta_signature,json=metaSignature,proto3" json:"meta_signature,omitempty"`
- // Signature of previous hops
- OriginSignature *grpc.Signature `protobuf:"bytes,3,opt,name=origin_signature,json=originSignature,proto3" json:"origin_signature,omitempty"`
- // Chain of previous hops signatures
- Origin *RequestVerificationHeader `protobuf:"bytes,4,opt,name=origin,proto3" json:"origin,omitempty"`
-}
-
-func (x *RequestVerificationHeader) Reset() {
- *x = RequestVerificationHeader{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *RequestVerificationHeader) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*RequestVerificationHeader) ProtoMessage() {}
-
-func (x *RequestVerificationHeader) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 RequestVerificationHeader.ProtoReflect.Descriptor instead.
-func (*RequestVerificationHeader) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *RequestVerificationHeader) GetBodySignature() *grpc.Signature {
- if x != nil {
- return x.BodySignature
- }
- return nil
-}
-
-func (x *RequestVerificationHeader) GetMetaSignature() *grpc.Signature {
- if x != nil {
- return x.MetaSignature
- }
- return nil
-}
-
-func (x *RequestVerificationHeader) GetOriginSignature() *grpc.Signature {
- if x != nil {
- return x.OriginSignature
- }
- return nil
-}
-
-func (x *RequestVerificationHeader) GetOrigin() *RequestVerificationHeader {
- if x != nil {
- return x.Origin
- }
- return nil
-}
-
-// Verification info for the response signed by all intermediate nodes
-type ResponseVerificationHeader struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Response Body signature. Should be generated once by an answering node.
- BodySignature *grpc.Signature `protobuf:"bytes,1,opt,name=body_signature,json=bodySignature,proto3" json:"body_signature,omitempty"`
- // Response Meta signature is added and signed by each intermediate node
- MetaSignature *grpc.Signature `protobuf:"bytes,2,opt,name=meta_signature,json=metaSignature,proto3" json:"meta_signature,omitempty"`
- // Signature of previous hops
- OriginSignature *grpc.Signature `protobuf:"bytes,3,opt,name=origin_signature,json=originSignature,proto3" json:"origin_signature,omitempty"`
- // Chain of previous hops signatures
- Origin *ResponseVerificationHeader `protobuf:"bytes,4,opt,name=origin,proto3" json:"origin,omitempty"`
-}
-
-func (x *ResponseVerificationHeader) Reset() {
- *x = ResponseVerificationHeader{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ResponseVerificationHeader) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ResponseVerificationHeader) ProtoMessage() {}
-
-func (x *ResponseVerificationHeader) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 ResponseVerificationHeader.ProtoReflect.Descriptor instead.
-func (*ResponseVerificationHeader) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *ResponseVerificationHeader) GetBodySignature() *grpc.Signature {
- if x != nil {
- return x.BodySignature
- }
- return nil
-}
-
-func (x *ResponseVerificationHeader) GetMetaSignature() *grpc.Signature {
- if x != nil {
- return x.MetaSignature
- }
- return nil
-}
-
-func (x *ResponseVerificationHeader) GetOriginSignature() *grpc.Signature {
- if x != nil {
- return x.OriginSignature
- }
- return nil
-}
-
-func (x *ResponseVerificationHeader) GetOrigin() *ResponseVerificationHeader {
- if x != nil {
- return x.Origin
- }
- return nil
-}
-
-// Carries objects involved in the object session.
-type ObjectSessionContext_Target struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Indicates which container the session is spread to. Field MUST be set
- // and correct.
- Container *grpc.ContainerID `protobuf:"bytes,1,opt,name=container,proto3" json:"container,omitempty"`
- // Indicates which objects the session is spread to. Objects are expected
- // to be stored in the NeoFS container referenced by `container` field.
- // Each element MUST have correct format.
- Objects []*grpc.ObjectID `protobuf:"bytes,2,rep,name=objects,proto3" json:"objects,omitempty"`
-}
-
-func (x *ObjectSessionContext_Target) Reset() {
- *x = ObjectSessionContext_Target{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *ObjectSessionContext_Target) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*ObjectSessionContext_Target) ProtoMessage() {}
-
-func (x *ObjectSessionContext_Target) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 ObjectSessionContext_Target.ProtoReflect.Descriptor instead.
-func (*ObjectSessionContext_Target) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *ObjectSessionContext_Target) GetContainer() *grpc.ContainerID {
- if x != nil {
- return x.Container
- }
- return nil
-}
-
-func (x *ObjectSessionContext_Target) GetObjects() []*grpc.ObjectID {
- if x != nil {
- return x.Objects
- }
- return nil
-}
-
-// Session Token body
-type SessionToken_Body struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Token identifier is a valid UUIDv4 in binary form
- Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
- // Identifier of the session initiator
- OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
- // Lifetime of the session
- Lifetime *SessionToken_Body_TokenLifetime `protobuf:"bytes,3,opt,name=lifetime,proto3" json:"lifetime,omitempty"`
- // Public key used in session
- SessionKey []byte `protobuf:"bytes,4,opt,name=session_key,json=sessionKey,proto3" json:"session_key,omitempty"`
- // Session Context information
- //
- // Types that are assignable to Context:
- //
- // *SessionToken_Body_Object
- // *SessionToken_Body_Container
- Context isSessionToken_Body_Context `protobuf_oneof:"context"`
-}
-
-func (x *SessionToken_Body) Reset() {
- *x = SessionToken_Body{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SessionToken_Body) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SessionToken_Body) ProtoMessage() {}
-
-func (x *SessionToken_Body) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 SessionToken_Body.ProtoReflect.Descriptor instead.
-func (*SessionToken_Body) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{2, 0}
-}
-
-func (x *SessionToken_Body) GetId() []byte {
- if x != nil {
- return x.Id
- }
- return nil
-}
-
-func (x *SessionToken_Body) GetOwnerId() *grpc.OwnerID {
- if x != nil {
- return x.OwnerId
- }
- return nil
-}
-
-func (x *SessionToken_Body) GetLifetime() *SessionToken_Body_TokenLifetime {
- if x != nil {
- return x.Lifetime
- }
- return nil
-}
-
-func (x *SessionToken_Body) GetSessionKey() []byte {
- if x != nil {
- return x.SessionKey
- }
- return nil
-}
-
-func (m *SessionToken_Body) GetContext() isSessionToken_Body_Context {
- if m != nil {
- return m.Context
- }
- return nil
-}
-
-func (x *SessionToken_Body) GetObject() *ObjectSessionContext {
- if x, ok := x.GetContext().(*SessionToken_Body_Object); ok {
- return x.Object
- }
- return nil
-}
-
-func (x *SessionToken_Body) GetContainer() *ContainerSessionContext {
- if x, ok := x.GetContext().(*SessionToken_Body_Container); ok {
- return x.Container
- }
- return nil
-}
-
-type isSessionToken_Body_Context interface {
- isSessionToken_Body_Context()
-}
-
-type SessionToken_Body_Object struct {
- // ObjectService session context
- Object *ObjectSessionContext `protobuf:"bytes,5,opt,name=object,proto3,oneof"`
-}
-
-type SessionToken_Body_Container struct {
- // ContainerService session context
- Container *ContainerSessionContext `protobuf:"bytes,6,opt,name=container,proto3,oneof"`
-}
-
-func (*SessionToken_Body_Object) isSessionToken_Body_Context() {}
-
-func (*SessionToken_Body_Container) isSessionToken_Body_Context() {}
-
-// Lifetime parameters of the token. Field names taken from rfc7519.
-type SessionToken_Body_TokenLifetime struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Expiration Epoch
- Exp uint64 `protobuf:"varint,1,opt,name=exp,proto3" json:"exp,omitempty"`
- // Not valid before Epoch
- Nbf uint64 `protobuf:"varint,2,opt,name=nbf,proto3" json:"nbf,omitempty"`
- // Issued at Epoch
- Iat uint64 `protobuf:"varint,3,opt,name=iat,proto3" json:"iat,omitempty"`
-}
-
-func (x *SessionToken_Body_TokenLifetime) Reset() {
- *x = SessionToken_Body_TokenLifetime{}
- if protoimpl.UnsafeEnabled {
- mi := &file_session_grpc_types_proto_msgTypes[10]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SessionToken_Body_TokenLifetime) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SessionToken_Body_TokenLifetime) ProtoMessage() {}
-
-func (x *SessionToken_Body_TokenLifetime) ProtoReflect() protoreflect.Message {
- mi := &file_session_grpc_types_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 SessionToken_Body_TokenLifetime.ProtoReflect.Descriptor instead.
-func (*SessionToken_Body_TokenLifetime) Descriptor() ([]byte, []int) {
- return file_session_grpc_types_proto_rawDescGZIP(), []int{2, 0, 0}
-}
-
-func (x *SessionToken_Body_TokenLifetime) GetExp() uint64 {
- if x != nil {
- return x.Exp
- }
- return 0
-}
-
-func (x *SessionToken_Body_TokenLifetime) GetNbf() uint64 {
- if x != nil {
- return x.Nbf
- }
- return 0
-}
-
-func (x *SessionToken_Body_TokenLifetime) GetIat() uint64 {
- if x != nil {
- return x.Iat
- }
- return 0
-}
-
-var File_session_grpc_types_proto protoreflect.FileDescriptor
-
-var file_session_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x18, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74,
- 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x15, 0x72,
- 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x61, 0x63, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74,
- 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x73, 0x74, 0x61, 0x74,
- 0x75, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x22, 0x90, 0x03, 0x0a, 0x14, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x40, 0x0a, 0x04,
- 0x76, 0x65, 0x72, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74,
- 0x65, 0x78, 0x74, 0x2e, 0x56, 0x65, 0x72, 0x62, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x46,
- 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06,
- 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x77, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74,
- 0x12, 0x39, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44,
- 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x6f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62,
- 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22,
- 0x75, 0x0a, 0x04, 0x56, 0x65, 0x72, 0x62, 0x12, 0x14, 0x0a, 0x10, 0x56, 0x45, 0x52, 0x42, 0x5f,
- 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a,
- 0x03, 0x50, 0x55, 0x54, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, 0x02, 0x12,
- 0x08, 0x0a, 0x04, 0x48, 0x45, 0x41, 0x44, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x41,
- 0x52, 0x43, 0x48, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10,
- 0x05, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09,
- 0x52, 0x41, 0x4e, 0x47, 0x45, 0x48, 0x41, 0x53, 0x48, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x50,
- 0x41, 0x54, 0x43, 0x48, 0x10, 0x08, 0x22, 0xfa, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65,
- 0x78, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x2f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x65,
- 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x56, 0x65, 0x72,
- 0x62, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x64, 0x63,
- 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, 0x64, 0x63,
- 0x61, 0x72, 0x64, 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
- 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
- 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
- 0x72, 0x49, 0x44, 0x22, 0x3e, 0x0a, 0x04, 0x56, 0x65, 0x72, 0x62, 0x12, 0x14, 0x0a, 0x10, 0x56,
- 0x45, 0x52, 0x42, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
- 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x55, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45,
- 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x54, 0x45, 0x41, 0x43,
- 0x4c, 0x10, 0x03, 0x22, 0xa0, 0x04, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54,
- 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f,
- 0x6b, 0x65, 0x6e, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x37,
- 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
- 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69,
- 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x9c, 0x03, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79,
- 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x69, 0x64,
- 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72,
- 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x6f, 0x77, 0x6e,
- 0x65, 0x72, 0x49, 0x44, 0x12, 0x4e, 0x0a, 0x08, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
- 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x54, 0x6f, 0x6b,
- 0x65, 0x6e, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x66, 0x65,
- 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f,
- 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74,
- 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x48, 0x00,
- 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x4a, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74,
- 0x61, 0x69, 0x6e, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
- 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x61,
- 0x69, 0x6e, 0x65, 0x72, 0x1a, 0x45, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x66,
- 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x62, 0x66, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6e, 0x62, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x61, 0x74,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x69, 0x61, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x63,
- 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x31, 0x0a, 0x07, 0x58, 0x48, 0x65, 0x61, 0x64, 0x65,
- 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
- 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8d, 0x03, 0x0a, 0x11, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
- 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
- 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
- 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x37, 0x0a, 0x09, 0x78, 0x5f,
- 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x2e, 0x58, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x08, 0x78, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
- 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53,
- 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0c, 0x73, 0x65, 0x73,
- 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x3d, 0x0a, 0x0c, 0x62, 0x65, 0x61,
- 0x72, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e,
- 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x0b, 0x62, 0x65, 0x61,
- 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x3c, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67,
- 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
- 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f,
- 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61,
- 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x99, 0x02, 0x0a, 0x12, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
- 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
- 0x66, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73,
- 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x74, 0x6c,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x37, 0x0a, 0x09, 0x78,
- 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a,
- 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
- 0x6f, 0x6e, 0x2e, 0x58, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x08, 0x78, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x05,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
- 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69,
- 0x67, 0x69, 0x6e, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20,
- 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
- 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xab, 0x02, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61,
- 0x64, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0e, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e,
- 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67,
- 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0d, 0x62, 0x6f, 0x64, 0x79, 0x53, 0x69, 0x67, 0x6e,
- 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x69,
- 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53,
- 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x53, 0x69,
- 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69,
- 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
- 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0f, 0x6f, 0x72,
- 0x69, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x44, 0x0a,
- 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
- 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69,
- 0x67, 0x69, 0x6e, 0x22, 0xad, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64,
- 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0e, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61,
- 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f,
- 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e,
- 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0d, 0x62, 0x6f, 0x64, 0x79, 0x53, 0x69, 0x67, 0x6e, 0x61,
- 0x74, 0x75, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x73, 0x69, 0x67,
- 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69,
- 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x53, 0x69, 0x67,
- 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e,
- 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
- 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0f, 0x6f, 0x72, 0x69,
- 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x45, 0x0a, 0x06,
- 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e,
- 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
- 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x6f, 0x72, 0x69,
- 0x67, 0x69, 0x6e, 0x42, 0x64, 0x5a, 0x44, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74,
- 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75,
- 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69,
- 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x67,
- 0x72, 0x70, 0x63, 0x3b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0xaa, 0x02, 0x1b, 0x4e, 0x65,
- 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50,
- 0x49, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x33,
-}
-
-var (
- file_session_grpc_types_proto_rawDescOnce sync.Once
- file_session_grpc_types_proto_rawDescData = file_session_grpc_types_proto_rawDesc
-)
-
-func file_session_grpc_types_proto_rawDescGZIP() []byte {
- file_session_grpc_types_proto_rawDescOnce.Do(func() {
- file_session_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_session_grpc_types_proto_rawDescData)
- })
- return file_session_grpc_types_proto_rawDescData
-}
-
-var file_session_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
-var file_session_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
-var file_session_grpc_types_proto_goTypes = []interface{}{
- (ObjectSessionContext_Verb)(0), // 0: neo.fs.v2.session.ObjectSessionContext.Verb
- (ContainerSessionContext_Verb)(0), // 1: neo.fs.v2.session.ContainerSessionContext.Verb
- (*ObjectSessionContext)(nil), // 2: neo.fs.v2.session.ObjectSessionContext
- (*ContainerSessionContext)(nil), // 3: neo.fs.v2.session.ContainerSessionContext
- (*SessionToken)(nil), // 4: neo.fs.v2.session.SessionToken
- (*XHeader)(nil), // 5: neo.fs.v2.session.XHeader
- (*RequestMetaHeader)(nil), // 6: neo.fs.v2.session.RequestMetaHeader
- (*ResponseMetaHeader)(nil), // 7: neo.fs.v2.session.ResponseMetaHeader
- (*RequestVerificationHeader)(nil), // 8: neo.fs.v2.session.RequestVerificationHeader
- (*ResponseVerificationHeader)(nil), // 9: neo.fs.v2.session.ResponseVerificationHeader
- (*ObjectSessionContext_Target)(nil), // 10: neo.fs.v2.session.ObjectSessionContext.Target
- (*SessionToken_Body)(nil), // 11: neo.fs.v2.session.SessionToken.Body
- (*SessionToken_Body_TokenLifetime)(nil), // 12: neo.fs.v2.session.SessionToken.Body.TokenLifetime
- (*grpc.ContainerID)(nil), // 13: neo.fs.v2.refs.ContainerID
- (*grpc.Signature)(nil), // 14: neo.fs.v2.refs.Signature
- (*grpc.Version)(nil), // 15: neo.fs.v2.refs.Version
- (*grpc1.BearerToken)(nil), // 16: neo.fs.v2.acl.BearerToken
- (*grpc2.Status)(nil), // 17: neo.fs.v2.status.Status
- (*grpc.ObjectID)(nil), // 18: neo.fs.v2.refs.ObjectID
- (*grpc.OwnerID)(nil), // 19: neo.fs.v2.refs.OwnerID
-}
-var file_session_grpc_types_proto_depIdxs = []int32{
- 0, // 0: neo.fs.v2.session.ObjectSessionContext.verb:type_name -> neo.fs.v2.session.ObjectSessionContext.Verb
- 10, // 1: neo.fs.v2.session.ObjectSessionContext.target:type_name -> neo.fs.v2.session.ObjectSessionContext.Target
- 1, // 2: neo.fs.v2.session.ContainerSessionContext.verb:type_name -> neo.fs.v2.session.ContainerSessionContext.Verb
- 13, // 3: neo.fs.v2.session.ContainerSessionContext.container_id:type_name -> neo.fs.v2.refs.ContainerID
- 11, // 4: neo.fs.v2.session.SessionToken.body:type_name -> neo.fs.v2.session.SessionToken.Body
- 14, // 5: neo.fs.v2.session.SessionToken.signature:type_name -> neo.fs.v2.refs.Signature
- 15, // 6: neo.fs.v2.session.RequestMetaHeader.version:type_name -> neo.fs.v2.refs.Version
- 5, // 7: neo.fs.v2.session.RequestMetaHeader.x_headers:type_name -> neo.fs.v2.session.XHeader
- 4, // 8: neo.fs.v2.session.RequestMetaHeader.session_token:type_name -> neo.fs.v2.session.SessionToken
- 16, // 9: neo.fs.v2.session.RequestMetaHeader.bearer_token:type_name -> neo.fs.v2.acl.BearerToken
- 6, // 10: neo.fs.v2.session.RequestMetaHeader.origin:type_name -> neo.fs.v2.session.RequestMetaHeader
- 15, // 11: neo.fs.v2.session.ResponseMetaHeader.version:type_name -> neo.fs.v2.refs.Version
- 5, // 12: neo.fs.v2.session.ResponseMetaHeader.x_headers:type_name -> neo.fs.v2.session.XHeader
- 7, // 13: neo.fs.v2.session.ResponseMetaHeader.origin:type_name -> neo.fs.v2.session.ResponseMetaHeader
- 17, // 14: neo.fs.v2.session.ResponseMetaHeader.status:type_name -> neo.fs.v2.status.Status
- 14, // 15: neo.fs.v2.session.RequestVerificationHeader.body_signature:type_name -> neo.fs.v2.refs.Signature
- 14, // 16: neo.fs.v2.session.RequestVerificationHeader.meta_signature:type_name -> neo.fs.v2.refs.Signature
- 14, // 17: neo.fs.v2.session.RequestVerificationHeader.origin_signature:type_name -> neo.fs.v2.refs.Signature
- 8, // 18: neo.fs.v2.session.RequestVerificationHeader.origin:type_name -> neo.fs.v2.session.RequestVerificationHeader
- 14, // 19: neo.fs.v2.session.ResponseVerificationHeader.body_signature:type_name -> neo.fs.v2.refs.Signature
- 14, // 20: neo.fs.v2.session.ResponseVerificationHeader.meta_signature:type_name -> neo.fs.v2.refs.Signature
- 14, // 21: neo.fs.v2.session.ResponseVerificationHeader.origin_signature:type_name -> neo.fs.v2.refs.Signature
- 9, // 22: neo.fs.v2.session.ResponseVerificationHeader.origin:type_name -> neo.fs.v2.session.ResponseVerificationHeader
- 13, // 23: neo.fs.v2.session.ObjectSessionContext.Target.container:type_name -> neo.fs.v2.refs.ContainerID
- 18, // 24: neo.fs.v2.session.ObjectSessionContext.Target.objects:type_name -> neo.fs.v2.refs.ObjectID
- 19, // 25: neo.fs.v2.session.SessionToken.Body.owner_id:type_name -> neo.fs.v2.refs.OwnerID
- 12, // 26: neo.fs.v2.session.SessionToken.Body.lifetime:type_name -> neo.fs.v2.session.SessionToken.Body.TokenLifetime
- 2, // 27: neo.fs.v2.session.SessionToken.Body.object:type_name -> neo.fs.v2.session.ObjectSessionContext
- 3, // 28: neo.fs.v2.session.SessionToken.Body.container:type_name -> neo.fs.v2.session.ContainerSessionContext
- 29, // [29:29] is the sub-list for method output_type
- 29, // [29:29] is the sub-list for method input_type
- 29, // [29:29] is the sub-list for extension type_name
- 29, // [29:29] is the sub-list for extension extendee
- 0, // [0:29] is the sub-list for field type_name
-}
-
-func init() { file_session_grpc_types_proto_init() }
-func file_session_grpc_types_proto_init() {
- if File_session_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_session_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ObjectSessionContext); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ContainerSessionContext); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SessionToken); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*XHeader); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RequestMetaHeader); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ResponseMetaHeader); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RequestVerificationHeader); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ResponseVerificationHeader); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ObjectSessionContext_Target); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SessionToken_Body); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_session_grpc_types_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SessionToken_Body_TokenLifetime); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- }
- file_session_grpc_types_proto_msgTypes[9].OneofWrappers = []interface{}{
- (*SessionToken_Body_Object)(nil),
- (*SessionToken_Body_Container)(nil),
- }
- type x struct{}
- out := protoimpl.TypeBuilder{
- File: protoimpl.DescBuilder{
- GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
- RawDescriptor: file_session_grpc_types_proto_rawDesc,
- NumEnums: 2,
- NumMessages: 11,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_session_grpc_types_proto_goTypes,
- DependencyIndexes: file_session_grpc_types_proto_depIdxs,
- EnumInfos: file_session_grpc_types_proto_enumTypes,
- MessageInfos: file_session_grpc_types_proto_msgTypes,
- }.Build()
- File_session_grpc_types_proto = out.File
- file_session_grpc_types_proto_rawDesc = nil
- file_session_grpc_types_proto_goTypes = nil
- file_session_grpc_types_proto_depIdxs = nil
-}
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..6a0d75c
--- /dev/null
+++ b/session/grpc/types_frostfs.pb.go
@@ -0,0 +1,2730 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package session
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ grpc2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
+)
+
+type ObjectSessionContext_Verb int32
+
+const (
+ ObjectSessionContext_VERB_UNSPECIFIED ObjectSessionContext_Verb = 0
+ ObjectSessionContext_PUT ObjectSessionContext_Verb = 1
+ ObjectSessionContext_GET ObjectSessionContext_Verb = 2
+ ObjectSessionContext_HEAD ObjectSessionContext_Verb = 3
+ ObjectSessionContext_SEARCH ObjectSessionContext_Verb = 4
+ ObjectSessionContext_DELETE ObjectSessionContext_Verb = 5
+ ObjectSessionContext_RANGE ObjectSessionContext_Verb = 6
+ ObjectSessionContext_RANGEHASH ObjectSessionContext_Verb = 7
+ ObjectSessionContext_PATCH ObjectSessionContext_Verb = 8
+)
+
+var (
+ ObjectSessionContext_Verb_name = map[int32]string{
+ 0: "VERB_UNSPECIFIED",
+ 1: "PUT",
+ 2: "GET",
+ 3: "HEAD",
+ 4: "SEARCH",
+ 5: "DELETE",
+ 6: "RANGE",
+ 7: "RANGEHASH",
+ 8: "PATCH",
+ }
+ ObjectSessionContext_Verb_value = map[string]int32{
+ "VERB_UNSPECIFIED": 0,
+ "PUT": 1,
+ "GET": 2,
+ "HEAD": 3,
+ "SEARCH": 4,
+ "DELETE": 5,
+ "RANGE": 6,
+ "RANGEHASH": 7,
+ "PATCH": 8,
+ }
+)
+
+func (x ObjectSessionContext_Verb) String() string {
+ if v, ok := ObjectSessionContext_Verb_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *ObjectSessionContext_Verb) FromString(s string) bool {
+ if v, ok := ObjectSessionContext_Verb_value[s]; ok {
+ *x = ObjectSessionContext_Verb(v)
+ return true
+ }
+ return false
+}
+
+type ObjectSessionContext_Target struct {
+ Container *grpc.ContainerID `json:"container"`
+ Objects []*grpc.ObjectID `json:"objects"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ObjectSessionContext_Target)(nil)
+ _ encoding.ProtoUnmarshaler = (*ObjectSessionContext_Target)(nil)
+ _ json.Marshaler = (*ObjectSessionContext_Target)(nil)
+ _ json.Unmarshaler = (*ObjectSessionContext_Target)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ObjectSessionContext_Target) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Container)
+ for i := range x.Objects {
+ size += proto.NestedStructureSize(2, x.Objects[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ObjectSessionContext_Target) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ObjectSessionContext_Target) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Container != nil && x.Container.StableSize() != 0 {
+ x.Container.EmitProtobuf(mm.AppendMessage(1))
+ }
+ for i := range x.Objects {
+ if x.Objects[i] != nil && x.Objects[i].StableSize() != 0 {
+ x.Objects[i].EmitProtobuf(mm.AppendMessage(2))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ObjectSessionContext_Target) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ObjectSessionContext_Target")
+ }
+ switch fc.FieldNum {
+ case 1: // Container
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Container")
+ }
+ x.Container = new(grpc.ContainerID)
+ if err := x.Container.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Objects
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Objects")
+ }
+ x.Objects = append(x.Objects, new(grpc.ObjectID))
+ ff := x.Objects[len(x.Objects)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ObjectSessionContext_Target) GetContainer() *grpc.ContainerID {
+ if x != nil {
+ return x.Container
+ }
+ return nil
+}
+func (x *ObjectSessionContext_Target) SetContainer(v *grpc.ContainerID) {
+ x.Container = v
+}
+func (x *ObjectSessionContext_Target) GetObjects() []*grpc.ObjectID {
+ if x != nil {
+ return x.Objects
+ }
+ return nil
+}
+func (x *ObjectSessionContext_Target) SetObjects(v []*grpc.ObjectID) {
+ x.Objects = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ObjectSessionContext_Target) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ObjectSessionContext_Target) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"container\":"
+ out.RawString(prefix[1:])
+ x.Container.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"objects\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Objects {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Objects[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ObjectSessionContext_Target) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ObjectSessionContext_Target) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "container":
+ {
+ var f *grpc.ContainerID
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.Container = f
+ }
+ case "objects":
+ {
+ var f *grpc.ObjectID
+ var list []*grpc.ObjectID
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Objects = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ObjectSessionContext struct {
+ Verb ObjectSessionContext_Verb `json:"verb"`
+ Target *ObjectSessionContext_Target `json:"target"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ObjectSessionContext)(nil)
+ _ encoding.ProtoUnmarshaler = (*ObjectSessionContext)(nil)
+ _ json.Marshaler = (*ObjectSessionContext)(nil)
+ _ json.Unmarshaler = (*ObjectSessionContext)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ObjectSessionContext) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.EnumSize(1, int32(x.Verb))
+ size += proto.NestedStructureSize(2, x.Target)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ObjectSessionContext) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ObjectSessionContext) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if int32(x.Verb) != 0 {
+ mm.AppendInt32(1, int32(x.Verb))
+ }
+ if x.Target != nil && x.Target.StableSize() != 0 {
+ x.Target.EmitProtobuf(mm.AppendMessage(2))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ObjectSessionContext) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ObjectSessionContext")
+ }
+ switch fc.FieldNum {
+ case 1: // Verb
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Verb")
+ }
+ x.Verb = ObjectSessionContext_Verb(data)
+ case 2: // Target
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Target")
+ }
+ x.Target = new(ObjectSessionContext_Target)
+ if err := x.Target.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ObjectSessionContext) GetVerb() ObjectSessionContext_Verb {
+ if x != nil {
+ return x.Verb
+ }
+ return 0
+}
+func (x *ObjectSessionContext) SetVerb(v ObjectSessionContext_Verb) {
+ x.Verb = v
+}
+func (x *ObjectSessionContext) GetTarget() *ObjectSessionContext_Target {
+ if x != nil {
+ return x.Target
+ }
+ return nil
+}
+func (x *ObjectSessionContext) SetTarget(v *ObjectSessionContext_Target) {
+ x.Target = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ObjectSessionContext) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ObjectSessionContext) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"verb\":"
+ out.RawString(prefix[1:])
+ out.Int32(int32(x.Verb))
+ }
+ {
+ const prefix string = ",\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ObjectSessionContext) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ObjectSessionContext) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "verb":
+ {
+ var f ObjectSessionContext_Verb
+ var parsedValue ObjectSessionContext_Verb
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := ObjectSessionContext_Verb_value[v]; ok {
+ parsedValue = ObjectSessionContext_Verb(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = ObjectSessionContext_Verb(vv)
+ case float64:
+ parsedValue = ObjectSessionContext_Verb(v)
+ }
+ f = parsedValue
+ x.Verb = f
+ }
+ case "target":
+ {
+ var f *ObjectSessionContext_Target
+ f = new(ObjectSessionContext_Target)
+ f.UnmarshalEasyJSON(in)
+ x.Target = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ContainerSessionContext_Verb int32
+
+const (
+ ContainerSessionContext_VERB_UNSPECIFIED ContainerSessionContext_Verb = 0
+ ContainerSessionContext_PUT ContainerSessionContext_Verb = 1
+ ContainerSessionContext_DELETE ContainerSessionContext_Verb = 2
+ ContainerSessionContext_SETEACL ContainerSessionContext_Verb = 3
+)
+
+var (
+ ContainerSessionContext_Verb_name = map[int32]string{
+ 0: "VERB_UNSPECIFIED",
+ 1: "PUT",
+ 2: "DELETE",
+ 3: "SETEACL",
+ }
+ ContainerSessionContext_Verb_value = map[string]int32{
+ "VERB_UNSPECIFIED": 0,
+ "PUT": 1,
+ "DELETE": 2,
+ "SETEACL": 3,
+ }
+)
+
+func (x ContainerSessionContext_Verb) String() string {
+ if v, ok := ContainerSessionContext_Verb_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *ContainerSessionContext_Verb) FromString(s string) bool {
+ if v, ok := ContainerSessionContext_Verb_value[s]; ok {
+ *x = ContainerSessionContext_Verb(v)
+ return true
+ }
+ return false
+}
+
+type ContainerSessionContext struct {
+ Verb ContainerSessionContext_Verb `json:"verb"`
+ Wildcard bool `json:"wildcard"`
+ ContainerId *grpc.ContainerID `json:"containerID"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ContainerSessionContext)(nil)
+ _ encoding.ProtoUnmarshaler = (*ContainerSessionContext)(nil)
+ _ json.Marshaler = (*ContainerSessionContext)(nil)
+ _ json.Unmarshaler = (*ContainerSessionContext)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ContainerSessionContext) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.EnumSize(1, int32(x.Verb))
+ size += proto.BoolSize(2, x.Wildcard)
+ size += proto.NestedStructureSize(3, x.ContainerId)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ContainerSessionContext) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ContainerSessionContext) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if int32(x.Verb) != 0 {
+ mm.AppendInt32(1, int32(x.Verb))
+ }
+ if x.Wildcard {
+ mm.AppendBool(2, x.Wildcard)
+ }
+ if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ x.ContainerId.EmitProtobuf(mm.AppendMessage(3))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ContainerSessionContext) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ContainerSessionContext")
+ }
+ switch fc.FieldNum {
+ case 1: // Verb
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Verb")
+ }
+ x.Verb = ContainerSessionContext_Verb(data)
+ case 2: // Wildcard
+ data, ok := fc.Bool()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Wildcard")
+ }
+ x.Wildcard = data
+ case 3: // ContainerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
+ }
+ x.ContainerId = new(grpc.ContainerID)
+ if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ContainerSessionContext) GetVerb() ContainerSessionContext_Verb {
+ if x != nil {
+ return x.Verb
+ }
+ return 0
+}
+func (x *ContainerSessionContext) SetVerb(v ContainerSessionContext_Verb) {
+ x.Verb = v
+}
+func (x *ContainerSessionContext) GetWildcard() bool {
+ if x != nil {
+ return x.Wildcard
+ }
+ return false
+}
+func (x *ContainerSessionContext) SetWildcard(v bool) {
+ x.Wildcard = v
+}
+func (x *ContainerSessionContext) GetContainerId() *grpc.ContainerID {
+ if x != nil {
+ return x.ContainerId
+ }
+ return nil
+}
+func (x *ContainerSessionContext) SetContainerId(v *grpc.ContainerID) {
+ x.ContainerId = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ContainerSessionContext) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ContainerSessionContext) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"verb\":"
+ out.RawString(prefix[1:])
+ out.Int32(int32(x.Verb))
+ }
+ {
+ const prefix string = ",\"wildcard\":"
+ out.RawString(prefix)
+ out.Bool(x.Wildcard)
+ }
+ {
+ const prefix string = ",\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ContainerSessionContext) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ContainerSessionContext) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "verb":
+ {
+ var f ContainerSessionContext_Verb
+ var parsedValue ContainerSessionContext_Verb
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := ContainerSessionContext_Verb_value[v]; ok {
+ parsedValue = ContainerSessionContext_Verb(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = ContainerSessionContext_Verb(vv)
+ case float64:
+ parsedValue = ContainerSessionContext_Verb(v)
+ }
+ f = parsedValue
+ x.Verb = f
+ }
+ case "wildcard":
+ {
+ var f bool
+ f = in.Bool()
+ x.Wildcard = f
+ }
+ case "containerID":
+ {
+ var f *grpc.ContainerID
+ f = new(grpc.ContainerID)
+ f.UnmarshalEasyJSON(in)
+ x.ContainerId = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type SessionToken_Body_TokenLifetime struct {
+ Exp uint64 `json:"exp"`
+ Nbf uint64 `json:"nbf"`
+ Iat uint64 `json:"iat"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SessionToken_Body_TokenLifetime)(nil)
+ _ encoding.ProtoUnmarshaler = (*SessionToken_Body_TokenLifetime)(nil)
+ _ json.Marshaler = (*SessionToken_Body_TokenLifetime)(nil)
+ _ json.Unmarshaler = (*SessionToken_Body_TokenLifetime)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SessionToken_Body_TokenLifetime) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt64Size(1, x.Exp)
+ size += proto.UInt64Size(2, x.Nbf)
+ size += proto.UInt64Size(3, x.Iat)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SessionToken_Body_TokenLifetime) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SessionToken_Body_TokenLifetime) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Exp != 0 {
+ mm.AppendUint64(1, x.Exp)
+ }
+ if x.Nbf != 0 {
+ mm.AppendUint64(2, x.Nbf)
+ }
+ if x.Iat != 0 {
+ mm.AppendUint64(3, x.Iat)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SessionToken_Body_TokenLifetime) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SessionToken_Body_TokenLifetime")
+ }
+ switch fc.FieldNum {
+ case 1: // Exp
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Exp")
+ }
+ x.Exp = data
+ case 2: // Nbf
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Nbf")
+ }
+ x.Nbf = data
+ case 3: // Iat
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Iat")
+ }
+ x.Iat = data
+ }
+ }
+ return nil
+}
+func (x *SessionToken_Body_TokenLifetime) GetExp() uint64 {
+ if x != nil {
+ return x.Exp
+ }
+ return 0
+}
+func (x *SessionToken_Body_TokenLifetime) SetExp(v uint64) {
+ x.Exp = v
+}
+func (x *SessionToken_Body_TokenLifetime) GetNbf() uint64 {
+ if x != nil {
+ return x.Nbf
+ }
+ return 0
+}
+func (x *SessionToken_Body_TokenLifetime) SetNbf(v uint64) {
+ x.Nbf = v
+}
+func (x *SessionToken_Body_TokenLifetime) GetIat() uint64 {
+ if x != nil {
+ return x.Iat
+ }
+ return 0
+}
+func (x *SessionToken_Body_TokenLifetime) SetIat(v uint64) {
+ x.Iat = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SessionToken_Body_TokenLifetime) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SessionToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"exp\":"
+ out.RawString(prefix[1:])
+ out.Uint64(x.Exp)
+ }
+ {
+ const prefix string = ",\"nbf\":"
+ out.RawString(prefix)
+ out.Uint64(x.Nbf)
+ }
+ {
+ const prefix string = ",\"iat\":"
+ out.RawString(prefix)
+ out.Uint64(x.Iat)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SessionToken_Body_TokenLifetime) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SessionToken_Body_TokenLifetime) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "exp":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Exp = f
+ }
+ case "nbf":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Nbf = f
+ }
+ case "iat":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Iat = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type SessionToken_Body struct {
+ Id []byte `json:"id"`
+ OwnerId *grpc.OwnerID `json:"ownerID"`
+ Lifetime *SessionToken_Body_TokenLifetime `json:"lifetime"`
+ SessionKey []byte `json:"sessionKey"`
+ Context isSessionToken_Body_Context
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SessionToken_Body)(nil)
+ _ encoding.ProtoUnmarshaler = (*SessionToken_Body)(nil)
+ _ json.Marshaler = (*SessionToken_Body)(nil)
+ _ json.Unmarshaler = (*SessionToken_Body)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SessionToken_Body) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.Id)
+ size += proto.NestedStructureSize(2, x.OwnerId)
+ size += proto.NestedStructureSize(3, x.Lifetime)
+ size += proto.BytesSize(4, x.SessionKey)
+ if inner, ok := x.Context.(*SessionToken_Body_Object); ok {
+ size += proto.NestedStructureSize(5, inner.Object)
+ }
+ if inner, ok := x.Context.(*SessionToken_Body_Container); ok {
+ size += proto.NestedStructureSize(6, inner.Container)
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SessionToken_Body) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SessionToken_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Id) != 0 {
+ mm.AppendBytes(1, x.Id)
+ }
+ if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ x.OwnerId.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.Lifetime != nil && x.Lifetime.StableSize() != 0 {
+ x.Lifetime.EmitProtobuf(mm.AppendMessage(3))
+ }
+ if len(x.SessionKey) != 0 {
+ mm.AppendBytes(4, x.SessionKey)
+ }
+ if inner, ok := x.Context.(*SessionToken_Body_Object); ok {
+ if inner.Object != nil && inner.Object.StableSize() != 0 {
+ inner.Object.EmitProtobuf(mm.AppendMessage(5))
+ }
+ }
+ if inner, ok := x.Context.(*SessionToken_Body_Container); ok {
+ if inner.Container != nil && inner.Container.StableSize() != 0 {
+ inner.Container.EmitProtobuf(mm.AppendMessage(6))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SessionToken_Body) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SessionToken_Body")
+ }
+ switch fc.FieldNum {
+ case 1: // Id
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Id")
+ }
+ x.Id = data
+ case 2: // OwnerId
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OwnerId")
+ }
+ x.OwnerId = new(grpc.OwnerID)
+ if err := x.OwnerId.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // Lifetime
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Lifetime")
+ }
+ x.Lifetime = new(SessionToken_Body_TokenLifetime)
+ if err := x.Lifetime.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // SessionKey
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SessionKey")
+ }
+ x.SessionKey = data
+ case 5: // Object
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Object")
+ }
+ oneofField := &SessionToken_Body_Object{Object: new(ObjectSessionContext)}
+ if err := oneofField.Object.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.Context = oneofField
+ case 6: // Container
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Container")
+ }
+ oneofField := &SessionToken_Body_Container{Container: new(ContainerSessionContext)}
+ if err := oneofField.Container.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.Context = oneofField
+ }
+ }
+ return nil
+}
+func (x *SessionToken_Body) GetId() []byte {
+ if x != nil {
+ return x.Id
+ }
+ return nil
+}
+func (x *SessionToken_Body) SetId(v []byte) {
+ x.Id = v
+}
+func (x *SessionToken_Body) GetOwnerId() *grpc.OwnerID {
+ if x != nil {
+ return x.OwnerId
+ }
+ return nil
+}
+func (x *SessionToken_Body) SetOwnerId(v *grpc.OwnerID) {
+ x.OwnerId = v
+}
+func (x *SessionToken_Body) GetLifetime() *SessionToken_Body_TokenLifetime {
+ if x != nil {
+ return x.Lifetime
+ }
+ return nil
+}
+func (x *SessionToken_Body) SetLifetime(v *SessionToken_Body_TokenLifetime) {
+ x.Lifetime = v
+}
+func (x *SessionToken_Body) GetSessionKey() []byte {
+ if x != nil {
+ return x.SessionKey
+ }
+ return nil
+}
+func (x *SessionToken_Body) SetSessionKey(v []byte) {
+ x.SessionKey = v
+}
+func (x *SessionToken_Body) GetContext() isSessionToken_Body_Context {
+ if x != nil {
+ return x.Context
+ }
+ return nil
+}
+func (x *SessionToken_Body) SetContext(v isSessionToken_Body_Context) {
+ x.Context = v
+}
+func (x *SessionToken_Body) GetObject() *ObjectSessionContext {
+ if xx, ok := x.GetContext().(*SessionToken_Body_Object); ok {
+ return xx.Object
+ }
+ return nil
+}
+func (x *SessionToken_Body) SetObject(v *ObjectSessionContext) {
+ x.Context = &SessionToken_Body_Object{Object: v}
+}
+func (x *SessionToken_Body) GetContainer() *ContainerSessionContext {
+ if xx, ok := x.GetContext().(*SessionToken_Body_Container); ok {
+ return xx.Container
+ }
+ return nil
+}
+func (x *SessionToken_Body) SetContainer(v *ContainerSessionContext) {
+ x.Context = &SessionToken_Body_Container{Container: v}
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SessionToken_Body) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SessionToken_Body) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"id\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.Id)
+ }
+ {
+ const prefix string = ",\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"lifetime\":"
+ out.RawString(prefix)
+ x.Lifetime.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"sessionKey\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.SessionKey)
+ }
+ switch xx := x.Context.(type) {
+ case *SessionToken_Body_Object:
+ {
+ const prefix string = ",\"object\":"
+ out.RawString(prefix)
+ xx.Object.MarshalEasyJSON(out)
+ }
+ case *SessionToken_Body_Container:
+ {
+ const prefix string = ",\"container\":"
+ out.RawString(prefix)
+ xx.Container.MarshalEasyJSON(out)
+ }
+ default:
+ out.RawString("null")
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SessionToken_Body) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SessionToken_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "id":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Id = f
+ }
+ case "ownerID":
+ {
+ var f *grpc.OwnerID
+ f = new(grpc.OwnerID)
+ f.UnmarshalEasyJSON(in)
+ x.OwnerId = f
+ }
+ case "lifetime":
+ {
+ var f *SessionToken_Body_TokenLifetime
+ f = new(SessionToken_Body_TokenLifetime)
+ f.UnmarshalEasyJSON(in)
+ x.Lifetime = f
+ }
+ case "sessionKey":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.SessionKey = f
+ }
+ case "object":
+ xx := new(SessionToken_Body_Object)
+ x.Context = xx
+ {
+ var f *ObjectSessionContext
+ f = new(ObjectSessionContext)
+ f.UnmarshalEasyJSON(in)
+ xx.Object = f
+ }
+ case "container":
+ xx := new(SessionToken_Body_Container)
+ x.Context = xx
+ {
+ var f *ContainerSessionContext
+ f = new(ContainerSessionContext)
+ f.UnmarshalEasyJSON(in)
+ xx.Container = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type isSessionToken_Body_Context interface {
+ isSessionToken_Body_Context()
+}
+
+type SessionToken_Body_Object struct {
+ Object *ObjectSessionContext
+}
+
+type SessionToken_Body_Container struct {
+ Container *ContainerSessionContext
+}
+
+func (*SessionToken_Body_Object) isSessionToken_Body_Context() {}
+
+func (*SessionToken_Body_Container) isSessionToken_Body_Context() {}
+
+type SessionToken struct {
+ Body *SessionToken_Body `json:"body"`
+ Signature *grpc.Signature `json:"signature"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*SessionToken)(nil)
+ _ encoding.ProtoUnmarshaler = (*SessionToken)(nil)
+ _ json.Marshaler = (*SessionToken)(nil)
+ _ json.Unmarshaler = (*SessionToken)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *SessionToken) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Body)
+ size += proto.NestedStructureSize(2, x.Signature)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *SessionToken) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *SessionToken) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Body != nil && x.Body.StableSize() != 0 {
+ x.Body.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Signature != nil && x.Signature.StableSize() != 0 {
+ x.Signature.EmitProtobuf(mm.AppendMessage(2))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *SessionToken) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "SessionToken")
+ }
+ switch fc.FieldNum {
+ case 1: // Body
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Body")
+ }
+ x.Body = new(SessionToken_Body)
+ if err := x.Body.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Signature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Signature")
+ }
+ x.Signature = new(grpc.Signature)
+ if err := x.Signature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *SessionToken) GetBody() *SessionToken_Body {
+ if x != nil {
+ return x.Body
+ }
+ return nil
+}
+func (x *SessionToken) SetBody(v *SessionToken_Body) {
+ x.Body = v
+}
+func (x *SessionToken) GetSignature() *grpc.Signature {
+ if x != nil {
+ return x.Signature
+ }
+ return nil
+}
+func (x *SessionToken) SetSignature(v *grpc.Signature) {
+ x.Signature = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *SessionToken) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *SessionToken) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"body\":"
+ out.RawString(prefix[1:])
+ x.Body.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *SessionToken) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *SessionToken) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "body":
+ {
+ var f *SessionToken_Body
+ f = new(SessionToken_Body)
+ f.UnmarshalEasyJSON(in)
+ x.Body = f
+ }
+ case "signature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.Signature = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type XHeader struct {
+ Key string `json:"key"`
+ Value string `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*XHeader)(nil)
+ _ encoding.ProtoUnmarshaler = (*XHeader)(nil)
+ _ json.Marshaler = (*XHeader)(nil)
+ _ json.Unmarshaler = (*XHeader)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *XHeader) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.StringSize(1, x.Key)
+ size += proto.StringSize(2, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *XHeader) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *XHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.Key) != 0 {
+ mm.AppendString(1, x.Key)
+ }
+ if len(x.Value) != 0 {
+ mm.AppendString(2, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *XHeader) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "XHeader")
+ }
+ switch fc.FieldNum {
+ case 1: // Key
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Key")
+ }
+ x.Key = data
+ case 2: // Value
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *XHeader) GetKey() string {
+ if x != nil {
+ return x.Key
+ }
+ return ""
+}
+func (x *XHeader) SetKey(v string) {
+ x.Key = v
+}
+func (x *XHeader) GetValue() string {
+ if x != nil {
+ return x.Value
+ }
+ return ""
+}
+func (x *XHeader) SetValue(v string) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *XHeader) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *XHeader) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"key\":"
+ out.RawString(prefix[1:])
+ out.String(x.Key)
+ }
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *XHeader) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *XHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "key":
+ {
+ var f string
+ f = in.String()
+ x.Key = f
+ }
+ case "value":
+ {
+ var f string
+ f = in.String()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type RequestMetaHeader struct {
+ Version *grpc.Version `json:"version"`
+ Epoch uint64 `json:"epoch"`
+ Ttl uint32 `json:"ttl"`
+ XHeaders []*XHeader `json:"xHeaders"`
+ SessionToken *SessionToken `json:"sessionToken"`
+ BearerToken *grpc1.BearerToken `json:"bearerToken"`
+ Origin *RequestMetaHeader `json:"origin"`
+ MagicNumber uint64 `json:"magicNumber"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*RequestMetaHeader)(nil)
+ _ encoding.ProtoUnmarshaler = (*RequestMetaHeader)(nil)
+ _ json.Marshaler = (*RequestMetaHeader)(nil)
+ _ json.Unmarshaler = (*RequestMetaHeader)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *RequestMetaHeader) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Version)
+ size += proto.UInt64Size(2, x.Epoch)
+ size += proto.UInt32Size(3, x.Ttl)
+ for i := range x.XHeaders {
+ size += proto.NestedStructureSize(4, x.XHeaders[i])
+ }
+ size += proto.NestedStructureSize(5, x.SessionToken)
+ size += proto.NestedStructureSize(6, x.BearerToken)
+ size += proto.NestedStructureSize(7, x.Origin)
+ size += proto.UInt64Size(8, x.MagicNumber)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *RequestMetaHeader) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *RequestMetaHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Version != nil && x.Version.StableSize() != 0 {
+ x.Version.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Epoch != 0 {
+ mm.AppendUint64(2, x.Epoch)
+ }
+ if x.Ttl != 0 {
+ mm.AppendUint32(3, x.Ttl)
+ }
+ for i := range x.XHeaders {
+ if x.XHeaders[i] != nil && x.XHeaders[i].StableSize() != 0 {
+ x.XHeaders[i].EmitProtobuf(mm.AppendMessage(4))
+ }
+ }
+ if x.SessionToken != nil && x.SessionToken.StableSize() != 0 {
+ x.SessionToken.EmitProtobuf(mm.AppendMessage(5))
+ }
+ if x.BearerToken != nil && x.BearerToken.StableSize() != 0 {
+ x.BearerToken.EmitProtobuf(mm.AppendMessage(6))
+ }
+ if x.Origin != nil && x.Origin.StableSize() != 0 {
+ x.Origin.EmitProtobuf(mm.AppendMessage(7))
+ }
+ if x.MagicNumber != 0 {
+ mm.AppendUint64(8, x.MagicNumber)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *RequestMetaHeader) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "RequestMetaHeader")
+ }
+ switch fc.FieldNum {
+ case 1: // Version
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Version")
+ }
+ x.Version = new(grpc.Version)
+ if err := x.Version.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Epoch
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Epoch")
+ }
+ x.Epoch = data
+ case 3: // Ttl
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Ttl")
+ }
+ x.Ttl = data
+ case 4: // XHeaders
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "XHeaders")
+ }
+ x.XHeaders = append(x.XHeaders, new(XHeader))
+ ff := x.XHeaders[len(x.XHeaders)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 5: // SessionToken
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SessionToken")
+ }
+ x.SessionToken = new(SessionToken)
+ if err := x.SessionToken.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 6: // BearerToken
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "BearerToken")
+ }
+ x.BearerToken = new(grpc1.BearerToken)
+ if err := x.BearerToken.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 7: // Origin
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Origin")
+ }
+ x.Origin = new(RequestMetaHeader)
+ if err := x.Origin.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 8: // MagicNumber
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MagicNumber")
+ }
+ x.MagicNumber = data
+ }
+ }
+ return nil
+}
+func (x *RequestMetaHeader) GetVersion() *grpc.Version {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+func (x *RequestMetaHeader) SetVersion(v *grpc.Version) {
+ x.Version = v
+}
+func (x *RequestMetaHeader) GetEpoch() uint64 {
+ if x != nil {
+ return x.Epoch
+ }
+ return 0
+}
+func (x *RequestMetaHeader) SetEpoch(v uint64) {
+ x.Epoch = v
+}
+func (x *RequestMetaHeader) GetTtl() uint32 {
+ if x != nil {
+ return x.Ttl
+ }
+ return 0
+}
+func (x *RequestMetaHeader) SetTtl(v uint32) {
+ x.Ttl = v
+}
+func (x *RequestMetaHeader) GetXHeaders() []*XHeader {
+ if x != nil {
+ return x.XHeaders
+ }
+ return nil
+}
+func (x *RequestMetaHeader) SetXHeaders(v []*XHeader) {
+ x.XHeaders = v
+}
+func (x *RequestMetaHeader) GetSessionToken() *SessionToken {
+ if x != nil {
+ return x.SessionToken
+ }
+ return nil
+}
+func (x *RequestMetaHeader) SetSessionToken(v *SessionToken) {
+ x.SessionToken = v
+}
+func (x *RequestMetaHeader) GetBearerToken() *grpc1.BearerToken {
+ if x != nil {
+ return x.BearerToken
+ }
+ return nil
+}
+func (x *RequestMetaHeader) SetBearerToken(v *grpc1.BearerToken) {
+ x.BearerToken = v
+}
+func (x *RequestMetaHeader) GetOrigin() *RequestMetaHeader {
+ if x != nil {
+ return x.Origin
+ }
+ return nil
+}
+func (x *RequestMetaHeader) SetOrigin(v *RequestMetaHeader) {
+ x.Origin = v
+}
+func (x *RequestMetaHeader) GetMagicNumber() uint64 {
+ if x != nil {
+ return x.MagicNumber
+ }
+ return 0
+}
+func (x *RequestMetaHeader) SetMagicNumber(v uint64) {
+ x.MagicNumber = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *RequestMetaHeader) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *RequestMetaHeader) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"version\":"
+ out.RawString(prefix[1:])
+ x.Version.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"epoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.Epoch)
+ }
+ {
+ const prefix string = ",\"ttl\":"
+ out.RawString(prefix)
+ out.Uint32(x.Ttl)
+ }
+ {
+ const prefix string = ",\"xHeaders\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.XHeaders {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.XHeaders[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"bearerToken\":"
+ out.RawString(prefix)
+ x.BearerToken.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"magicNumber\":"
+ out.RawString(prefix)
+ out.Uint64(x.MagicNumber)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *RequestMetaHeader) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *RequestMetaHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "version":
+ {
+ var f *grpc.Version
+ f = new(grpc.Version)
+ f.UnmarshalEasyJSON(in)
+ x.Version = f
+ }
+ case "epoch":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Epoch = f
+ }
+ case "ttl":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Ttl = f
+ }
+ case "xHeaders":
+ {
+ var f *XHeader
+ var list []*XHeader
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(XHeader)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.XHeaders = list
+ in.Delim(']')
+ }
+ case "sessionToken":
+ {
+ var f *SessionToken
+ f = new(SessionToken)
+ f.UnmarshalEasyJSON(in)
+ x.SessionToken = f
+ }
+ case "bearerToken":
+ {
+ var f *grpc1.BearerToken
+ f = new(grpc1.BearerToken)
+ f.UnmarshalEasyJSON(in)
+ x.BearerToken = f
+ }
+ case "origin":
+ {
+ var f *RequestMetaHeader
+ f = new(RequestMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.Origin = f
+ }
+ case "magicNumber":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.MagicNumber = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ResponseMetaHeader struct {
+ Version *grpc.Version `json:"version"`
+ Epoch uint64 `json:"epoch"`
+ Ttl uint32 `json:"ttl"`
+ XHeaders []*XHeader `json:"xHeaders"`
+ Origin *ResponseMetaHeader `json:"origin"`
+ Status *grpc2.Status `json:"status"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ResponseMetaHeader)(nil)
+ _ encoding.ProtoUnmarshaler = (*ResponseMetaHeader)(nil)
+ _ json.Marshaler = (*ResponseMetaHeader)(nil)
+ _ json.Unmarshaler = (*ResponseMetaHeader)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ResponseMetaHeader) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.Version)
+ size += proto.UInt64Size(2, x.Epoch)
+ size += proto.UInt32Size(3, x.Ttl)
+ for i := range x.XHeaders {
+ size += proto.NestedStructureSize(4, x.XHeaders[i])
+ }
+ size += proto.NestedStructureSize(5, x.Origin)
+ size += proto.NestedStructureSize(6, x.Status)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ResponseMetaHeader) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ResponseMetaHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Version != nil && x.Version.StableSize() != 0 {
+ x.Version.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.Epoch != 0 {
+ mm.AppendUint64(2, x.Epoch)
+ }
+ if x.Ttl != 0 {
+ mm.AppendUint32(3, x.Ttl)
+ }
+ for i := range x.XHeaders {
+ if x.XHeaders[i] != nil && x.XHeaders[i].StableSize() != 0 {
+ x.XHeaders[i].EmitProtobuf(mm.AppendMessage(4))
+ }
+ }
+ if x.Origin != nil && x.Origin.StableSize() != 0 {
+ x.Origin.EmitProtobuf(mm.AppendMessage(5))
+ }
+ if x.Status != nil && x.Status.StableSize() != 0 {
+ x.Status.EmitProtobuf(mm.AppendMessage(6))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ResponseMetaHeader) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ResponseMetaHeader")
+ }
+ switch fc.FieldNum {
+ case 1: // Version
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Version")
+ }
+ x.Version = new(grpc.Version)
+ if err := x.Version.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // Epoch
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Epoch")
+ }
+ x.Epoch = data
+ case 3: // Ttl
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Ttl")
+ }
+ x.Ttl = data
+ case 4: // XHeaders
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "XHeaders")
+ }
+ x.XHeaders = append(x.XHeaders, new(XHeader))
+ ff := x.XHeaders[len(x.XHeaders)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 5: // Origin
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Origin")
+ }
+ x.Origin = new(ResponseMetaHeader)
+ if err := x.Origin.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 6: // Status
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Status")
+ }
+ x.Status = new(grpc2.Status)
+ if err := x.Status.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ResponseMetaHeader) GetVersion() *grpc.Version {
+ if x != nil {
+ return x.Version
+ }
+ return nil
+}
+func (x *ResponseMetaHeader) SetVersion(v *grpc.Version) {
+ x.Version = v
+}
+func (x *ResponseMetaHeader) GetEpoch() uint64 {
+ if x != nil {
+ return x.Epoch
+ }
+ return 0
+}
+func (x *ResponseMetaHeader) SetEpoch(v uint64) {
+ x.Epoch = v
+}
+func (x *ResponseMetaHeader) GetTtl() uint32 {
+ if x != nil {
+ return x.Ttl
+ }
+ return 0
+}
+func (x *ResponseMetaHeader) SetTtl(v uint32) {
+ x.Ttl = v
+}
+func (x *ResponseMetaHeader) GetXHeaders() []*XHeader {
+ if x != nil {
+ return x.XHeaders
+ }
+ return nil
+}
+func (x *ResponseMetaHeader) SetXHeaders(v []*XHeader) {
+ x.XHeaders = v
+}
+func (x *ResponseMetaHeader) GetOrigin() *ResponseMetaHeader {
+ if x != nil {
+ return x.Origin
+ }
+ return nil
+}
+func (x *ResponseMetaHeader) SetOrigin(v *ResponseMetaHeader) {
+ x.Origin = v
+}
+func (x *ResponseMetaHeader) GetStatus() *grpc2.Status {
+ if x != nil {
+ return x.Status
+ }
+ return nil
+}
+func (x *ResponseMetaHeader) SetStatus(v *grpc2.Status) {
+ x.Status = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ResponseMetaHeader) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ResponseMetaHeader) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"version\":"
+ out.RawString(prefix[1:])
+ x.Version.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"epoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.Epoch)
+ }
+ {
+ const prefix string = ",\"ttl\":"
+ out.RawString(prefix)
+ out.Uint32(x.Ttl)
+ }
+ {
+ const prefix string = ",\"xHeaders\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.XHeaders {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.XHeaders[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"status\":"
+ out.RawString(prefix)
+ x.Status.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ResponseMetaHeader) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ResponseMetaHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "version":
+ {
+ var f *grpc.Version
+ f = new(grpc.Version)
+ f.UnmarshalEasyJSON(in)
+ x.Version = f
+ }
+ case "epoch":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.Epoch = f
+ }
+ case "ttl":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Ttl = f
+ }
+ case "xHeaders":
+ {
+ var f *XHeader
+ var list []*XHeader
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(XHeader)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.XHeaders = list
+ in.Delim(']')
+ }
+ case "origin":
+ {
+ var f *ResponseMetaHeader
+ f = new(ResponseMetaHeader)
+ f.UnmarshalEasyJSON(in)
+ x.Origin = f
+ }
+ case "status":
+ {
+ var f *grpc2.Status
+ f = new(grpc2.Status)
+ f.UnmarshalEasyJSON(in)
+ x.Status = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type RequestVerificationHeader struct {
+ BodySignature *grpc.Signature `json:"bodySignature"`
+ MetaSignature *grpc.Signature `json:"metaSignature"`
+ OriginSignature *grpc.Signature `json:"originSignature"`
+ Origin *RequestVerificationHeader `json:"origin"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*RequestVerificationHeader)(nil)
+ _ encoding.ProtoUnmarshaler = (*RequestVerificationHeader)(nil)
+ _ json.Marshaler = (*RequestVerificationHeader)(nil)
+ _ json.Unmarshaler = (*RequestVerificationHeader)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *RequestVerificationHeader) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.BodySignature)
+ size += proto.NestedStructureSize(2, x.MetaSignature)
+ size += proto.NestedStructureSize(3, x.OriginSignature)
+ size += proto.NestedStructureSize(4, x.Origin)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *RequestVerificationHeader) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *RequestVerificationHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.BodySignature != nil && x.BodySignature.StableSize() != 0 {
+ x.BodySignature.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaSignature != nil && x.MetaSignature.StableSize() != 0 {
+ x.MetaSignature.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.OriginSignature != nil && x.OriginSignature.StableSize() != 0 {
+ x.OriginSignature.EmitProtobuf(mm.AppendMessage(3))
+ }
+ if x.Origin != nil && x.Origin.StableSize() != 0 {
+ x.Origin.EmitProtobuf(mm.AppendMessage(4))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *RequestVerificationHeader) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "RequestVerificationHeader")
+ }
+ switch fc.FieldNum {
+ case 1: // BodySignature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "BodySignature")
+ }
+ x.BodySignature = new(grpc.Signature)
+ if err := x.BodySignature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaSignature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaSignature")
+ }
+ x.MetaSignature = new(grpc.Signature)
+ if err := x.MetaSignature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // OriginSignature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OriginSignature")
+ }
+ x.OriginSignature = new(grpc.Signature)
+ if err := x.OriginSignature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // Origin
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Origin")
+ }
+ x.Origin = new(RequestVerificationHeader)
+ if err := x.Origin.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *RequestVerificationHeader) GetBodySignature() *grpc.Signature {
+ if x != nil {
+ return x.BodySignature
+ }
+ return nil
+}
+func (x *RequestVerificationHeader) SetBodySignature(v *grpc.Signature) {
+ x.BodySignature = v
+}
+func (x *RequestVerificationHeader) GetMetaSignature() *grpc.Signature {
+ if x != nil {
+ return x.MetaSignature
+ }
+ return nil
+}
+func (x *RequestVerificationHeader) SetMetaSignature(v *grpc.Signature) {
+ x.MetaSignature = v
+}
+func (x *RequestVerificationHeader) GetOriginSignature() *grpc.Signature {
+ if x != nil {
+ return x.OriginSignature
+ }
+ return nil
+}
+func (x *RequestVerificationHeader) SetOriginSignature(v *grpc.Signature) {
+ x.OriginSignature = v
+}
+func (x *RequestVerificationHeader) GetOrigin() *RequestVerificationHeader {
+ if x != nil {
+ return x.Origin
+ }
+ return nil
+}
+func (x *RequestVerificationHeader) SetOrigin(v *RequestVerificationHeader) {
+ x.Origin = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *RequestVerificationHeader) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *RequestVerificationHeader) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"bodySignature\":"
+ out.RawString(prefix[1:])
+ x.BodySignature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaSignature\":"
+ out.RawString(prefix)
+ x.MetaSignature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"originSignature\":"
+ out.RawString(prefix)
+ x.OriginSignature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *RequestVerificationHeader) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *RequestVerificationHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "bodySignature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.BodySignature = f
+ }
+ case "metaSignature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.MetaSignature = f
+ }
+ case "originSignature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.OriginSignature = f
+ }
+ case "origin":
+ {
+ var f *RequestVerificationHeader
+ f = new(RequestVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.Origin = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type ResponseVerificationHeader struct {
+ BodySignature *grpc.Signature `json:"bodySignature"`
+ MetaSignature *grpc.Signature `json:"metaSignature"`
+ OriginSignature *grpc.Signature `json:"originSignature"`
+ Origin *ResponseVerificationHeader `json:"origin"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*ResponseVerificationHeader)(nil)
+ _ encoding.ProtoUnmarshaler = (*ResponseVerificationHeader)(nil)
+ _ json.Marshaler = (*ResponseVerificationHeader)(nil)
+ _ json.Unmarshaler = (*ResponseVerificationHeader)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *ResponseVerificationHeader) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.NestedStructureSize(1, x.BodySignature)
+ size += proto.NestedStructureSize(2, x.MetaSignature)
+ size += proto.NestedStructureSize(3, x.OriginSignature)
+ size += proto.NestedStructureSize(4, x.Origin)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *ResponseVerificationHeader) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *ResponseVerificationHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.BodySignature != nil && x.BodySignature.StableSize() != 0 {
+ x.BodySignature.EmitProtobuf(mm.AppendMessage(1))
+ }
+ if x.MetaSignature != nil && x.MetaSignature.StableSize() != 0 {
+ x.MetaSignature.EmitProtobuf(mm.AppendMessage(2))
+ }
+ if x.OriginSignature != nil && x.OriginSignature.StableSize() != 0 {
+ x.OriginSignature.EmitProtobuf(mm.AppendMessage(3))
+ }
+ if x.Origin != nil && x.Origin.StableSize() != 0 {
+ x.Origin.EmitProtobuf(mm.AppendMessage(4))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *ResponseVerificationHeader) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "ResponseVerificationHeader")
+ }
+ switch fc.FieldNum {
+ case 1: // BodySignature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "BodySignature")
+ }
+ x.BodySignature = new(grpc.Signature)
+ if err := x.BodySignature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 2: // MetaSignature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "MetaSignature")
+ }
+ x.MetaSignature = new(grpc.Signature)
+ if err := x.MetaSignature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 3: // OriginSignature
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "OriginSignature")
+ }
+ x.OriginSignature = new(grpc.Signature)
+ if err := x.OriginSignature.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ case 4: // Origin
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Origin")
+ }
+ x.Origin = new(ResponseVerificationHeader)
+ if err := x.Origin.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *ResponseVerificationHeader) GetBodySignature() *grpc.Signature {
+ if x != nil {
+ return x.BodySignature
+ }
+ return nil
+}
+func (x *ResponseVerificationHeader) SetBodySignature(v *grpc.Signature) {
+ x.BodySignature = v
+}
+func (x *ResponseVerificationHeader) GetMetaSignature() *grpc.Signature {
+ if x != nil {
+ return x.MetaSignature
+ }
+ return nil
+}
+func (x *ResponseVerificationHeader) SetMetaSignature(v *grpc.Signature) {
+ x.MetaSignature = v
+}
+func (x *ResponseVerificationHeader) GetOriginSignature() *grpc.Signature {
+ if x != nil {
+ return x.OriginSignature
+ }
+ return nil
+}
+func (x *ResponseVerificationHeader) SetOriginSignature(v *grpc.Signature) {
+ x.OriginSignature = v
+}
+func (x *ResponseVerificationHeader) GetOrigin() *ResponseVerificationHeader {
+ if x != nil {
+ return x.Origin
+ }
+ return nil
+}
+func (x *ResponseVerificationHeader) SetOrigin(v *ResponseVerificationHeader) {
+ x.Origin = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *ResponseVerificationHeader) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *ResponseVerificationHeader) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"bodySignature\":"
+ out.RawString(prefix[1:])
+ x.BodySignature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"metaSignature\":"
+ out.RawString(prefix)
+ x.MetaSignature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"originSignature\":"
+ out.RawString(prefix)
+ x.OriginSignature.MarshalEasyJSON(out)
+ }
+ {
+ const prefix string = ",\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *ResponseVerificationHeader) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *ResponseVerificationHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "bodySignature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.BodySignature = f
+ }
+ case "metaSignature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.MetaSignature = f
+ }
+ case "originSignature":
+ {
+ var f *grpc.Signature
+ f = new(grpc.Signature)
+ f.UnmarshalEasyJSON(in)
+ x.OriginSignature = f
+ }
+ case "origin":
+ {
+ var f *ResponseVerificationHeader
+ f = new(ResponseVerificationHeader)
+ f.UnmarshalEasyJSON(in)
+ x.Origin = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/session/grpc/types_frostfs_fuzz.go b/session/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..fae4a05
--- /dev/null
+++ b/session/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,159 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package session
+
+func DoFuzzProtoObjectSessionContext(data []byte) int {
+ msg := new(ObjectSessionContext)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONObjectSessionContext(data []byte) int {
+ msg := new(ObjectSessionContext)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoContainerSessionContext(data []byte) int {
+ msg := new(ContainerSessionContext)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONContainerSessionContext(data []byte) int {
+ msg := new(ContainerSessionContext)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoSessionToken(data []byte) int {
+ msg := new(SessionToken)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONSessionToken(data []byte) int {
+ msg := new(SessionToken)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoXHeader(data []byte) int {
+ msg := new(XHeader)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONXHeader(data []byte) int {
+ msg := new(XHeader)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoRequestMetaHeader(data []byte) int {
+ msg := new(RequestMetaHeader)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONRequestMetaHeader(data []byte) int {
+ msg := new(RequestMetaHeader)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoResponseMetaHeader(data []byte) int {
+ msg := new(ResponseMetaHeader)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONResponseMetaHeader(data []byte) int {
+ msg := new(ResponseMetaHeader)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoRequestVerificationHeader(data []byte) int {
+ msg := new(RequestVerificationHeader)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONRequestVerificationHeader(data []byte) int {
+ msg := new(RequestVerificationHeader)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
+func DoFuzzProtoResponseVerificationHeader(data []byte) int {
+ msg := new(ResponseVerificationHeader)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONResponseVerificationHeader(data []byte) int {
+ msg := new(ResponseVerificationHeader)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/session/grpc/types_frostfs_test.go b/session/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..5c9b6c2
--- /dev/null
+++ b/session/grpc/types_frostfs_test.go
@@ -0,0 +1,91 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package session
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoObjectSessionContext(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoObjectSessionContext(data)
+ })
+}
+func FuzzJSONObjectSessionContext(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONObjectSessionContext(data)
+ })
+}
+func FuzzProtoContainerSessionContext(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoContainerSessionContext(data)
+ })
+}
+func FuzzJSONContainerSessionContext(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONContainerSessionContext(data)
+ })
+}
+func FuzzProtoSessionToken(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoSessionToken(data)
+ })
+}
+func FuzzJSONSessionToken(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONSessionToken(data)
+ })
+}
+func FuzzProtoXHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoXHeader(data)
+ })
+}
+func FuzzJSONXHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONXHeader(data)
+ })
+}
+func FuzzProtoRequestMetaHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoRequestMetaHeader(data)
+ })
+}
+func FuzzJSONRequestMetaHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONRequestMetaHeader(data)
+ })
+}
+func FuzzProtoResponseMetaHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoResponseMetaHeader(data)
+ })
+}
+func FuzzJSONResponseMetaHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONResponseMetaHeader(data)
+ })
+}
+func FuzzProtoRequestVerificationHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoRequestVerificationHeader(data)
+ })
+}
+func FuzzJSONRequestVerificationHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONRequestVerificationHeader(data)
+ })
+}
+func FuzzProtoResponseVerificationHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoResponseVerificationHeader(data)
+ })
+}
+func FuzzJSONResponseVerificationHeader(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONResponseVerificationHeader(data)
+ })
+}
diff --git a/status/grpc/types.go b/status/grpc/types.go
deleted file mode 100644
index 993f632..0000000
--- a/status/grpc/types.go
+++ /dev/null
@@ -1,26 +0,0 @@
-package status
-
-// SetId sets identifier of the Status_Detail.
-func (x *Status_Detail) SetId(v uint32) {
- x.Id = v
-}
-
-// SetValue sets value of the Status_Detail.
-func (x *Status_Detail) SetValue(v []byte) {
- x.Value = v
-}
-
-// SetCode sets code of the Status.
-func (x *Status) SetCode(v uint32) {
- x.Code = v
-}
-
-// SetMessage sets message about the Status.
-func (x *Status) SetMessage(v string) {
- x.Message = v
-}
-
-// SetDetails sets details of the Status.
-func (x *Status) SetDetails(v []*Status_Detail) {
- x.Details = v
-}
diff --git a/status/grpc/types.pb.go b/status/grpc/types.pb.go
deleted file mode 100644
index b6b081b..0000000
--- a/status/grpc/types.pb.go
+++ /dev/null
@@ -1,721 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: status/grpc/types.proto
-
-package status
-
-import (
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Section identifiers.
-type Section int32
-
-const (
- // Successful return codes.
- Section_SECTION_SUCCESS Section = 0
- // Failure codes regardless of the operation.
- Section_SECTION_FAILURE_COMMON Section = 1
- // Object service-specific errors.
- Section_SECTION_OBJECT Section = 2
- // Container service-specific errors.
- Section_SECTION_CONTAINER Section = 3
- // Session service-specific errors.
- Section_SECTION_SESSION Section = 4
- // Session service-specific errors.
- Section_SECTION_APE_MANAGER Section = 5
-)
-
-// Enum value maps for Section.
-var (
- Section_name = map[int32]string{
- 0: "SECTION_SUCCESS",
- 1: "SECTION_FAILURE_COMMON",
- 2: "SECTION_OBJECT",
- 3: "SECTION_CONTAINER",
- 4: "SECTION_SESSION",
- 5: "SECTION_APE_MANAGER",
- }
- Section_value = map[string]int32{
- "SECTION_SUCCESS": 0,
- "SECTION_FAILURE_COMMON": 1,
- "SECTION_OBJECT": 2,
- "SECTION_CONTAINER": 3,
- "SECTION_SESSION": 4,
- "SECTION_APE_MANAGER": 5,
- }
-)
-
-func (x Section) Enum() *Section {
- p := new(Section)
- *p = x
- return p
-}
-
-func (x Section) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Section) Descriptor() protoreflect.EnumDescriptor {
- return file_status_grpc_types_proto_enumTypes[0].Descriptor()
-}
-
-func (Section) Type() protoreflect.EnumType {
- return &file_status_grpc_types_proto_enumTypes[0]
-}
-
-func (x Section) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Section.Descriptor instead.
-func (Section) EnumDescriptor() ([]byte, []int) {
- return file_status_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-// Section of NeoFS successful return codes.
-type Success int32
-
-const (
- // [**0**] Default success. Not detailed.
- // If the server cannot match successful outcome to the code, it should
- // use this code.
- Success_OK Success = 0
-)
-
-// Enum value maps for Success.
-var (
- Success_name = map[int32]string{
- 0: "OK",
- }
- Success_value = map[string]int32{
- "OK": 0,
- }
-)
-
-func (x Success) Enum() *Success {
- p := new(Success)
- *p = x
- return p
-}
-
-func (x Success) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Success) Descriptor() protoreflect.EnumDescriptor {
- return file_status_grpc_types_proto_enumTypes[1].Descriptor()
-}
-
-func (Success) Type() protoreflect.EnumType {
- return &file_status_grpc_types_proto_enumTypes[1]
-}
-
-func (x Success) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Success.Descriptor instead.
-func (Success) EnumDescriptor() ([]byte, []int) {
- return file_status_grpc_types_proto_rawDescGZIP(), []int{1}
-}
-
-// Section of failed statuses independent of the operation.
-type CommonFail int32
-
-const (
- // [**1024**] Internal server error, default failure. Not detailed.
- // If the server cannot match failed outcome to the code, it should
- // use this code.
- CommonFail_INTERNAL CommonFail = 0
- // [**1025**] Wrong magic of the NeoFS network.
- // Details:
- // - [**0**] Magic number of the served NeoFS network (big-endian 64-bit
- // unsigned integer).
- CommonFail_WRONG_MAGIC_NUMBER CommonFail = 1
- // [**1026**] Signature verification failure.
- CommonFail_SIGNATURE_VERIFICATION_FAIL CommonFail = 2
- // [**1027**] Node is under maintenance.
- CommonFail_NODE_UNDER_MAINTENANCE CommonFail = 3
- // [**1028**] Invalid argument error. If the server fails on validation of a
- // request parameter as the client sent it incorrectly, then this code should
- // be used.
- CommonFail_INVALID_ARGUMENT CommonFail = 4
-)
-
-// Enum value maps for CommonFail.
-var (
- CommonFail_name = map[int32]string{
- 0: "INTERNAL",
- 1: "WRONG_MAGIC_NUMBER",
- 2: "SIGNATURE_VERIFICATION_FAIL",
- 3: "NODE_UNDER_MAINTENANCE",
- 4: "INVALID_ARGUMENT",
- }
- CommonFail_value = map[string]int32{
- "INTERNAL": 0,
- "WRONG_MAGIC_NUMBER": 1,
- "SIGNATURE_VERIFICATION_FAIL": 2,
- "NODE_UNDER_MAINTENANCE": 3,
- "INVALID_ARGUMENT": 4,
- }
-)
-
-func (x CommonFail) Enum() *CommonFail {
- p := new(CommonFail)
- *p = x
- return p
-}
-
-func (x CommonFail) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (CommonFail) Descriptor() protoreflect.EnumDescriptor {
- return file_status_grpc_types_proto_enumTypes[2].Descriptor()
-}
-
-func (CommonFail) Type() protoreflect.EnumType {
- return &file_status_grpc_types_proto_enumTypes[2]
-}
-
-func (x CommonFail) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use CommonFail.Descriptor instead.
-func (CommonFail) EnumDescriptor() ([]byte, []int) {
- return file_status_grpc_types_proto_rawDescGZIP(), []int{2}
-}
-
-// Section of statuses for object-related operations.
-type Object int32
-
-const (
- // [**2048**] Access denied by ACL.
- // Details:
- // - [**0**] Human-readable description (UTF-8 encoded string).
- Object_ACCESS_DENIED Object = 0
- // [**2049**] Object not found.
- Object_OBJECT_NOT_FOUND Object = 1
- // [**2050**] Operation rejected by the object lock.
- Object_LOCKED Object = 2
- // [**2051**] Locking an object with a non-REGULAR type rejected.
- Object_LOCK_NON_REGULAR_OBJECT Object = 3
- // [**2052**] Object has been marked deleted.
- Object_OBJECT_ALREADY_REMOVED Object = 4
- // [**2053**] Invalid range has been requested for an object.
- Object_OUT_OF_RANGE Object = 5
-)
-
-// Enum value maps for Object.
-var (
- Object_name = map[int32]string{
- 0: "ACCESS_DENIED",
- 1: "OBJECT_NOT_FOUND",
- 2: "LOCKED",
- 3: "LOCK_NON_REGULAR_OBJECT",
- 4: "OBJECT_ALREADY_REMOVED",
- 5: "OUT_OF_RANGE",
- }
- Object_value = map[string]int32{
- "ACCESS_DENIED": 0,
- "OBJECT_NOT_FOUND": 1,
- "LOCKED": 2,
- "LOCK_NON_REGULAR_OBJECT": 3,
- "OBJECT_ALREADY_REMOVED": 4,
- "OUT_OF_RANGE": 5,
- }
-)
-
-func (x Object) Enum() *Object {
- p := new(Object)
- *p = x
- return p
-}
-
-func (x Object) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Object) Descriptor() protoreflect.EnumDescriptor {
- return file_status_grpc_types_proto_enumTypes[3].Descriptor()
-}
-
-func (Object) Type() protoreflect.EnumType {
- return &file_status_grpc_types_proto_enumTypes[3]
-}
-
-func (x Object) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Object.Descriptor instead.
-func (Object) EnumDescriptor() ([]byte, []int) {
- return file_status_grpc_types_proto_rawDescGZIP(), []int{3}
-}
-
-// Section of statuses for container-related operations.
-type Container int32
-
-const (
- // [**3072**] Container not found.
- Container_CONTAINER_NOT_FOUND Container = 0
- // [**3073**] eACL table not found.
- Container_EACL_NOT_FOUND Container = 1
- // [**3074**] Container access denied.
- Container_CONTAINER_ACCESS_DENIED Container = 2
-)
-
-// Enum value maps for Container.
-var (
- Container_name = map[int32]string{
- 0: "CONTAINER_NOT_FOUND",
- 1: "EACL_NOT_FOUND",
- 2: "CONTAINER_ACCESS_DENIED",
- }
- Container_value = map[string]int32{
- "CONTAINER_NOT_FOUND": 0,
- "EACL_NOT_FOUND": 1,
- "CONTAINER_ACCESS_DENIED": 2,
- }
-)
-
-func (x Container) Enum() *Container {
- p := new(Container)
- *p = x
- return p
-}
-
-func (x Container) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Container) Descriptor() protoreflect.EnumDescriptor {
- return file_status_grpc_types_proto_enumTypes[4].Descriptor()
-}
-
-func (Container) Type() protoreflect.EnumType {
- return &file_status_grpc_types_proto_enumTypes[4]
-}
-
-func (x Container) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Container.Descriptor instead.
-func (Container) EnumDescriptor() ([]byte, []int) {
- return file_status_grpc_types_proto_rawDescGZIP(), []int{4}
-}
-
-// Section of statuses for session-related operations.
-type Session int32
-
-const (
- // [**4096**] Token not found.
- Session_TOKEN_NOT_FOUND Session = 0
- // [**4097**] Token has expired.
- Session_TOKEN_EXPIRED Session = 1
-)
-
-// Enum value maps for Session.
-var (
- Session_name = map[int32]string{
- 0: "TOKEN_NOT_FOUND",
- 1: "TOKEN_EXPIRED",
- }
- Session_value = map[string]int32{
- "TOKEN_NOT_FOUND": 0,
- "TOKEN_EXPIRED": 1,
- }
-)
-
-func (x Session) Enum() *Session {
- p := new(Session)
- *p = x
- return p
-}
-
-func (x Session) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Session) Descriptor() protoreflect.EnumDescriptor {
- return file_status_grpc_types_proto_enumTypes[5].Descriptor()
-}
-
-func (Session) Type() protoreflect.EnumType {
- return &file_status_grpc_types_proto_enumTypes[5]
-}
-
-func (x Session) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Session.Descriptor instead.
-func (Session) EnumDescriptor() ([]byte, []int) {
- return file_status_grpc_types_proto_rawDescGZIP(), []int{5}
-}
-
-// Section of status for APE manager related operations.
-type APEManager int32
-
-const (
- // [**5120**] The operation is denied by APE manager.
- APEManager_APE_MANAGER_ACCESS_DENIED APEManager = 0
-)
-
-// Enum value maps for APEManager.
-var (
- APEManager_name = map[int32]string{
- 0: "APE_MANAGER_ACCESS_DENIED",
- }
- APEManager_value = map[string]int32{
- "APE_MANAGER_ACCESS_DENIED": 0,
- }
-)
-
-func (x APEManager) Enum() *APEManager {
- p := new(APEManager)
- *p = x
- return p
-}
-
-func (x APEManager) String() string {
- return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (APEManager) Descriptor() protoreflect.EnumDescriptor {
- return file_status_grpc_types_proto_enumTypes[6].Descriptor()
-}
-
-func (APEManager) Type() protoreflect.EnumType {
- return &file_status_grpc_types_proto_enumTypes[6]
-}
-
-func (x APEManager) Number() protoreflect.EnumNumber {
- return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use APEManager.Descriptor instead.
-func (APEManager) EnumDescriptor() ([]byte, []int) {
- return file_status_grpc_types_proto_rawDescGZIP(), []int{6}
-}
-
-// Declares the general format of the status returns of the NeoFS RPC protocol.
-// Status is present in all response messages. Each RPC of NeoFS protocol
-// describes the possible outcomes and details of the operation.
-//
-// Each status is assigned a one-to-one numeric code. Any unique result of an
-// operation in NeoFS is unambiguously associated with the code value.
-//
-// Numerical set of codes is split into 1024-element sections. An enumeration
-// is defined for each section. Values can be referred to in the following ways:
-//
-// * numerical value ranging from 0 to 4,294,967,295 (global code);
-//
-// - values from enumeration (local code). The formula for the ratio of the
-// local code (`L`) of a defined section (`S`) to the global one (`G`):
-// `G = 1024 * S + L`.
-//
-// All outcomes are divided into successful and failed, which corresponds
-// to the success or failure of the operation. The definition of success
-// follows the semantics of RPC and the description of its purpose.
-// The server must not attach code that is the opposite of the outcome type.
-//
-// See the set of return codes in the description for calls.
-//
-// Each status can carry a developer-facing error message. It should be a human
-// readable text in English. The server should not transmit (and the client
-// should not expect) useful information in the message. Field `details`
-// should make the return more detailed.
-type Status struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The status code
- Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
- // Developer-facing error message
- Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
- // Data detailing the outcome of the operation. Must be unique by ID.
- Details []*Status_Detail `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty"`
-}
-
-func (x *Status) Reset() {
- *x = Status{}
- if protoimpl.UnsafeEnabled {
- mi := &file_status_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Status) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Status) ProtoMessage() {}
-
-func (x *Status) ProtoReflect() protoreflect.Message {
- mi := &file_status_grpc_types_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 Status.ProtoReflect.Descriptor instead.
-func (*Status) Descriptor() ([]byte, []int) {
- return file_status_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Status) GetCode() uint32 {
- if x != nil {
- return x.Code
- }
- return 0
-}
-
-func (x *Status) GetMessage() string {
- if x != nil {
- return x.Message
- }
- return ""
-}
-
-func (x *Status) GetDetails() []*Status_Detail {
- if x != nil {
- return x.Details
- }
- return nil
-}
-
-// Return detail. It contains additional information that can be used to
-// analyze the response. Each code defines a set of details that can be
-// attached to a status. Client should not handle details that are not
-// covered by the code.
-type Status_Detail struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Detail ID. The identifier is required to determine the binary format
- // of the detail and how to decode it.
- Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
- // Binary status detail. Must follow the format associated with ID.
- // The possibility of missing a value must be explicitly allowed.
- Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
-}
-
-func (x *Status_Detail) Reset() {
- *x = Status_Detail{}
- if protoimpl.UnsafeEnabled {
- mi := &file_status_grpc_types_proto_msgTypes[1]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Status_Detail) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Status_Detail) ProtoMessage() {}
-
-func (x *Status_Detail) ProtoReflect() protoreflect.Message {
- mi := &file_status_grpc_types_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 Status_Detail.ProtoReflect.Descriptor instead.
-func (*Status_Detail) Descriptor() ([]byte, []int) {
- return file_status_grpc_types_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *Status_Detail) GetId() uint32 {
- if x != nil {
- return x.Id
- }
- return 0
-}
-
-func (x *Status_Detail) GetValue() []byte {
- if x != nil {
- return x.Value
- }
- return nil
-}
-
-var File_status_grpc_types_proto protoreflect.FileDescriptor
-
-var file_status_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x17, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79,
- 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
- 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x06,
- 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0d, 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, 0x12, 0x39, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18,
- 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
- 0x32, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e,
- 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a,
- 0x2e, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
- 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a,
- 0x93, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x53,
- 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00,
- 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c,
- 0x55, 0x52, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e,
- 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02,
- 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54,
- 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x43, 0x54, 0x49,
- 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13,
- 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41,
- 0x47, 0x45, 0x52, 0x10, 0x05, 0x2a, 0x11, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
- 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x2a, 0x85, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6d,
- 0x6d, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x54, 0x45, 0x52,
- 0x4e, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x52, 0x4f, 0x4e, 0x47, 0x5f, 0x4d,
- 0x41, 0x47, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1f, 0x0a,
- 0x1b, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46,
- 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x02, 0x12, 0x1a,
- 0x0a, 0x16, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x49,
- 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e,
- 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x04,
- 0x2a, 0x88, 0x01, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x41,
- 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14,
- 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55,
- 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x02,
- 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x47,
- 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x1a, 0x0a,
- 0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f,
- 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x55, 0x54,
- 0x5f, 0x4f, 0x46, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x05, 0x2a, 0x55, 0x0a, 0x09, 0x43,
- 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x54,
- 0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10,
- 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x41, 0x43, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f,
- 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e,
- 0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44,
- 0x10, 0x02, 0x2a, 0x31, 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a,
- 0x0f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44,
- 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x49,
- 0x52, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x2b, 0x0a, 0x0a, 0x41, 0x50, 0x45, 0x4d, 0x61, 0x6e, 0x61,
- 0x67, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47,
- 0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44,
- 0x10, 0x00, 0x42, 0x61, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
- 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64,
- 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d,
- 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2f, 0x67, 0x72, 0x70,
- 0x63, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0xaa, 0x02, 0x1a, 0x4e, 0x65, 0x6f, 0x2e, 0x46,
- 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x53,
- 0x74, 0x61, 0x74, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_status_grpc_types_proto_rawDescOnce sync.Once
- file_status_grpc_types_proto_rawDescData = file_status_grpc_types_proto_rawDesc
-)
-
-func file_status_grpc_types_proto_rawDescGZIP() []byte {
- file_status_grpc_types_proto_rawDescOnce.Do(func() {
- file_status_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_status_grpc_types_proto_rawDescData)
- })
- return file_status_grpc_types_proto_rawDescData
-}
-
-var file_status_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
-var file_status_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
-var file_status_grpc_types_proto_goTypes = []interface{}{
- (Section)(0), // 0: neo.fs.v2.status.Section
- (Success)(0), // 1: neo.fs.v2.status.Success
- (CommonFail)(0), // 2: neo.fs.v2.status.CommonFail
- (Object)(0), // 3: neo.fs.v2.status.Object
- (Container)(0), // 4: neo.fs.v2.status.Container
- (Session)(0), // 5: neo.fs.v2.status.Session
- (APEManager)(0), // 6: neo.fs.v2.status.APEManager
- (*Status)(nil), // 7: neo.fs.v2.status.Status
- (*Status_Detail)(nil), // 8: neo.fs.v2.status.Status.Detail
-}
-var file_status_grpc_types_proto_depIdxs = []int32{
- 8, // 0: neo.fs.v2.status.Status.details:type_name -> neo.fs.v2.status.Status.Detail
- 1, // [1:1] is the sub-list for method output_type
- 1, // [1:1] is the sub-list for method input_type
- 1, // [1:1] is the sub-list for extension type_name
- 1, // [1:1] is the sub-list for extension extendee
- 0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_status_grpc_types_proto_init() }
-func file_status_grpc_types_proto_init() {
- if File_status_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_status_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Status); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_status_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Status_Detail); 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_status_grpc_types_proto_rawDesc,
- NumEnums: 7,
- NumMessages: 2,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_status_grpc_types_proto_goTypes,
- DependencyIndexes: file_status_grpc_types_proto_depIdxs,
- EnumInfos: file_status_grpc_types_proto_enumTypes,
- MessageInfos: file_status_grpc_types_proto_msgTypes,
- }.Build()
- File_status_grpc_types_proto = out.File
- file_status_grpc_types_proto_rawDesc = nil
- file_status_grpc_types_proto_goTypes = nil
- file_status_grpc_types_proto_depIdxs = nil
-}
diff --git a/status/grpc/types_frostfs.pb.go b/status/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..a12ab55
--- /dev/null
+++ b/status/grpc/types_frostfs.pb.go
@@ -0,0 +1,643 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package status
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
+)
+
+type Section int32
+
+const (
+ Section_SECTION_SUCCESS Section = 0
+ Section_SECTION_FAILURE_COMMON Section = 1
+ Section_SECTION_OBJECT Section = 2
+ Section_SECTION_CONTAINER Section = 3
+ Section_SECTION_SESSION Section = 4
+ Section_SECTION_APE_MANAGER Section = 5
+)
+
+var (
+ Section_name = map[int32]string{
+ 0: "SECTION_SUCCESS",
+ 1: "SECTION_FAILURE_COMMON",
+ 2: "SECTION_OBJECT",
+ 3: "SECTION_CONTAINER",
+ 4: "SECTION_SESSION",
+ 5: "SECTION_APE_MANAGER",
+ }
+ Section_value = map[string]int32{
+ "SECTION_SUCCESS": 0,
+ "SECTION_FAILURE_COMMON": 1,
+ "SECTION_OBJECT": 2,
+ "SECTION_CONTAINER": 3,
+ "SECTION_SESSION": 4,
+ "SECTION_APE_MANAGER": 5,
+ }
+)
+
+func (x Section) String() string {
+ if v, ok := Section_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Section) FromString(s string) bool {
+ if v, ok := Section_value[s]; ok {
+ *x = Section(v)
+ return true
+ }
+ return false
+}
+
+type Success int32
+
+const (
+ Success_OK Success = 0
+)
+
+var (
+ Success_name = map[int32]string{
+ 0: "OK",
+ }
+ Success_value = map[string]int32{
+ "OK": 0,
+ }
+)
+
+func (x Success) String() string {
+ if v, ok := Success_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Success) FromString(s string) bool {
+ if v, ok := Success_value[s]; ok {
+ *x = Success(v)
+ return true
+ }
+ return false
+}
+
+type CommonFail int32
+
+const (
+ CommonFail_INTERNAL CommonFail = 0
+ CommonFail_WRONG_MAGIC_NUMBER CommonFail = 1
+ CommonFail_SIGNATURE_VERIFICATION_FAIL CommonFail = 2
+ CommonFail_NODE_UNDER_MAINTENANCE CommonFail = 3
+ CommonFail_INVALID_ARGUMENT CommonFail = 4
+)
+
+var (
+ CommonFail_name = map[int32]string{
+ 0: "INTERNAL",
+ 1: "WRONG_MAGIC_NUMBER",
+ 2: "SIGNATURE_VERIFICATION_FAIL",
+ 3: "NODE_UNDER_MAINTENANCE",
+ 4: "INVALID_ARGUMENT",
+ }
+ CommonFail_value = map[string]int32{
+ "INTERNAL": 0,
+ "WRONG_MAGIC_NUMBER": 1,
+ "SIGNATURE_VERIFICATION_FAIL": 2,
+ "NODE_UNDER_MAINTENANCE": 3,
+ "INVALID_ARGUMENT": 4,
+ }
+)
+
+func (x CommonFail) String() string {
+ if v, ok := CommonFail_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *CommonFail) FromString(s string) bool {
+ if v, ok := CommonFail_value[s]; ok {
+ *x = CommonFail(v)
+ return true
+ }
+ return false
+}
+
+type Object int32
+
+const (
+ Object_ACCESS_DENIED Object = 0
+ Object_OBJECT_NOT_FOUND Object = 1
+ Object_LOCKED Object = 2
+ Object_LOCK_NON_REGULAR_OBJECT Object = 3
+ Object_OBJECT_ALREADY_REMOVED Object = 4
+ Object_OUT_OF_RANGE Object = 5
+)
+
+var (
+ Object_name = map[int32]string{
+ 0: "ACCESS_DENIED",
+ 1: "OBJECT_NOT_FOUND",
+ 2: "LOCKED",
+ 3: "LOCK_NON_REGULAR_OBJECT",
+ 4: "OBJECT_ALREADY_REMOVED",
+ 5: "OUT_OF_RANGE",
+ }
+ Object_value = map[string]int32{
+ "ACCESS_DENIED": 0,
+ "OBJECT_NOT_FOUND": 1,
+ "LOCKED": 2,
+ "LOCK_NON_REGULAR_OBJECT": 3,
+ "OBJECT_ALREADY_REMOVED": 4,
+ "OUT_OF_RANGE": 5,
+ }
+)
+
+func (x Object) String() string {
+ if v, ok := Object_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Object) FromString(s string) bool {
+ if v, ok := Object_value[s]; ok {
+ *x = Object(v)
+ return true
+ }
+ return false
+}
+
+type Container int32
+
+const (
+ Container_CONTAINER_NOT_FOUND Container = 0
+ Container_EACL_NOT_FOUND Container = 1
+ Container_CONTAINER_ACCESS_DENIED Container = 2
+)
+
+var (
+ Container_name = map[int32]string{
+ 0: "CONTAINER_NOT_FOUND",
+ 1: "EACL_NOT_FOUND",
+ 2: "CONTAINER_ACCESS_DENIED",
+ }
+ Container_value = map[string]int32{
+ "CONTAINER_NOT_FOUND": 0,
+ "EACL_NOT_FOUND": 1,
+ "CONTAINER_ACCESS_DENIED": 2,
+ }
+)
+
+func (x Container) String() string {
+ if v, ok := Container_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Container) FromString(s string) bool {
+ if v, ok := Container_value[s]; ok {
+ *x = Container(v)
+ return true
+ }
+ return false
+}
+
+type Session int32
+
+const (
+ Session_TOKEN_NOT_FOUND Session = 0
+ Session_TOKEN_EXPIRED Session = 1
+)
+
+var (
+ Session_name = map[int32]string{
+ 0: "TOKEN_NOT_FOUND",
+ 1: "TOKEN_EXPIRED",
+ }
+ Session_value = map[string]int32{
+ "TOKEN_NOT_FOUND": 0,
+ "TOKEN_EXPIRED": 1,
+ }
+)
+
+func (x Session) String() string {
+ if v, ok := Session_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Session) FromString(s string) bool {
+ if v, ok := Session_value[s]; ok {
+ *x = Session(v)
+ return true
+ }
+ return false
+}
+
+type APEManager int32
+
+const (
+ APEManager_APE_MANAGER_ACCESS_DENIED APEManager = 0
+)
+
+var (
+ APEManager_name = map[int32]string{
+ 0: "APE_MANAGER_ACCESS_DENIED",
+ }
+ APEManager_value = map[string]int32{
+ "APE_MANAGER_ACCESS_DENIED": 0,
+ }
+)
+
+func (x APEManager) String() string {
+ if v, ok := APEManager_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *APEManager) FromString(s string) bool {
+ if v, ok := APEManager_value[s]; ok {
+ *x = APEManager(v)
+ return true
+ }
+ return false
+}
+
+type Status_Detail struct {
+ Id uint32 `json:"id"`
+ Value []byte `json:"value"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Status_Detail)(nil)
+ _ encoding.ProtoUnmarshaler = (*Status_Detail)(nil)
+ _ json.Marshaler = (*Status_Detail)(nil)
+ _ json.Unmarshaler = (*Status_Detail)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Status_Detail) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt32Size(1, x.Id)
+ size += proto.BytesSize(2, x.Value)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Status_Detail) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Status_Detail) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Id != 0 {
+ mm.AppendUint32(1, x.Id)
+ }
+ if len(x.Value) != 0 {
+ mm.AppendBytes(2, x.Value)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Status_Detail) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Status_Detail")
+ }
+ switch fc.FieldNum {
+ case 1: // Id
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Id")
+ }
+ x.Id = data
+ case 2: // Value
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Value")
+ }
+ x.Value = data
+ }
+ }
+ return nil
+}
+func (x *Status_Detail) GetId() uint32 {
+ if x != nil {
+ return x.Id
+ }
+ return 0
+}
+func (x *Status_Detail) SetId(v uint32) {
+ x.Id = v
+}
+func (x *Status_Detail) GetValue() []byte {
+ if x != nil {
+ return x.Value
+ }
+ return nil
+}
+func (x *Status_Detail) SetValue(v []byte) {
+ x.Value = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Status_Detail) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Status_Detail) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"id\":"
+ out.RawString(prefix[1:])
+ out.Uint32(x.Id)
+ }
+ {
+ const prefix string = ",\"value\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Value)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Status_Detail) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Status_Detail) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "id":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Id = f
+ }
+ case "value":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.Value = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type Status struct {
+ Code uint32 `json:"code"`
+ Message string `json:"message"`
+ Details []*Status_Detail `json:"details"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Status)(nil)
+ _ encoding.ProtoUnmarshaler = (*Status)(nil)
+ _ json.Marshaler = (*Status)(nil)
+ _ json.Unmarshaler = (*Status)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Status) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt32Size(1, x.Code)
+ size += proto.StringSize(2, x.Message)
+ for i := range x.Details {
+ size += proto.NestedStructureSize(3, x.Details[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Status) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Status) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.Code != 0 {
+ mm.AppendUint32(1, x.Code)
+ }
+ if len(x.Message) != 0 {
+ mm.AppendString(2, x.Message)
+ }
+ for i := range x.Details {
+ if x.Details[i] != nil && x.Details[i].StableSize() != 0 {
+ x.Details[i].EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Status) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Status")
+ }
+ switch fc.FieldNum {
+ case 1: // Code
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Code")
+ }
+ x.Code = data
+ case 2: // Message
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Message")
+ }
+ x.Message = data
+ case 3: // Details
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Details")
+ }
+ x.Details = append(x.Details, new(Status_Detail))
+ ff := x.Details[len(x.Details)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *Status) GetCode() uint32 {
+ if x != nil {
+ return x.Code
+ }
+ return 0
+}
+func (x *Status) SetCode(v uint32) {
+ x.Code = v
+}
+func (x *Status) GetMessage() string {
+ if x != nil {
+ return x.Message
+ }
+ return ""
+}
+func (x *Status) SetMessage(v string) {
+ x.Message = v
+}
+func (x *Status) GetDetails() []*Status_Detail {
+ if x != nil {
+ return x.Details
+ }
+ return nil
+}
+func (x *Status) SetDetails(v []*Status_Detail) {
+ x.Details = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Status) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Status) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"code\":"
+ out.RawString(prefix[1:])
+ out.Uint32(x.Code)
+ }
+ {
+ const prefix string = ",\"message\":"
+ out.RawString(prefix)
+ out.String(x.Message)
+ }
+ {
+ const prefix string = ",\"details\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Details {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Details[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Status) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Status) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "code":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.Code = f
+ }
+ case "message":
+ {
+ var f string
+ f = in.String()
+ x.Message = f
+ }
+ case "details":
+ {
+ var f *Status_Detail
+ var list []*Status_Detail
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(Status_Detail)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Details = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/status/grpc/types_frostfs_fuzz.go b/status/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..ce9d84e
--- /dev/null
+++ b/status/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,26 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package status
+
+func DoFuzzProtoStatus(data []byte) int {
+ msg := new(Status)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONStatus(data []byte) int {
+ msg := new(Status)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/status/grpc/types_frostfs_test.go b/status/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..dfc5631
--- /dev/null
+++ b/status/grpc/types_frostfs_test.go
@@ -0,0 +1,21 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package status
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoStatus(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoStatus(data)
+ })
+}
+func FuzzJSONStatus(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONStatus(data)
+ })
+}
diff --git a/tombstone/grpc/types.go b/tombstone/grpc/types.go
deleted file mode 100644
index 9b4b744..0000000
--- a/tombstone/grpc/types.go
+++ /dev/null
@@ -1,20 +0,0 @@
-package tombstone
-
-import (
- refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
-)
-
-// SetExpirationEpoch sets number of tombstone expiration epoch.
-func (x *Tombstone) SetExpirationEpoch(v uint64) {
- x.ExpirationEpoch = v
-}
-
-// SetSplitId sets identifier of split object hierarchy.
-func (x *Tombstone) SetSplitId(v []byte) {
- x.SplitId = v
-}
-
-// SetMembers sets list of objects to be deleted.
-func (x *Tombstone) SetMembers(v []*refs.ObjectID) {
- x.Members = v
-}
diff --git a/tombstone/grpc/types.pb.go b/tombstone/grpc/types.pb.go
deleted file mode 100644
index 7d416fe..0000000
--- a/tombstone/grpc/types.pb.go
+++ /dev/null
@@ -1,187 +0,0 @@
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// protoc-gen-go v1.33.0
-// protoc v5.27.2
-// source: tombstone/grpc/types.proto
-
-package tombstone
-
-import (
- grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
- protoreflect "google.golang.org/protobuf/reflect/protoreflect"
- protoimpl "google.golang.org/protobuf/runtime/protoimpl"
- 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)
-)
-
-// Tombstone keeps record of deleted objects for a few epochs until they are
-// purged from the NeoFS network.
-type Tombstone struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // Last NeoFS epoch number of the tombstone lifetime. It's set by the
- // tombstone creator depending on the current NeoFS network settings. A
- // tombstone object must have the same expiration epoch value in
- // `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated)
- // attribute. Otherwise, the tombstone will be rejected by a storage node.
- ExpirationEpoch uint64 `protobuf:"varint,1,opt,name=expiration_epoch,json=expirationEpoch,proto3" json:"expiration_epoch,omitempty"`
- // 16 byte UUID used to identify the split object hierarchy parts. Must be
- // unique inside a container. All objects participating in the split must
- // have the same `split_id` value.
- SplitId []byte `protobuf:"bytes,2,opt,name=split_id,json=splitID,proto3" json:"split_id,omitempty"`
- // List of objects to be deleted.
- Members []*grpc.ObjectID `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"`
-}
-
-func (x *Tombstone) Reset() {
- *x = Tombstone{}
- if protoimpl.UnsafeEnabled {
- mi := &file_tombstone_grpc_types_proto_msgTypes[0]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Tombstone) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Tombstone) ProtoMessage() {}
-
-func (x *Tombstone) ProtoReflect() protoreflect.Message {
- mi := &file_tombstone_grpc_types_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 Tombstone.ProtoReflect.Descriptor instead.
-func (*Tombstone) Descriptor() ([]byte, []int) {
- return file_tombstone_grpc_types_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Tombstone) GetExpirationEpoch() uint64 {
- if x != nil {
- return x.ExpirationEpoch
- }
- return 0
-}
-
-func (x *Tombstone) GetSplitId() []byte {
- if x != nil {
- return x.SplitId
- }
- return nil
-}
-
-func (x *Tombstone) GetMembers() []*grpc.ObjectID {
- if x != nil {
- return x.Members
- }
- return nil
-}
-
-var File_tombstone_grpc_types_proto protoreflect.FileDescriptor
-
-var file_tombstone_grpc_types_proto_rawDesc = []byte{
- 0x0a, 0x1a, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x2f, 0x67, 0x72, 0x70, 0x63,
- 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x6e, 0x65,
- 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e,
- 0x65, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70,
- 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x6d,
- 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
- 0x52, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x70, 0x6f, 0x63,
- 0x68, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x07,
- 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
- 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f,
- 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73,
- 0x42, 0x6a, 0x5a, 0x48, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e,
- 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61,
- 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f,
- 0x2f, 0x76, 0x32, 0x2f, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x2f, 0x67, 0x72,
- 0x70, 0x63, 0x3b, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0xaa, 0x02, 0x1d, 0x4e,
- 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41,
- 0x50, 0x49, 0x2e, 0x54, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x62, 0x06, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
- file_tombstone_grpc_types_proto_rawDescOnce sync.Once
- file_tombstone_grpc_types_proto_rawDescData = file_tombstone_grpc_types_proto_rawDesc
-)
-
-func file_tombstone_grpc_types_proto_rawDescGZIP() []byte {
- file_tombstone_grpc_types_proto_rawDescOnce.Do(func() {
- file_tombstone_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_tombstone_grpc_types_proto_rawDescData)
- })
- return file_tombstone_grpc_types_proto_rawDescData
-}
-
-var file_tombstone_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_tombstone_grpc_types_proto_goTypes = []interface{}{
- (*Tombstone)(nil), // 0: neo.fs.v2.tombstone.Tombstone
- (*grpc.ObjectID)(nil), // 1: neo.fs.v2.refs.ObjectID
-}
-var file_tombstone_grpc_types_proto_depIdxs = []int32{
- 1, // 0: neo.fs.v2.tombstone.Tombstone.members:type_name -> neo.fs.v2.refs.ObjectID
- 1, // [1:1] is the sub-list for method output_type
- 1, // [1:1] is the sub-list for method input_type
- 1, // [1:1] is the sub-list for extension type_name
- 1, // [1:1] is the sub-list for extension extendee
- 0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_tombstone_grpc_types_proto_init() }
-func file_tombstone_grpc_types_proto_init() {
- if File_tombstone_grpc_types_proto != nil {
- return
- }
- if !protoimpl.UnsafeEnabled {
- file_tombstone_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Tombstone); 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_tombstone_grpc_types_proto_rawDesc,
- NumEnums: 0,
- NumMessages: 1,
- NumExtensions: 0,
- NumServices: 0,
- },
- GoTypes: file_tombstone_grpc_types_proto_goTypes,
- DependencyIndexes: file_tombstone_grpc_types_proto_depIdxs,
- MessageInfos: file_tombstone_grpc_types_proto_msgTypes,
- }.Build()
- File_tombstone_grpc_types_proto = out.File
- file_tombstone_grpc_types_proto_rawDesc = nil
- file_tombstone_grpc_types_proto_goTypes = nil
- file_tombstone_grpc_types_proto_depIdxs = nil
-}
diff --git a/tombstone/grpc/types_frostfs.pb.go b/tombstone/grpc/types_frostfs.pb.go
new file mode 100644
index 0000000..b0924c0
--- /dev/null
+++ b/tombstone/grpc/types_frostfs.pb.go
@@ -0,0 +1,229 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package tombstone
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+)
+
+type Tombstone struct {
+ ExpirationEpoch uint64 `json:"expirationEpoch"`
+ SplitId []byte `json:"splitID"`
+ Members []*grpc.ObjectID `json:"members"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Tombstone)(nil)
+ _ encoding.ProtoUnmarshaler = (*Tombstone)(nil)
+ _ json.Marshaler = (*Tombstone)(nil)
+ _ json.Unmarshaler = (*Tombstone)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Tombstone) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt64Size(1, x.ExpirationEpoch)
+ size += proto.BytesSize(2, x.SplitId)
+ for i := range x.Members {
+ size += proto.NestedStructureSize(3, x.Members[i])
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Tombstone) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Tombstone) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.ExpirationEpoch != 0 {
+ mm.AppendUint64(1, x.ExpirationEpoch)
+ }
+ if len(x.SplitId) != 0 {
+ mm.AppendBytes(2, x.SplitId)
+ }
+ for i := range x.Members {
+ if x.Members[i] != nil && x.Members[i].StableSize() != 0 {
+ x.Members[i].EmitProtobuf(mm.AppendMessage(3))
+ }
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Tombstone) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Tombstone")
+ }
+ switch fc.FieldNum {
+ case 1: // ExpirationEpoch
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "ExpirationEpoch")
+ }
+ x.ExpirationEpoch = data
+ case 2: // SplitId
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "SplitId")
+ }
+ x.SplitId = data
+ case 3: // Members
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "Members")
+ }
+ x.Members = append(x.Members, new(grpc.ObjectID))
+ ff := x.Members[len(x.Members)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ }
+ }
+ return nil
+}
+func (x *Tombstone) GetExpirationEpoch() uint64 {
+ if x != nil {
+ return x.ExpirationEpoch
+ }
+ return 0
+}
+func (x *Tombstone) SetExpirationEpoch(v uint64) {
+ x.ExpirationEpoch = v
+}
+func (x *Tombstone) GetSplitId() []byte {
+ if x != nil {
+ return x.SplitId
+ }
+ return nil
+}
+func (x *Tombstone) SetSplitId(v []byte) {
+ x.SplitId = v
+}
+func (x *Tombstone) GetMembers() []*grpc.ObjectID {
+ if x != nil {
+ return x.Members
+ }
+ return nil
+}
+func (x *Tombstone) SetMembers(v []*grpc.ObjectID) {
+ x.Members = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Tombstone) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Tombstone) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"expirationEpoch\":"
+ out.RawString(prefix[1:])
+ out.Uint64(x.ExpirationEpoch)
+ }
+ {
+ const prefix string = ",\"splitID\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.SplitId)
+ }
+ {
+ const prefix string = ",\"members\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Members {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Members[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Tombstone) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Tombstone) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "expirationEpoch":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.ExpirationEpoch = f
+ }
+ case "splitID":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.SplitId = f
+ }
+ case "members":
+ {
+ var f *grpc.ObjectID
+ var list []*grpc.ObjectID
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(grpc.ObjectID)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.Members = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/tombstone/grpc/types_frostfs_fuzz.go b/tombstone/grpc/types_frostfs_fuzz.go
new file mode 100644
index 0000000..57cfb58
--- /dev/null
+++ b/tombstone/grpc/types_frostfs_fuzz.go
@@ -0,0 +1,26 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package tombstone
+
+func DoFuzzProtoTombstone(data []byte) int {
+ msg := new(Tombstone)
+ if err := msg.UnmarshalProtobuf(data); err != nil {
+ return 0
+ }
+ _ = msg.MarshalProtobuf(nil)
+ return 1
+}
+func DoFuzzJSONTombstone(data []byte) int {
+ msg := new(Tombstone)
+ if err := msg.UnmarshalJSON(data); err != nil {
+ return 0
+ }
+ _, err := msg.MarshalJSON()
+ if err != nil {
+ panic(err)
+ }
+ return 1
+}
diff --git a/tombstone/grpc/types_frostfs_test.go b/tombstone/grpc/types_frostfs_test.go
new file mode 100644
index 0000000..8264824
--- /dev/null
+++ b/tombstone/grpc/types_frostfs_test.go
@@ -0,0 +1,21 @@
+//go:build gofuzz
+// +build gofuzz
+
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package tombstone
+
+import (
+ testing "testing"
+)
+
+func FuzzProtoTombstone(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzProtoTombstone(data)
+ })
+}
+func FuzzJSONTombstone(f *testing.F) {
+ f.Fuzz(func(t *testing.T, data []byte) {
+ DoFuzzJSONTombstone(data)
+ })
+}
diff --git a/util/pool/marshal.go b/util/pool/marshal.go
new file mode 100644
index 0000000..107df28
--- /dev/null
+++ b/util/pool/marshal.go
@@ -0,0 +1,7 @@
+package pool
+
+import (
+ "github.com/VictoriaMetrics/easyproto"
+)
+
+var MarshalerPool easyproto.MarshalerPool
diff --git a/util/proto/encoding/compat.go b/util/proto/encoding/compat.go
new file mode 100644
index 0000000..09d45e6
--- /dev/null
+++ b/util/proto/encoding/compat.go
@@ -0,0 +1,22 @@
+package encoding
+
+import (
+ _ "google.golang.org/grpc/encoding/proto" // Ensure default codec is registered before our one.
+ "google.golang.org/protobuf/proto"
+ "google.golang.org/protobuf/protoadapt"
+)
+
+// messageV2Of converts v to a proto.Message.
+// This is needed for this library to continue working in presence of external gRPC packages,
+// such as opentelemetry gRPC exporter.
+// Copied from https://github.com/grpc/grpc-go/blob/e524655becd8d4c7ba9e8687faef456e495e341e/encoding/proto/proto.go#L59.
+func messageV2Of(v any) proto.Message {
+ switch v := v.(type) {
+ case protoadapt.MessageV1:
+ return protoadapt.MessageV2Of(v)
+ case protoadapt.MessageV2:
+ return v
+ }
+
+ return nil
+}
diff --git a/util/proto/encoding/json.go b/util/proto/encoding/json.go
new file mode 100644
index 0000000..3456a40
--- /dev/null
+++ b/util/proto/encoding/json.go
@@ -0,0 +1,48 @@
+package encoding
+
+import (
+ "encoding/json"
+ "fmt"
+
+ "google.golang.org/grpc/encoding"
+ "google.golang.org/protobuf/encoding/protojson"
+)
+
+// JSONCodec is easyjson codec used for code generated by protogen.
+// It is binary-level compatible with the standard protojson format, thus uses the same name.
+type JSONCodec struct{}
+
+var _ encoding.Codec = JSONCodec{}
+
+func init() {
+ encoding.RegisterCodec(JSONCodec{})
+}
+
+// Name implements the encoding.Codec interface.
+func (JSONCodec) Name() string { return "json" }
+
+// Marshal implements the encoding.Codec interface.
+func (JSONCodec) Marshal(v any) ([]byte, error) {
+ switch v := v.(type) {
+ case json.Marshaler:
+ return json.Marshal(v)
+ default:
+ if v := messageV2Of(v); v != nil {
+ return protojson.Marshal(v)
+ }
+ return nil, fmt.Errorf("failed to marshal, message is %T, want proto.Message", v)
+ }
+}
+
+// Unmarshal implements the encoding.Codec interface.
+func (JSONCodec) Unmarshal(data []byte, v any) error {
+ switch v := v.(type) {
+ case json.Unmarshaler:
+ return json.Unmarshal(data, v)
+ default:
+ if v := messageV2Of(v); v != nil {
+ return protojson.Unmarshal(data, v)
+ }
+ return fmt.Errorf("failed to unmarshal, message is %T, want proto.Message", v)
+ }
+}
diff --git a/util/proto/encoding/proto.go b/util/proto/encoding/proto.go
new file mode 100644
index 0000000..5f3c556
--- /dev/null
+++ b/util/proto/encoding/proto.go
@@ -0,0 +1,57 @@
+package encoding
+
+import (
+ "fmt"
+
+ "google.golang.org/grpc/encoding"
+ "google.golang.org/protobuf/proto"
+)
+
+// ProtoCodec is easyproto codec used for code generated by protogen.
+// It is binary-level compatible with the standard proto codec, thus uses the same name.
+type ProtoCodec struct{}
+
+// ProtoMarshaler is an interface accepted by ProtoCodec.Marshal.
+type ProtoMarshaler interface {
+ MarshalProtobuf([]byte) []byte
+}
+
+// ProtoUnmarshaler is an interface accepted by ProtoCodec.Unmarshal.
+type ProtoUnmarshaler interface {
+ UnmarshalProtobuf([]byte) error
+}
+
+var _ encoding.Codec = ProtoCodec{}
+
+func init() {
+ encoding.RegisterCodec(ProtoCodec{})
+}
+
+// Name implements the encoding.Codec interface.
+func (ProtoCodec) Name() string { return "proto" }
+
+// Marshal implements the encoding.Codec interface.
+func (ProtoCodec) Marshal(v any) ([]byte, error) {
+ switch v := v.(type) {
+ case ProtoMarshaler:
+ return v.MarshalProtobuf(nil), nil
+ default:
+ if v := messageV2Of(v); v != nil {
+ return proto.Marshal(v)
+ }
+ return nil, fmt.Errorf("failed to marshal, message is %T, want proto.Message", v)
+ }
+}
+
+// Unmarshal implements the encoding.Codec interface.
+func (ProtoCodec) Unmarshal(data []byte, v any) error {
+ switch v := v.(type) {
+ case ProtoUnmarshaler:
+ return v.UnmarshalProtobuf(data)
+ default:
+ if v := messageV2Of(v); v != nil {
+ return proto.Unmarshal(data, v)
+ }
+ return fmt.Errorf("failed to unmarshal, message is %T, want proto.Message", v)
+ }
+}
diff --git a/util/proto/marshal.go b/util/proto/marshal.go
index 42c6a91..5016255 100644
--- a/util/proto/marshal.go
+++ b/util/proto/marshal.go
@@ -17,6 +17,10 @@ import (
type (
stableMarshaler interface {
StableMarshal([]byte) []byte
+ stableSizer
+ }
+
+ stableSizer interface {
StableSize() int
}
@@ -277,6 +281,11 @@ type ptrStableMarshaler[T any] interface {
~*T
}
+type ptrStableSizer[T any] interface {
+ stableSizer
+ ~*T
+}
+
func NestedStructureMarshal[T any, M ptrStableMarshaler[T]](field int64, buf []byte, v M) int {
if v == nil {
return 0
@@ -320,7 +329,7 @@ func NestedStructureSetMarshalData[T any, M setMarshalData[T]](field int64, pare
return offset + n
}
-func NestedStructureSize[T any, M ptrStableMarshaler[T]](field int64, v M) (size int) {
+func NestedStructureSize[T any, M ptrStableSizer[T]](field int64, v M) (size int) {
if v == nil {
return 0
}
@@ -328,7 +337,7 @@ func NestedStructureSize[T any, M ptrStableMarshaler[T]](field int64, v M) (size
return NestedStructureSizeUnchecked(field, v)
}
-func NestedStructureSizeUnchecked[T stableMarshaler](field int64, v T) int {
+func NestedStructureSizeUnchecked[T stableSizer](field int64, v T) int {
n := v.StableSize()
return protowire.SizeGroup(protowire.Number(field), protowire.SizeBytes(n))
}
diff --git a/util/proto/marshal_test.go b/util/proto/marshal_test.go
index 56d9594..e565b7c 100644
--- a/util/proto/marshal_test.go
+++ b/util/proto/marshal_test.go
@@ -6,6 +6,7 @@ import (
"testing"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/test"
+ generated "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/test/custom"
"github.com/stretchr/testify/require"
goproto "google.golang.org/protobuf/proto"
)
@@ -24,39 +25,43 @@ func nonZero[T protoInt]() T {
func TestStableMarshalSingle(t *testing.T) {
t.Run("empty", func(t *testing.T) {
- input := &test.Primitives{}
+ input := &generated.Primitives{}
require.Zero(t, input.StableSize())
- r := input.StableMarshal(nil)
+ r := input.MarshalProtobuf(nil)
require.Empty(t, r)
})
marshalCases := []struct {
name string
- input *test.Primitives
+ input *generated.Primitives
}{
- {name: "bytes", input: &test.Primitives{FieldA: []byte{1, 2, 3}}},
- {name: "string", input: &test.Primitives{FieldB: "123"}},
- {name: "bool", input: &test.Primitives{FieldC: true}},
- {name: "int32", input: &test.Primitives{FieldD: nonZero[int32]()}},
- {name: "uint32", input: &test.Primitives{FieldE: nonZero[uint32]()}},
- {name: "int64", input: &test.Primitives{FieldF: nonZero[int64]()}},
- {name: "uint64", input: &test.Primitives{FieldG: nonZero[uint64]()}},
- {name: "uint64", input: &test.Primitives{FieldI: nonZero[uint64]()}},
- {name: "float64", input: &test.Primitives{FieldJ: math.Float64frombits(12345677890)}},
- {name: "fixed32", input: &test.Primitives{FieldK: nonZero[uint32]()}},
- {name: "enum, positive", input: &test.Primitives{FieldH: test.Primitives_POSITIVE}},
- {name: "enum, negative", input: &test.Primitives{FieldH: test.Primitives_NEGATIVE}},
+ {name: "bytes", input: &generated.Primitives{FieldA: []byte{1, 2, 3}}},
+ {name: "string", input: &generated.Primitives{FieldB: "123"}},
+ {name: "bool", input: &generated.Primitives{FieldC: true}},
+ {name: "int32", input: &generated.Primitives{FieldD: -10}},
+ {name: "uint32", input: &generated.Primitives{FieldE: nonZero[uint32]()}},
+ {name: "int64", input: &generated.Primitives{FieldF: nonZero[int64]()}},
+ {name: "uint64", input: &generated.Primitives{FieldG: nonZero[uint64]()}},
+ {name: "uint64", input: &generated.Primitives{FieldI: nonZero[uint64]()}},
+ {name: "float64", input: &generated.Primitives{FieldJ: math.Float64frombits(12345677890)}},
+ {name: "fixed32", input: &generated.Primitives{FieldK: nonZero[uint32]()}},
+ {name: "enum, positive", input: &generated.Primitives{FieldH: generated.Primitives_POSITIVE}},
+ {name: "enum, negative", input: &generated.Primitives{FieldH: generated.Primitives_NEGATIVE}},
}
for _, tc := range marshalCases {
t.Run(tc.name, func(t *testing.T) {
- r := tc.input.StableMarshal(nil)
+ r := tc.input.MarshalProtobuf(nil)
require.Equal(t, len(r), tc.input.StableSize())
require.NotEmpty(t, r)
var actual test.Primitives
require.NoError(t, goproto.Unmarshal(r, &actual))
+ var actualFrostfs generated.Primitives
+ require.NoError(t, actualFrostfs.UnmarshalProtobuf(r))
+ require.Equal(t, tc.input, &actualFrostfs)
+
// Compare each field directly, because proto-generated code has private fields.
require.Equal(t, tc.input.FieldA, actual.FieldA)
require.Equal(t, tc.input.FieldB, actual.FieldB)
@@ -68,7 +73,7 @@ func TestStableMarshalSingle(t *testing.T) {
require.Equal(t, tc.input.FieldI, actual.FieldI)
require.Equal(t, tc.input.FieldJ, actual.FieldJ)
require.Equal(t, tc.input.FieldK, actual.FieldK)
- require.Equal(t, tc.input.FieldH, actual.FieldH)
+ require.EqualValues(t, tc.input.FieldH, actual.FieldH)
})
}
}
@@ -91,51 +96,53 @@ func TestStableMarshalRep(t *testing.T) {
t.Run("empty", func(t *testing.T) {
marshalCases := []struct {
name string
- input *test.RepPrimitives
+ input *generated.RepPrimitives
}{
- {name: "default", input: &test.RepPrimitives{}},
- {name: "bytes", input: &test.RepPrimitives{FieldA: [][]byte{}}},
- {name: "string", input: &test.RepPrimitives{FieldB: []string{}}},
- {name: "int32", input: &test.RepPrimitives{FieldC: []int32{}}},
- {name: "uint32", input: &test.RepPrimitives{FieldD: []uint32{}}},
- {name: "int64", input: &test.RepPrimitives{FieldE: []int64{}}},
- {name: "uint64", input: &test.RepPrimitives{FieldF: []uint64{}}},
- {name: "uint64", input: &test.RepPrimitives{FieldFu: []uint64{}}},
+ {name: "default", input: &generated.RepPrimitives{}},
+ {name: "bytes", input: &generated.RepPrimitives{FieldA: [][]byte{}}},
+ {name: "string", input: &generated.RepPrimitives{FieldB: []string{}}},
+ {name: "int32", input: &generated.RepPrimitives{FieldC: []int32{}}},
+ {name: "uint32", input: &generated.RepPrimitives{FieldD: []uint32{}}},
+ {name: "int64", input: &generated.RepPrimitives{FieldE: []int64{}}},
+ {name: "uint64", input: &generated.RepPrimitives{FieldF: []uint64{}}},
+ {name: "uint64", input: &generated.RepPrimitives{FieldFu: []uint64{}}},
}
for _, tc := range marshalCases {
- require.Zero(t, tc.input.StableSize())
+ t.Run(tc.name, func(t *testing.T) {
+ require.Zero(t, tc.input.StableSize())
- r := tc.input.StableMarshal(nil)
- require.Empty(t, r)
+ r := tc.input.MarshalProtobuf(nil)
+ require.Empty(t, r)
+ })
}
})
marshalCases := []struct {
name string
- input *test.RepPrimitives
+ input *generated.RepPrimitives
}{
- {name: "bytes", input: &test.RepPrimitives{FieldA: [][]byte{{1, 2, 3}}}},
- {name: "string", input: &test.RepPrimitives{FieldB: []string{"123"}}},
- {name: "int32", input: &test.RepPrimitives{FieldC: randIntSlice[int32](1, true)}},
- {name: "int32", input: &test.RepPrimitives{FieldC: randIntSlice[int32](2, true)}},
- {name: "int32", input: &test.RepPrimitives{FieldC: randIntSlice[int32](2, false)}},
- {name: "uint32", input: &test.RepPrimitives{FieldD: randIntSlice[uint32](1, true)}},
- {name: "uint32", input: &test.RepPrimitives{FieldD: randIntSlice[uint32](2, true)}},
- {name: "uint32", input: &test.RepPrimitives{FieldD: randIntSlice[uint32](2, false)}},
- {name: "int64", input: &test.RepPrimitives{FieldE: randIntSlice[int64](1, true)}},
- {name: "int64", input: &test.RepPrimitives{FieldE: randIntSlice[int64](2, true)}},
- {name: "int64", input: &test.RepPrimitives{FieldE: randIntSlice[int64](2, false)}},
- {name: "uint64", input: &test.RepPrimitives{FieldF: randIntSlice[uint64](1, true)}},
- {name: "uint64", input: &test.RepPrimitives{FieldF: randIntSlice[uint64](2, true)}},
- {name: "uint64", input: &test.RepPrimitives{FieldF: randIntSlice[uint64](2, false)}},
- {name: "uint64", input: &test.RepPrimitives{FieldFu: randIntSlice[uint64](1, true)}},
- {name: "uint64", input: &test.RepPrimitives{FieldFu: randIntSlice[uint64](2, true)}},
- {name: "uint64", input: &test.RepPrimitives{FieldFu: randIntSlice[uint64](2, false)}},
+ {name: "bytes", input: &generated.RepPrimitives{FieldA: [][]byte{{1, 2, 3}}}},
+ {name: "string", input: &generated.RepPrimitives{FieldB: []string{"123"}}},
+ {name: "int32", input: &generated.RepPrimitives{FieldC: randIntSlice[int32](1, true)}},
+ {name: "int32", input: &generated.RepPrimitives{FieldC: randIntSlice[int32](2, true)}},
+ {name: "int32", input: &generated.RepPrimitives{FieldC: randIntSlice[int32](2, false)}},
+ {name: "uint32", input: &generated.RepPrimitives{FieldD: randIntSlice[uint32](1, true)}},
+ {name: "uint32", input: &generated.RepPrimitives{FieldD: randIntSlice[uint32](2, true)}},
+ {name: "uint32", input: &generated.RepPrimitives{FieldD: randIntSlice[uint32](2, false)}},
+ {name: "int64", input: &generated.RepPrimitives{FieldE: randIntSlice[int64](1, true)}},
+ {name: "int64", input: &generated.RepPrimitives{FieldE: randIntSlice[int64](2, true)}},
+ {name: "int64", input: &generated.RepPrimitives{FieldE: randIntSlice[int64](2, false)}},
+ {name: "uint64", input: &generated.RepPrimitives{FieldF: randIntSlice[uint64](1, true)}},
+ {name: "uint64", input: &generated.RepPrimitives{FieldF: randIntSlice[uint64](2, true)}},
+ {name: "uint64", input: &generated.RepPrimitives{FieldF: randIntSlice[uint64](2, false)}},
+ {name: "uint64", input: &generated.RepPrimitives{FieldFu: randIntSlice[uint64](1, true)}},
+ {name: "uint64", input: &generated.RepPrimitives{FieldFu: randIntSlice[uint64](2, true)}},
+ {name: "uint64", input: &generated.RepPrimitives{FieldFu: randIntSlice[uint64](2, false)}},
}
for _, tc := range marshalCases {
t.Run(tc.name, func(t *testing.T) {
- r := tc.input.StableMarshal(nil)
+ r := tc.input.MarshalProtobuf(nil)
require.Equal(t, len(r), tc.input.StableSize())
require.NotEmpty(t, r)
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
new file mode 100644
index 0000000..28a3044
--- /dev/null
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -0,0 +1,926 @@
+// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
+
+package test
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
+ proto "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
+ encoding "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
+ easyproto "github.com/VictoriaMetrics/easyproto"
+ jlexer "github.com/mailru/easyjson/jlexer"
+ jwriter "github.com/mailru/easyjson/jwriter"
+ protowire "google.golang.org/protobuf/encoding/protowire"
+ strconv "strconv"
+)
+
+type Primitives_SomeEnum int32
+
+const (
+ Primitives_UNKNOWN = 0
+ Primitives_POSITIVE = 1
+ Primitives_NEGATIVE = -1
+)
+
+var (
+ Primitives_SomeEnum_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "POSITIVE",
+ -1: "NEGATIVE",
+ }
+ Primitives_SomeEnum_value = map[string]int32{
+ "UNKNOWN": 0,
+ "POSITIVE": 1,
+ "NEGATIVE": -1,
+ }
+)
+
+func (x Primitives_SomeEnum) String() string {
+ if v, ok := Primitives_SomeEnum_name[int32(x)]; ok {
+ return v
+ }
+ return strconv.FormatInt(int64(x), 10)
+}
+func (x *Primitives_SomeEnum) FromString(s string) bool {
+ if v, ok := Primitives_SomeEnum_value[s]; ok {
+ *x = Primitives_SomeEnum(v)
+ return true
+ }
+ return false
+}
+
+type Primitives struct {
+ FieldA []byte `json:"fieldA"`
+ FieldB string `json:"fieldB"`
+ FieldC bool `json:"fieldC"`
+ FieldD int32 `json:"fieldD"`
+ FieldE uint32 `json:"fieldE"`
+ FieldF int64 `json:"fieldF"`
+ FieldG uint64 `json:"fieldG"`
+ FieldI uint64 `json:"fieldI"`
+ FieldJ float64 `json:"fieldJ"`
+ FieldK uint32 `json:"fieldK"`
+ FieldH Primitives_SomeEnum `json:"fieldH"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Primitives)(nil)
+ _ encoding.ProtoUnmarshaler = (*Primitives)(nil)
+ _ json.Marshaler = (*Primitives)(nil)
+ _ json.Unmarshaler = (*Primitives)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Primitives) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.BytesSize(1, x.FieldA)
+ size += proto.StringSize(2, x.FieldB)
+ size += proto.BoolSize(200, x.FieldC)
+ size += proto.Int32Size(201, x.FieldD)
+ size += proto.UInt32Size(202, x.FieldE)
+ size += proto.Int64Size(203, x.FieldF)
+ size += proto.UInt64Size(204, x.FieldG)
+ size += proto.Fixed64Size(205, x.FieldI)
+ size += proto.Float64Size(206, x.FieldJ)
+ size += proto.Fixed32Size(207, x.FieldK)
+ size += proto.EnumSize(300, int32(x.FieldH))
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Primitives) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Primitives) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if len(x.FieldA) != 0 {
+ mm.AppendBytes(1, x.FieldA)
+ }
+ if len(x.FieldB) != 0 {
+ mm.AppendString(2, x.FieldB)
+ }
+ if x.FieldC {
+ mm.AppendBool(200, x.FieldC)
+ }
+ if x.FieldD != 0 {
+ mm.AppendInt32(201, x.FieldD)
+ }
+ if x.FieldE != 0 {
+ mm.AppendUint32(202, x.FieldE)
+ }
+ if x.FieldF != 0 {
+ mm.AppendInt64(203, x.FieldF)
+ }
+ if x.FieldG != 0 {
+ mm.AppendUint64(204, x.FieldG)
+ }
+ if x.FieldI != 0 {
+ mm.AppendFixed64(205, x.FieldI)
+ }
+ if x.FieldJ != 0 {
+ mm.AppendDouble(206, x.FieldJ)
+ }
+ if x.FieldK != 0 {
+ mm.AppendFixed32(207, x.FieldK)
+ }
+ if int32(x.FieldH) != 0 {
+ mm.AppendInt32(300, int32(x.FieldH))
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Primitives) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Primitives")
+ }
+ switch fc.FieldNum {
+ case 1: // FieldA
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldA")
+ }
+ x.FieldA = data
+ case 2: // FieldB
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldB")
+ }
+ x.FieldB = data
+ case 200: // FieldC
+ data, ok := fc.Bool()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldC")
+ }
+ x.FieldC = data
+ case 201: // FieldD
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldD")
+ }
+ x.FieldD = data
+ case 202: // FieldE
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldE")
+ }
+ x.FieldE = data
+ case 203: // FieldF
+ data, ok := fc.Int64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldF")
+ }
+ x.FieldF = data
+ case 204: // FieldG
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldG")
+ }
+ x.FieldG = data
+ case 205: // FieldI
+ data, ok := fc.Fixed64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldI")
+ }
+ x.FieldI = data
+ case 206: // FieldJ
+ data, ok := fc.Double()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldJ")
+ }
+ x.FieldJ = data
+ case 207: // FieldK
+ data, ok := fc.Fixed32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldK")
+ }
+ x.FieldK = data
+ case 300: // FieldH
+ data, ok := fc.Int32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldH")
+ }
+ x.FieldH = Primitives_SomeEnum(data)
+ }
+ }
+ return nil
+}
+func (x *Primitives) GetFieldA() []byte {
+ if x != nil {
+ return x.FieldA
+ }
+ return nil
+}
+func (x *Primitives) SetFieldA(v []byte) {
+ x.FieldA = v
+}
+func (x *Primitives) GetFieldB() string {
+ if x != nil {
+ return x.FieldB
+ }
+ return ""
+}
+func (x *Primitives) SetFieldB(v string) {
+ x.FieldB = v
+}
+func (x *Primitives) GetFieldC() bool {
+ if x != nil {
+ return x.FieldC
+ }
+ return false
+}
+func (x *Primitives) SetFieldC(v bool) {
+ x.FieldC = v
+}
+func (x *Primitives) GetFieldD() int32 {
+ if x != nil {
+ return x.FieldD
+ }
+ return 0
+}
+func (x *Primitives) SetFieldD(v int32) {
+ x.FieldD = v
+}
+func (x *Primitives) GetFieldE() uint32 {
+ if x != nil {
+ return x.FieldE
+ }
+ return 0
+}
+func (x *Primitives) SetFieldE(v uint32) {
+ x.FieldE = v
+}
+func (x *Primitives) GetFieldF() int64 {
+ if x != nil {
+ return x.FieldF
+ }
+ return 0
+}
+func (x *Primitives) SetFieldF(v int64) {
+ x.FieldF = v
+}
+func (x *Primitives) GetFieldG() uint64 {
+ if x != nil {
+ return x.FieldG
+ }
+ return 0
+}
+func (x *Primitives) SetFieldG(v uint64) {
+ x.FieldG = v
+}
+func (x *Primitives) GetFieldI() uint64 {
+ if x != nil {
+ return x.FieldI
+ }
+ return 0
+}
+func (x *Primitives) SetFieldI(v uint64) {
+ x.FieldI = v
+}
+func (x *Primitives) GetFieldJ() float64 {
+ if x != nil {
+ return x.FieldJ
+ }
+ return 0
+}
+func (x *Primitives) SetFieldJ(v float64) {
+ x.FieldJ = v
+}
+func (x *Primitives) GetFieldK() uint32 {
+ if x != nil {
+ return x.FieldK
+ }
+ return 0
+}
+func (x *Primitives) SetFieldK(v uint32) {
+ x.FieldK = v
+}
+func (x *Primitives) GetFieldH() Primitives_SomeEnum {
+ if x != nil {
+ return x.FieldH
+ }
+ return 0
+}
+func (x *Primitives) SetFieldH(v Primitives_SomeEnum) {
+ x.FieldH = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Primitives) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Primitives) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"fieldA\":"
+ out.RawString(prefix[1:])
+ out.Base64Bytes(x.FieldA)
+ }
+ {
+ const prefix string = ",\"fieldB\":"
+ out.RawString(prefix)
+ out.String(x.FieldB)
+ }
+ {
+ const prefix string = ",\"fieldC\":"
+ out.RawString(prefix)
+ out.Bool(x.FieldC)
+ }
+ {
+ const prefix string = ",\"fieldD\":"
+ out.RawString(prefix)
+ out.Int32(x.FieldD)
+ }
+ {
+ const prefix string = ",\"fieldE\":"
+ out.RawString(prefix)
+ out.Uint32(x.FieldE)
+ }
+ {
+ const prefix string = ",\"fieldF\":"
+ out.RawString(prefix)
+ out.Int64(x.FieldF)
+ }
+ {
+ const prefix string = ",\"fieldG\":"
+ out.RawString(prefix)
+ out.Uint64(x.FieldG)
+ }
+ {
+ const prefix string = ",\"fieldI\":"
+ out.RawString(prefix)
+ out.Uint64(x.FieldI)
+ }
+ {
+ const prefix string = ",\"fieldJ\":"
+ out.RawString(prefix)
+ out.Float64(x.FieldJ)
+ }
+ {
+ const prefix string = ",\"fieldK\":"
+ out.RawString(prefix)
+ out.Uint32(x.FieldK)
+ }
+ {
+ const prefix string = ",\"fieldH\":"
+ out.RawString(prefix)
+ out.Int32(int32(x.FieldH))
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Primitives) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Primitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "fieldA":
+ {
+ var f []byte
+ f = in.Bytes()
+ x.FieldA = f
+ }
+ case "fieldB":
+ {
+ var f string
+ f = in.String()
+ x.FieldB = f
+ }
+ case "fieldC":
+ {
+ var f bool
+ f = in.Bool()
+ x.FieldC = f
+ }
+ case "fieldD":
+ {
+ var f int32
+ f = in.Int32()
+ x.FieldD = f
+ }
+ case "fieldE":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.FieldE = f
+ }
+ case "fieldF":
+ {
+ var f int64
+ f = in.Int64()
+ x.FieldF = f
+ }
+ case "fieldG":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.FieldG = f
+ }
+ case "fieldI":
+ {
+ var f uint64
+ f = in.Uint64()
+ x.FieldI = f
+ }
+ case "fieldJ":
+ {
+ var f float64
+ f = in.Float64()
+ x.FieldJ = f
+ }
+ case "fieldK":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.FieldK = f
+ }
+ case "fieldH":
+ {
+ var f Primitives_SomeEnum
+ var parsedValue Primitives_SomeEnum
+ switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := Primitives_SomeEnum_value[v]; ok {
+ parsedValue = Primitives_SomeEnum(vv)
+ break
+ }
+ vv, err := strconv.ParseInt(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = Primitives_SomeEnum(vv)
+ case float64:
+ parsedValue = Primitives_SomeEnum(v)
+ }
+ f = parsedValue
+ x.FieldH = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
+type RepPrimitives struct {
+ FieldA [][]byte `json:"fieldA"`
+ FieldB []string `json:"fieldB"`
+ FieldC []int32 `json:"fieldC"`
+ FieldD []uint32 `json:"fieldD"`
+ FieldE []int64 `json:"fieldE"`
+ FieldF []uint64 `json:"fieldF"`
+ FieldFu []uint64 `json:"fieldFu"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*RepPrimitives)(nil)
+ _ encoding.ProtoUnmarshaler = (*RepPrimitives)(nil)
+ _ json.Marshaler = (*RepPrimitives)(nil)
+ _ json.Unmarshaler = (*RepPrimitives)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *RepPrimitives) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ var n int
+ size += proto.RepeatedBytesSize(1, x.FieldA)
+ size += proto.RepeatedStringSize(2, x.FieldB)
+ n, _ = proto.RepeatedInt32Size(3, x.FieldC)
+ size += n
+ n, _ = proto.RepeatedUInt32Size(4, x.FieldD)
+ size += n
+ n, _ = proto.RepeatedInt64Size(5, x.FieldE)
+ size += n
+ n, _ = proto.RepeatedUInt64Size(6, x.FieldF)
+ size += n
+ for i := range x.FieldFu {
+ size += protowire.SizeGroup(protowire.Number(7), protowire.SizeVarint(x.FieldFu[i]))
+ }
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *RepPrimitives) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *RepPrimitives) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ for j := range x.FieldA {
+ mm.AppendBytes(1, x.FieldA[j])
+ }
+ for j := range x.FieldB {
+ mm.AppendString(2, x.FieldB[j])
+ }
+ if len(x.FieldC) != 0 {
+ mm.AppendInt32s(3, x.FieldC)
+ }
+ if len(x.FieldD) != 0 {
+ mm.AppendUint32s(4, x.FieldD)
+ }
+ if len(x.FieldE) != 0 {
+ mm.AppendInt64s(5, x.FieldE)
+ }
+ if len(x.FieldF) != 0 {
+ mm.AppendUint64s(6, x.FieldF)
+ }
+ for j := range x.FieldFu {
+ mm.AppendUint64(7, x.FieldFu[j])
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *RepPrimitives) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "RepPrimitives")
+ }
+ switch fc.FieldNum {
+ case 1: // FieldA
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldA")
+ }
+ x.FieldA = append(x.FieldA, data)
+ case 2: // FieldB
+ data, ok := fc.String()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldB")
+ }
+ x.FieldB = append(x.FieldB, data)
+ case 3: // FieldC
+ data, ok := fc.UnpackInt32s(nil)
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldC")
+ }
+ x.FieldC = data
+ case 4: // FieldD
+ data, ok := fc.UnpackUint32s(nil)
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldD")
+ }
+ x.FieldD = data
+ case 5: // FieldE
+ data, ok := fc.UnpackInt64s(nil)
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldE")
+ }
+ x.FieldE = data
+ case 6: // FieldF
+ data, ok := fc.UnpackUint64s(nil)
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldF")
+ }
+ x.FieldF = data
+ case 7: // FieldFu
+ data, ok := fc.Uint64()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldFu")
+ }
+ x.FieldFu = append(x.FieldFu, data)
+ }
+ }
+ return nil
+}
+func (x *RepPrimitives) GetFieldA() [][]byte {
+ if x != nil {
+ return x.FieldA
+ }
+ return nil
+}
+func (x *RepPrimitives) SetFieldA(v [][]byte) {
+ x.FieldA = v
+}
+func (x *RepPrimitives) GetFieldB() []string {
+ if x != nil {
+ return x.FieldB
+ }
+ return nil
+}
+func (x *RepPrimitives) SetFieldB(v []string) {
+ x.FieldB = v
+}
+func (x *RepPrimitives) GetFieldC() []int32 {
+ if x != nil {
+ return x.FieldC
+ }
+ return nil
+}
+func (x *RepPrimitives) SetFieldC(v []int32) {
+ x.FieldC = v
+}
+func (x *RepPrimitives) GetFieldD() []uint32 {
+ if x != nil {
+ return x.FieldD
+ }
+ return nil
+}
+func (x *RepPrimitives) SetFieldD(v []uint32) {
+ x.FieldD = v
+}
+func (x *RepPrimitives) GetFieldE() []int64 {
+ if x != nil {
+ return x.FieldE
+ }
+ return nil
+}
+func (x *RepPrimitives) SetFieldE(v []int64) {
+ x.FieldE = v
+}
+func (x *RepPrimitives) GetFieldF() []uint64 {
+ if x != nil {
+ return x.FieldF
+ }
+ return nil
+}
+func (x *RepPrimitives) SetFieldF(v []uint64) {
+ x.FieldF = v
+}
+func (x *RepPrimitives) GetFieldFu() []uint64 {
+ if x != nil {
+ return x.FieldFu
+ }
+ return nil
+}
+func (x *RepPrimitives) SetFieldFu(v []uint64) {
+ x.FieldFu = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *RepPrimitives) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *RepPrimitives) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"fieldA\":"
+ out.RawString(prefix[1:])
+ out.RawByte('[')
+ for i := range x.FieldA {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Base64Bytes(x.FieldA[i])
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"fieldB\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldB {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.String(x.FieldB[i])
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"fieldC\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldC {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Int32(x.FieldC[i])
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"fieldD\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldD {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint32(x.FieldD[i])
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"fieldE\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldE {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Int64(x.FieldE[i])
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"fieldF\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldF {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint64(x.FieldF[i])
+ }
+ out.RawByte(']')
+ }
+ {
+ const prefix string = ",\"fieldFu\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldFu {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint64(x.FieldFu[i])
+ }
+ out.RawByte(']')
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *RepPrimitives) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *RepPrimitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "fieldA":
+ {
+ var f []byte
+ var list [][]byte
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Bytes()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.FieldA = list
+ in.Delim(']')
+ }
+ case "fieldB":
+ {
+ var f string
+ var list []string
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.String()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.FieldB = list
+ in.Delim(']')
+ }
+ case "fieldC":
+ {
+ var f int32
+ var list []int32
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Int32()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.FieldC = list
+ in.Delim(']')
+ }
+ case "fieldD":
+ {
+ var f uint32
+ var list []uint32
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Uint32()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.FieldD = list
+ in.Delim(']')
+ }
+ case "fieldE":
+ {
+ var f int64
+ var list []int64
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Int64()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.FieldE = list
+ in.Delim(']')
+ }
+ case "fieldF":
+ {
+ var f uint64
+ var list []uint64
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Uint64()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.FieldF = list
+ in.Delim(']')
+ }
+ case "fieldFu":
+ {
+ var f uint64
+ var list []uint64
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = in.Uint64()
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.FieldFu = list
+ in.Delim(']')
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
diff --git a/util/proto/test/test_frostfs.pb.go b/util/proto/test/test_frostfs.pb.go
deleted file mode 100644
index 47c6d60..0000000
--- a/util/proto/test/test_frostfs.pb.go
+++ /dev/null
@@ -1,117 +0,0 @@
-// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.
-
-package test
-
-import (
- binary "encoding/binary"
- protowire "google.golang.org/protobuf/encoding/protowire"
-)
-
-import "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
-
-// StableSize returns the size of x in protobuf format.
-//
-// Structures with the same field values have the same binary size.
-func (x *Primitives) StableSize() (size int) {
- if x == nil {
- return 0
- }
- size += proto.BytesSize(1, x.FieldA)
- size += proto.StringSize(2, x.FieldB)
- size += proto.BoolSize(200, x.FieldC)
- size += proto.Int32Size(201, x.FieldD)
- size += proto.UInt32Size(202, x.FieldE)
- size += proto.Int64Size(203, x.FieldF)
- size += proto.UInt64Size(204, x.FieldG)
- size += proto.Fixed64Size(205, x.FieldI)
- size += proto.Float64Size(206, x.FieldJ)
- size += proto.Fixed32Size(207, x.FieldK)
- size += proto.EnumSize(300, int32(x.FieldH))
- return size
-}
-
-// StableMarshal marshals x in protobuf binary format with stable field order.
-//
-// If buffer length is less than x.StableSize(), new buffer is allocated.
-//
-// Returns any error encountered which did not allow writing the data completely.
-// Otherwise, returns the buffer in which the data is written.
-//
-// Structures with the same field values have the same binary format.
-func (x *Primitives) StableMarshal(buf []byte) []byte {
- if x == nil {
- return []byte{}
- }
- if buf == nil {
- buf = make([]byte, x.StableSize())
- }
- var offset int
- offset += proto.BytesMarshal(1, buf[offset:], x.FieldA)
- offset += proto.StringMarshal(2, buf[offset:], x.FieldB)
- offset += proto.BoolMarshal(200, buf[offset:], x.FieldC)
- offset += proto.Int32Marshal(201, buf[offset:], x.FieldD)
- offset += proto.UInt32Marshal(202, buf[offset:], x.FieldE)
- offset += proto.Int64Marshal(203, buf[offset:], x.FieldF)
- offset += proto.UInt64Marshal(204, buf[offset:], x.FieldG)
- offset += proto.Fixed64Marshal(205, buf[offset:], x.FieldI)
- offset += proto.Float64Marshal(206, buf[offset:], x.FieldJ)
- offset += proto.Fixed32Marshal(207, buf[offset:], x.FieldK)
- offset += proto.EnumMarshal(300, buf[offset:], int32(x.FieldH))
- return buf
-}
-
-// StableSize returns the size of x in protobuf format.
-//
-// Structures with the same field values have the same binary size.
-func (x *RepPrimitives) StableSize() (size int) {
- if x == nil {
- return 0
- }
- var n int
- size += proto.RepeatedBytesSize(1, x.FieldA)
- size += proto.RepeatedStringSize(2, x.FieldB)
- n, _ = proto.RepeatedInt32Size(3, x.FieldC)
- size += n
- n, _ = proto.RepeatedUInt32Size(4, x.FieldD)
- size += n
- n, _ = proto.RepeatedInt64Size(5, x.FieldE)
- size += n
- n, _ = proto.RepeatedUInt64Size(6, x.FieldF)
- size += n
- for i := range x.FieldFu {
- size += protowire.SizeGroup(protowire.Number(7), protowire.SizeVarint(x.FieldFu[i]))
- }
- return size
-}
-
-// StableMarshal marshals x in protobuf binary format with stable field order.
-//
-// If buffer length is less than x.StableSize(), new buffer is allocated.
-//
-// Returns any error encountered which did not allow writing the data completely.
-// Otherwise, returns the buffer in which the data is written.
-//
-// Structures with the same field values have the same binary format.
-func (x *RepPrimitives) StableMarshal(buf []byte) []byte {
- if x == nil {
- return []byte{}
- }
- if buf == nil {
- buf = make([]byte, x.StableSize())
- }
- var offset int
- offset += proto.RepeatedBytesMarshal(1, buf[offset:], x.FieldA)
- offset += proto.RepeatedStringMarshal(2, buf[offset:], x.FieldB)
- offset += proto.RepeatedInt32Marshal(3, buf[offset:], x.FieldC)
- offset += proto.RepeatedUInt32Marshal(4, buf[offset:], x.FieldD)
- offset += proto.RepeatedInt64Marshal(5, buf[offset:], x.FieldE)
- offset += proto.RepeatedUInt64Marshal(6, buf[offset:], x.FieldF)
- for i := range x.FieldFu {
- {
- prefix := protowire.EncodeTag(protowire.Number(7), protowire.VarintType)
- offset += binary.PutUvarint(buf[offset:], uint64(prefix))
- offset += binary.PutUvarint(buf[offset:], x.FieldFu[i])
- }
- }
- return buf
-}
diff --git a/util/protogen/internalgengo/file.go b/util/protogen/internalgengo/file.go
new file mode 100644
index 0000000..b5b351c
--- /dev/null
+++ b/util/protogen/internalgengo/file.go
@@ -0,0 +1,250 @@
+package internalgengo
+
+import (
+ "fmt"
+ "sort"
+ "strconv"
+ "strings"
+
+ "google.golang.org/protobuf/compiler/protogen"
+ "google.golang.org/protobuf/reflect/protoreflect"
+)
+
+var (
+ strconvPackage = protogen.GoImportPath("strconv")
+ fmtPackage = protogen.GoImportPath("fmt")
+ jsonPackage = protogen.GoImportPath("encoding/json")
+ easyprotoPackage = protogen.GoImportPath("github.com/VictoriaMetrics/easyproto")
+ mpPackage = protogen.GoImportPath("git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool")
+ protoPackage = protogen.GoImportPath("git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto")
+ encodingPackage = protogen.GoImportPath("git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding")
+
+ mp = mpPackage.Ident("MarshalerPool")
+)
+
+// GenerateFile generates a *.pb.go file enforcing field-order serialization.
+func GenerateFile(gen *protogen.Plugin, file *protogen.File) *protogen.GeneratedFile {
+ filename := file.GeneratedFilenamePrefix + "_frostfs.pb.go"
+ g := gen.NewGeneratedFile(filename, file.GoImportPath)
+
+ g.P("// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.")
+ g.P()
+ g.P("package ", file.GoPackageName)
+ g.P()
+ g.Import(encodingPackage)
+
+ // Doesn't work for multiple files in a single package, use external pool.
+ // g.P("var mp ", easyprotoPackage.Ident("MarshalerPool"))
+
+ for _, e := range file.Enums {
+ emitEnum(g, e)
+ }
+ for _, msg := range file.Messages {
+ emitEasyProto(g, msg)
+ }
+ return g
+}
+
+func emitEnum(g *protogen.GeneratedFile, e *protogen.Enum) {
+ g.P("type " + e.GoIdent.GoName + " int32")
+ g.P("const (")
+ for _, ev := range e.Values {
+ g.P(ev.GoIdent.GoName, " ", e.GoIdent.GoName, " = ", ev.Desc.Number())
+ }
+ g.P(")")
+
+ g.P("var (")
+ g.P(e.GoIdent.GoName+"_name", " = map[int32]string{")
+ for _, value := range e.Values {
+ g.P(value.Desc.Number(), ": ", strconv.Quote(string(value.Desc.Name())), ",")
+ }
+ g.P("}")
+ g.P(e.GoIdent.GoName+"_value", " = map[string]int32{")
+ for _, value := range e.Values {
+ g.P(strconv.Quote(string(value.Desc.Name())), ": ", value.Desc.Number(), ",")
+ }
+ g.P("}")
+ g.P(")")
+ g.P()
+
+ g.P("func (x ", e.GoIdent.GoName, ") String() string {")
+ g.P("if v, ok := ", e.GoIdent.GoName+"_name[int32(x)]; ok {")
+ g.P("return v")
+ g.P("}")
+ g.P("return ", strconvPackage.Ident("FormatInt"), "(int64(x), 10)")
+ g.P("}")
+
+ g.P("func (x *", e.GoIdent.GoName, ") FromString(s string) bool {")
+ g.P("if v, ok := ", e.GoIdent.GoName+"_value[s]; ok {")
+ g.P("*x = ", e.GoIdent.GoName, "(v)")
+ g.P("return true")
+ g.P("}")
+ g.P("return false")
+ g.P("}")
+}
+
+func emitEasyProto(g *protogen.GeneratedFile, msg *protogen.Message) {
+ for _, e := range msg.Enums {
+ emitEnum(g, e)
+ }
+ for _, m := range msg.Messages {
+ emitEasyProto(g, m)
+ }
+
+ g.P("type " + msg.GoIdent.GoName + " struct {")
+ emitMessageFields(g, msg)
+ g.P("}")
+
+ g.P("var (")
+ g.P("_ ", encodingPackage.Ident("ProtoMarshaler"), " = (*", msg.GoIdent.GoName, ")(nil)")
+ g.P("_ ", encodingPackage.Ident("ProtoUnmarshaler"), " = (*", msg.GoIdent.GoName, ")(nil)")
+ g.P("_ ", jsonPackage.Ident("Marshaler"), " = (*", msg.GoIdent.GoName, ")(nil)")
+ g.P("_ ", jsonPackage.Ident("Unmarshaler"), " = (*", msg.GoIdent.GoName, ")(nil)")
+ g.P(")")
+
+ emitStableSize(g, msg)
+ if strings.HasSuffix(msg.GoIdent.GoName, "Request") || strings.HasSuffix(msg.GoIdent.GoName, "Response") {
+ emitSignatureMethods(g, msg)
+ }
+
+ emitProtoMethods(g, msg)
+ emitGettersSetters(g, msg)
+ emitJSONMethods(g, msg)
+
+ for _, f := range msg.Fields {
+ if isFirstOneof(f) {
+ genOneof(g, f)
+ }
+ }
+}
+
+func isFirstOneof(f *protogen.Field) bool {
+ return f.Oneof != nil && f == f.Oneof.Fields[0]
+}
+
+func emitOneofGettersSetters(g *protogen.GeneratedFile, msg *protogen.Message, ff *protogen.Field) {
+ // For some reason protoc generates different code for oneof message/non-message fields:
+ // 1. For message we have 2 level struct wrapping and setters use inner type.
+ // 2. For other types we also have 2 level wrapping, but setters use outer type.
+ if ff.Desc.Kind() == protoreflect.MessageKind {
+ ft := fieldType(g, ff)
+
+ g.P("func (x *", msg.GoIdent.GoName, ") Get", ff.GoName, "() ", ft, " {")
+ g.P("if xx, ok := x.Get", ff.Oneof.GoName, "().(*", ff.GoIdent, "); ok { return xx.", ff.GoName, " }")
+ g.P("return nil")
+ g.P("}")
+
+ g.P("func (x *", msg.GoIdent.GoName, ") Set", ff.GoName, "(v ", ft, ") {")
+ g.P("x.", ff.Oneof.GoName, " = &", ff.GoIdent, "{", ff.GoName, ": v}")
+ g.P("}")
+ } else {
+ g.P("func (x *", msg.GoIdent.GoName, ") Get", ff.GoName, "() *", ff.GoIdent, " {")
+ g.P("if xx, ok := x.Get", ff.Oneof.GoName, "().(*", ff.GoIdent, "); ok { return xx }")
+ g.P("return nil")
+ g.P("}")
+
+ g.P("func (x *", msg.GoIdent.GoName, ") Set", ff.GoName, "(v *", ff.GoIdent, ") {")
+ g.P("x.", ff.Oneof.GoName, " = v")
+ g.P("}")
+
+ ft := fieldType(g, ff)
+ emitGetterSetter(g, ff.GoIdent.GoName, ff.GoName, ft.String(), "nil")
+ }
+}
+
+func emitGettersSetters(g *protogen.GeneratedFile, msg *protogen.Message) {
+ for _, f := range msg.Fields {
+ if f.Oneof != nil {
+ if f.Oneof.Fields[0] == f {
+ emitGetterSetter(g, msg.GoIdent.GoName, f.Oneof.GoName, oneOfDescriptor(f.Oneof), "nil")
+ for _, ff := range f.Oneof.Fields {
+ emitOneofGettersSetters(g, msg, ff)
+ }
+ }
+ continue
+ }
+
+ ft := fieldType(g, f)
+ emitGetterSetter(g, msg.GoIdent.GoName, f.GoName, ft.String(), fieldDefaultValue(f))
+ }
+}
+
+func emitMessageFields(g *protogen.GeneratedFile, msg *protogen.Message) {
+ for _, field := range msg.Fields {
+ genMessageField(g, field)
+ }
+}
+
+func genMessageField(g *protogen.GeneratedFile, field *protogen.Field) {
+ if field.Oneof != nil {
+ if field.Oneof.Fields[0] == field {
+ g.P(field.Oneof.GoName, " ", oneOfDescriptor(field.Oneof))
+ }
+ return
+ }
+
+ typ := fieldType(g, field)
+ g.P(field.GoName, " ", typ, fmt.Sprintf(" `json:%q`", fieldJSONName(field)))
+}
+
+func oneOfDescriptor(oneof *protogen.Oneof) string {
+ return "is" + oneof.GoIdent.GoName
+}
+
+func genOneof(g *protogen.GeneratedFile, field *protogen.Field) {
+ ifName := oneOfDescriptor(field.Oneof)
+ g.P("type ", ifName, " interface {")
+ g.P(ifName, "()")
+ g.P("}")
+ g.P()
+ for _, field := range field.Oneof.Fields {
+ g.P("type ", field.GoIdent, " struct {")
+
+ ft := fieldType(g, field)
+ g.P(field.GoName, " ", ft)
+ g.P("}")
+ g.P()
+ }
+ for _, field := range field.Oneof.Fields {
+ g.P("func (*", field.GoIdent, ") ", ifName, "() {}")
+ g.P()
+ }
+}
+
+func fieldDefaultValue(field *protogen.Field) string {
+ if field.Desc.Cardinality() == protoreflect.Repeated {
+ return "nil"
+ }
+
+ switch field.Desc.Kind() {
+ case protoreflect.MessageKind, protoreflect.BytesKind:
+ return "nil"
+ case protoreflect.BoolKind:
+ return "false"
+ case protoreflect.StringKind:
+ return `""`
+ default:
+ return "0"
+ }
+}
+
+func castFieldName(f *protogen.Field) string {
+ if f.Oneof != nil {
+ return "x." + f.Oneof.GoName
+ }
+
+ name := "x." + f.GoName
+ if f.Desc.Kind() != protoreflect.EnumKind {
+ return name
+ }
+ return "int32(" + name + ")"
+}
+
+func sortFields(fs []*protogen.Field) []*protogen.Field {
+ res := make([]*protogen.Field, len(fs))
+ copy(res, fs)
+ sort.Slice(res, func(i, j int) bool {
+ return res[i].Desc.Number() < res[j].Desc.Number()
+ })
+ return res
+}
diff --git a/util/protogen/internalgengo/fuzz.go b/util/protogen/internalgengo/fuzz.go
new file mode 100644
index 0000000..ec99692
--- /dev/null
+++ b/util/protogen/internalgengo/fuzz.go
@@ -0,0 +1,69 @@
+package internalgengo
+
+import (
+ "google.golang.org/protobuf/compiler/protogen"
+)
+
+var testingPackage = protogen.GoImportPath("testing")
+
+func GenerateFuzzTests(gen *protogen.Plugin, file *protogen.File) {
+ {
+ filename := file.GeneratedFilenamePrefix + "_frostfs_fuzz.go"
+ g := gen.NewGeneratedFile(filename, file.GoImportPath)
+
+ g.P("//go:build gofuzz")
+ g.P("// +build gofuzz")
+ g.P("// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.")
+ g.P()
+ g.P("package ", file.GoPackageName)
+ g.P()
+
+ for _, msg := range file.Messages {
+ emitFuzzWrappers(g, msg)
+ }
+ }
+ {
+ filename := file.GeneratedFilenamePrefix + "_frostfs_test.go"
+ g := gen.NewGeneratedFile(filename, file.GoImportPath)
+
+ g.P("//go:build gofuzz")
+ g.P("// +build gofuzz")
+ g.P("// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.")
+ g.P()
+ g.P("package ", file.GoPackageName)
+ g.P()
+
+ for _, msg := range file.Messages {
+ emitFuzzTests(g, msg)
+ }
+ }
+}
+
+func emitFuzzWrappers(g *protogen.GeneratedFile, msg *protogen.Message) {
+ g.P("func DoFuzzProto", msg.GoIdent.GoName, "(data []byte) int {")
+ g.P("msg := new(", msg.GoIdent.GoName, ")")
+ g.P("if err := msg.UnmarshalProtobuf(data); err != nil { return 0 }")
+ g.P("_ = msg.MarshalProtobuf(nil)")
+ g.P("return 1")
+ g.P("}")
+
+ g.P("func DoFuzzJSON", msg.GoIdent.GoName, "(data []byte) int {")
+ g.P("msg := new(", msg.GoIdent.GoName, ")")
+ g.P("if err := msg.UnmarshalJSON(data); err != nil { return 0 }")
+ g.P("_, err := msg.MarshalJSON()")
+ g.P("if err != nil { panic(err) }")
+ g.P("return 1")
+ g.P("}")
+}
+
+func emitFuzzTests(g *protogen.GeneratedFile, msg *protogen.Message) {
+ g.P("func FuzzProto", msg.GoIdent.GoName, "(f *", testingPackage.Ident("F"), ") {")
+ g.P("f.Fuzz(func(t *", testingPackage.Ident("T"), ", data []byte) {")
+ g.P("DoFuzzProto", msg.GoIdent.GoName, "(data)")
+ g.P("})}")
+
+ g.P("func FuzzJSON", msg.GoIdent.GoName, "(f *", testingPackage.Ident("F"), ") {")
+ g.P("f.Fuzz(func(t *", testingPackage.Ident("T"), ", data []byte) {")
+ g.P("DoFuzzJSON", msg.GoIdent.GoName, "(data)")
+ g.P("})}")
+}
diff --git a/util/protogen/internalgengo/getter.go b/util/protogen/internalgengo/getter.go
new file mode 100644
index 0000000..78deef7
--- /dev/null
+++ b/util/protogen/internalgengo/getter.go
@@ -0,0 +1,14 @@
+package internalgengo
+
+import "google.golang.org/protobuf/compiler/protogen"
+
+func emitGetterSetter(g *protogen.GeneratedFile, typeName string, fieldName string, fieldType string, defaultValue string) {
+ g.P("func (x *", typeName, ") Get", fieldName, "() ", fieldType, " {")
+ g.P("if x != nil { return x.", fieldName, "}")
+ g.P("return ", defaultValue)
+ g.P("}")
+
+ g.P("func (x *", typeName, ") Set", fieldName, "(v ", fieldType, ") {")
+ g.P("x.", fieldName, " = v")
+ g.P("}")
+}
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
new file mode 100644
index 0000000..ad43fc8
--- /dev/null
+++ b/util/protogen/internalgengo/json.go
@@ -0,0 +1,230 @@
+package internalgengo
+
+import (
+ "fmt"
+
+ "google.golang.org/protobuf/compiler/protogen"
+ "google.golang.org/protobuf/reflect/protoreflect"
+)
+
+var (
+ jwriterPackage = protogen.GoImportPath("github.com/mailru/easyjson/jwriter")
+ jlexerPackage = protogen.GoImportPath("github.com/mailru/easyjson/jlexer")
+)
+
+func emitJSONMethods(g *protogen.GeneratedFile, msg *protogen.Message) {
+ emitJSONMarshal(g, msg)
+ emitJSONUnmarshal(g, msg)
+}
+
+func emitJSONUnmarshal(g *protogen.GeneratedFile, msg *protogen.Message) {
+ g.P("// UnmarshalJSON implements the json.Unmarshaler interface.")
+ g.P("func (x *", msg.GoIdent.GoName, ") UnmarshalJSON(data []byte) error {")
+ g.P("r := ", jlexerPackage.Ident("Lexer"), "{Data: data}")
+ g.P("x.UnmarshalEasyJSON(&r)")
+ g.P("return r.Error()")
+ g.P("}")
+
+ g.P("func (x *", msg.GoIdent.GoName, ") UnmarshalEasyJSON(in *", jlexerPackage.Ident("Lexer"), ") {")
+
+ g.P("isTopLevel := in.IsStart()")
+ g.P("if in.IsNull() {")
+ g.P("if isTopLevel { in.Consumed() }")
+ g.P("in.Skip()")
+ g.P("return")
+ g.P("}")
+
+ g.P("in.Delim('{')")
+ g.P("for !in.IsDelim('}') {")
+
+ g.P("key := in.UnsafeFieldName(false)")
+ g.P("in.WantColon()")
+ g.P("if in.IsNull() { in.Skip(); in.WantComma(); continue }")
+ g.P("switch key {")
+ for _, f := range msg.Fields {
+ g.P(`case "`, fieldJSONName(f), `":`)
+ if f.Oneof != nil {
+ g.P("xx := new(", f.GoIdent, ")")
+ g.P("x." + f.Oneof.GoName + " = xx")
+ emitJSONFieldRead(g, f, "xx")
+ continue
+ }
+ emitJSONFieldRead(g, f, "x")
+ }
+ g.P("}")
+ g.P("in.WantComma()")
+ g.P("}")
+ g.P("in.Delim('}')")
+ g.P("if isTopLevel { in.Consumed() }")
+ g.P("}")
+}
+
+func emitJSONFieldRead(g *protogen.GeneratedFile, f *protogen.Field, name string) {
+ g.P("{")
+ defer g.P("}")
+
+ if f.Desc.IsList() {
+ g.P("var f ", fieldType(g, f)[2:])
+ g.P("var list ", fieldType(g, f))
+ g.P("in.Delim('[')")
+ defer g.P("in.Delim(']')")
+
+ g.P("for !in.IsDelim(']') {")
+ } else {
+ g.P("var f ", fieldType(g, f))
+ }
+
+ var template string
+ switch f.Desc.Kind() {
+ case protoreflect.BoolKind:
+ template = "%s = in.Bool()"
+ case protoreflect.EnumKind:
+ g.Import(strconvPackage)
+
+ enumType := fieldType(g, f).String()
+ g.P("var parsedValue " + enumType)
+ g.P(`switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := `+enumType+`_value[v]; ok {
+ parsedValue = `+enumType+`(vv)
+ break
+ }
+ vv, err := `, strconvPackage.Ident("ParseInt"), `(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ parsedValue = `+enumType+`(vv)
+ case float64:
+ parsedValue = `+enumType+`(v)
+ }`)
+ template = "%s = parsedValue"
+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:
+ template = "%s = in.Int32()"
+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind:
+ template = "%s = in.Uint32()"
+ case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:
+ template = "%s = in.Int64()"
+ case protoreflect.Uint64Kind, protoreflect.Fixed64Kind:
+ template = "%s = in.Uint64()"
+ case protoreflect.FloatKind:
+ template = "%s = in.Float32()"
+ case protoreflect.DoubleKind:
+ template = "%s = in.Float64()"
+ case protoreflect.StringKind:
+ template = "%s = in.String()"
+ case protoreflect.BytesKind:
+ template = "%s = in.Bytes()"
+ case protoreflect.MessageKind:
+ if f.Desc.IsList() {
+ g.P("f = new(", fieldType(g, f)[3:], ")")
+ } else {
+ g.P("f = new(", fieldType(g, f)[1:], ")")
+ }
+ template = "%s.UnmarshalEasyJSON(in)"
+ case protoreflect.GroupKind:
+ panic("unimplemented")
+ }
+ g.P(fmt.Sprintf(template, "f"))
+ if f.Desc.IsList() {
+ g.P("list = append(list, f)")
+ g.P("in.WantComma()")
+ g.P("}")
+ g.P(name, ".", f.GoName, " = list")
+ } else {
+ g.P(name, ".", f.GoName, " = f")
+ }
+}
+
+func emitJSONMarshal(g *protogen.GeneratedFile, msg *protogen.Message) {
+ g.P("// MarshalJSON implements the json.Marshaler interface.")
+ g.P("func (x *", msg.GoIdent.GoName, ") MarshalJSON() ([]byte, error) {")
+ g.P("w := ", jwriterPackage.Ident("Writer"), "{}")
+ g.P("x.MarshalEasyJSON(&w)")
+ g.P("return w.Buffer.BuildBytes(), w.Error")
+ g.P("}")
+
+ g.P("func (x *", msg.GoIdent.GoName, ") MarshalEasyJSON(out *", jwriterPackage.Ident("Writer"), ") {")
+ g.P(`if x == nil { out.RawString("null"); return }`)
+
+ g.P("out.RawByte('{')")
+ for i, f := range msg.Fields {
+ if f.Oneof != nil {
+ if f.Oneof.Fields[0] != f {
+ continue
+ }
+
+ g.P("switch xx := x.", f.Oneof.GoName, ".(type) {")
+ for _, ff := range f.Oneof.Fields {
+ g.P("case *", ff.GoIdent, ":")
+ emitJSONFieldWrite(g, ff, "xx", i == 0)
+ }
+ g.P("default:")
+ g.P(`out.RawString("null")`)
+ g.P("}")
+ continue
+ }
+ emitJSONFieldWrite(g, f, "x", i == 0)
+ }
+ g.P("out.RawByte('}')")
+ g.P("}")
+}
+
+func emitJSONFieldWrite(g *protogen.GeneratedFile, f *protogen.Field, name string, first bool) {
+ g.P("{")
+ defer g.P("}")
+
+ g.P("const prefix string = ", `",\"`, fieldJSONName(f), `\":"`)
+ if first {
+ g.P("out.RawString(prefix[1:])")
+ } else {
+ g.P("out.RawString(prefix)")
+ }
+
+ selector := name + "." + f.GoName
+ if f.Desc.IsList() {
+ selector += "[i]"
+ g.P("out.RawByte('[')")
+ defer g.P("out.RawByte(']')")
+
+ g.P("for i := range ", name, ".", f.GoName, " {")
+ g.P("if i != 0 { out.RawByte(',') }")
+ defer g.P("}")
+ }
+
+ var template string
+ switch f.Desc.Kind() {
+ case protoreflect.BoolKind:
+ template = "out.Bool(%s)"
+ case protoreflect.EnumKind:
+ template = "out.Int32(int32(%s))"
+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:
+ template = "out.Int32(%s)"
+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind:
+ template = "out.Uint32(%s)"
+ case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:
+ template = "out.Int64(%s)"
+ case protoreflect.Uint64Kind, protoreflect.Fixed64Kind:
+ template = "out.Uint64(%s)"
+ case protoreflect.FloatKind:
+ template = "out.Float32(%s)"
+ case protoreflect.DoubleKind:
+ template = "out.Float64(%s)"
+ case protoreflect.StringKind:
+ template = "out.String(%s)"
+ case protoreflect.BytesKind:
+ template = "out.Base64Bytes(%s)"
+ case protoreflect.MessageKind:
+ template = "%s.MarshalEasyJSON(out)"
+ case protoreflect.GroupKind:
+ panic("unimplemented")
+ }
+ g.P(fmt.Sprintf(template, selector))
+}
+
+func fieldJSONName(f *protogen.Field) string {
+ if f.Desc.HasJSONName() {
+ return f.Desc.JSONName()
+ }
+ return string(f.Desc.Name())
+}
diff --git a/util/protogen/internalgengo/options.go b/util/protogen/internalgengo/options.go
new file mode 100644
index 0000000..8aab8f0
--- /dev/null
+++ b/util/protogen/internalgengo/options.go
@@ -0,0 +1,7 @@
+package internalgengo
+
+type Options struct {
+ Fuzz bool `yaml:"fuzz"`
+ JSON bool `yaml:"json"`
+ MessageData []string `yaml:"message_data"`
+}
diff --git a/util/protogen/internalgengo/proto.go b/util/protogen/internalgengo/proto.go
new file mode 100644
index 0000000..8e5e967
--- /dev/null
+++ b/util/protogen/internalgengo/proto.go
@@ -0,0 +1,201 @@
+package internalgengo
+
+import (
+ "google.golang.org/protobuf/compiler/protogen"
+ "google.golang.org/protobuf/reflect/protoreflect"
+)
+
+func emitProtoMethods(g *protogen.GeneratedFile, msg *protogen.Message) {
+ emitMarshalProtobuf(g, msg)
+ emitUnmarshalProtobuf(g, msg)
+}
+
+func emitUnmarshalProtobuf(g *protogen.GeneratedFile, msg *protogen.Message) {
+ g.P("// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.")
+ g.P("func (x *", msg.GoIdent.GoName, ") UnmarshalProtobuf(src []byte) (err error) {")
+ g.P("var fc ", easyprotoPackage.Ident("FieldContext"))
+ g.P("for len(src) > 0 {")
+ {
+ g.P("src, err = fc.NextField(src)")
+ g.P("if err != nil { return ", fmtPackage.Ident("Errorf"), `("cannot read next field in %s", "`, msg.GoIdent.GoName, `")}`)
+ g.P("switch fc.FieldNum {")
+ {
+ for _, f := range msg.Fields {
+ g.P("case ", f.Desc.Number(), ":", " // ", f.GoName)
+ emitFieldUnmarshal(g, f)
+ }
+ }
+ g.P("}")
+ }
+ g.P("}")
+
+ g.P("return nil")
+ g.P("}")
+}
+
+func emitFieldUnmarshal(g *protogen.GeneratedFile, f *protogen.Field) {
+ name := castFieldName(f)
+ if f.Desc.Kind() == protoreflect.MessageKind {
+ g.P("data, ok := fc.MessageData()")
+ g.P(`if !ok { return fmt.Errorf("cannot unmarshal field %s", "`, f.GoName, `") }`)
+ if f.Desc.IsList() {
+ g.P(name, " = append(", name, ", new(", fieldType(g, f)[3:], "))")
+ g.P("ff := ", name, "[len(", name, ")-1]")
+ name = "ff"
+ } else if f.Oneof != nil {
+ const tmp = "oneofField"
+ g.P(tmp, " := &", f.GoIdent, "{", f.GoName, ": ", "new(", fieldType(g, f)[1:], ")}")
+ defer g.P(name, " = ", tmp)
+
+ name = tmp + "." + f.GoName
+ } else {
+ g.P(name, " = new(", fieldType(g, f)[1:], ")")
+ }
+
+ g.P(`if err := `, name, `.UnmarshalProtobuf(data); err != nil { return fmt.Errorf("unmarshal: %w", err)}`)
+ return
+ }
+
+ getter, _ := easyprotoKindInfo(f.Desc.Kind())
+
+ if f.Desc.IsList() && (f.Desc.Kind() == protoreflect.BytesKind || f.Desc.Kind() == protoreflect.StringKind || f.Desc.Kind() == protoreflect.Uint64Kind && !f.Desc.IsPacked()) {
+ g.P("data, ok := fc.", getter, "()")
+ g.P(`if !ok { return fmt.Errorf("cannot unmarshal field %s", "`, f.GoName, `") }`)
+ g.P(name, " = append(", name, ", data)")
+ return
+ }
+
+ if f.Desc.IsList() {
+ g.P("data, ok := fc.Unpack", getter, "s(nil)")
+ } else {
+ g.P("data, ok := fc.", getter, "()")
+ }
+
+ g.P(`if !ok { return fmt.Errorf("cannot unmarshal field %s", "`, f.GoName, `") }`)
+ value := "data"
+ if f.Desc.Kind() == protoreflect.EnumKind {
+ value = fieldType(g, f).String() + "(data)"
+ }
+
+ if f.Oneof == nil {
+ g.P("x.", f.GoName, " = ", value)
+ } else {
+ g.P("x.", f.Oneof.GoName, " = &", f.GoIdent, "{", f.GoName, ": data}")
+ }
+}
+
+func emitMarshalProtobuf(g *protogen.GeneratedFile, msg *protogen.Message) {
+ g.P("// MarshalProtobuf implements the encoding.ProtoMarshaler interface.")
+ g.P("func (x *", msg.GoIdent.GoName, ") MarshalProtobuf(dst []byte) []byte {")
+ g.P("m := ", mp, ".Get()")
+ g.P("defer ", mp, ".Put(m)")
+ g.P("x.EmitProtobuf(m.MessageMarshaler())")
+ g.P("dst = m.Marshal(dst)")
+ g.P("return dst")
+ g.P("}\n")
+
+ g.P("func (x *", msg.GoIdent.GoName, ") EmitProtobuf(mm *", easyprotoPackage.Ident("MessageMarshaler"), ") {")
+ if len(msg.Fields) != 0 {
+ fs := sortFields(msg.Fields)
+
+ g.P("if x == nil { return }")
+ for _, f := range fs {
+ emitFieldMarshal(g, f)
+ }
+ }
+ g.P("}")
+}
+
+func emitMarshalOneof(g *protogen.GeneratedFile, f *protogen.Field) {
+ name := "x." + f.Oneof.GoName
+ g.P("if inner, ok := ", name, ".(*", f.GoIdent.GoName, "); ok {")
+ defer g.P("}")
+ emitMarshalRaw(g, f, "inner."+f.GoName)
+}
+
+// easyprotoKindInfo returns string name for kind, used in easyproto methods.
+// The second return value is a condition to test for the default value of kind.
+func easyprotoKindInfo(kind protoreflect.Kind) (string, func(string) string) {
+ switch kind {
+ case protoreflect.BoolKind:
+ return "Bool", identity
+ case protoreflect.EnumKind:
+ return "Int32", notZero
+ case protoreflect.Int32Kind:
+ return "Int32", notZero
+ case protoreflect.Sint32Kind:
+ return "Sint32", notZero
+ case protoreflect.Uint32Kind:
+ return "Uint32", notZero
+ case protoreflect.Int64Kind:
+ return "Int64", notZero
+ case protoreflect.Sint64Kind:
+ return "Sint64", notZero
+ case protoreflect.Uint64Kind:
+ return "Uint64", notZero
+ case protoreflect.Sfixed32Kind:
+ return "Sfixed32", notZero
+ case protoreflect.Fixed32Kind:
+ return "Fixed32", notZero
+ case protoreflect.FloatKind:
+ return "Float", notZero
+ case protoreflect.Sfixed64Kind:
+ return "Sfixed64", notZero
+ case protoreflect.Fixed64Kind:
+ return "Fixed64", notZero
+ case protoreflect.DoubleKind:
+ return "Double", notZero
+ case protoreflect.StringKind:
+ return "String", notEmpty
+ case protoreflect.BytesKind:
+ return "Bytes", notEmpty
+ case protoreflect.GroupKind:
+ panic("unimplemented")
+ default:
+ panic("unreachable")
+ }
+}
+
+func emitFieldMarshal(g *protogen.GeneratedFile, f *protogen.Field) {
+ if f.Oneof != nil {
+ emitMarshalOneof(g, f)
+ return
+ }
+
+ emitMarshalRaw(g, f, castFieldName(f))
+}
+
+func emitMarshalRaw(g *protogen.GeneratedFile, f *protogen.Field, name string) {
+ if f.Desc.Kind() == protoreflect.MessageKind {
+ if f.Desc.IsList() {
+ g.P("for i := range ", name, " {")
+ defer g.P("}")
+
+ name += "[i]"
+ }
+
+ g.P("if ", notNil(name), " && ", name, ".StableSize() != 0 {")
+ g.P(name, ".EmitProtobuf(mm.AppendMessage(", f.Desc.Number(), "))")
+ g.P("}")
+ return
+ }
+
+ method, cond := easyprotoKindInfo(f.Desc.Kind())
+ method = "Append" + method
+ if f.Desc.IsList() && !f.Desc.IsPacked() {
+ g.P("for j := range ", name, " {")
+ g.P("mm.", method, "(", f.Desc.Number(), ", ", name, "[j])")
+ g.P("}")
+ return
+ }
+
+ if f.Desc.IsList() {
+ method += "s"
+ g.P("if ", notEmpty(name), "{")
+ } else {
+ g.P("if ", cond(name), " {")
+ }
+
+ g.P("mm.", method, "(", f.Desc.Number(), ", ", name, ")")
+ g.P("}")
+}
diff --git a/util/protogen/internalgengo/proto_field_type.go b/util/protogen/internalgengo/proto_field_type.go
new file mode 100644
index 0000000..09f6884
--- /dev/null
+++ b/util/protogen/internalgengo/proto_field_type.go
@@ -0,0 +1,56 @@
+package internalgengo
+
+import (
+ "google.golang.org/protobuf/compiler/protogen"
+ "google.golang.org/protobuf/reflect/protoreflect"
+)
+
+type structField string
+
+func (f structField) String() string {
+ return string(f)
+}
+
+func (f structField) PointerTo() structField {
+ return "*" + f
+}
+
+func (f structField) SliceOf() structField {
+ return "[]" + f
+}
+
+func fieldType(g *protogen.GeneratedFile, field *protogen.Field) structField {
+ var typ structField
+ switch field.Desc.Kind() {
+ case protoreflect.BoolKind:
+ typ = "bool"
+ case protoreflect.EnumKind:
+ typ = structField(g.QualifiedGoIdent(field.Enum.GoIdent))
+ case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:
+ typ = "int32"
+ case protoreflect.Uint32Kind, protoreflect.Fixed32Kind:
+ typ = "uint32"
+ case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:
+ typ = "int64"
+ case protoreflect.Uint64Kind, protoreflect.Fixed64Kind:
+ typ = "uint64"
+ case protoreflect.FloatKind:
+ typ = "float32"
+ case protoreflect.DoubleKind:
+ typ = "float64"
+ case protoreflect.StringKind:
+ typ = "string"
+ case protoreflect.BytesKind:
+ typ = "[]byte"
+ case protoreflect.MessageKind:
+ typ = structField(g.QualifiedGoIdent(field.Message.GoIdent)).PointerTo()
+ case protoreflect.GroupKind:
+ panic("unimplemented")
+ }
+
+ if field.Desc.IsList() {
+ typ = "[]" + typ
+ }
+
+ return typ
+}
diff --git a/util/protogen/internalgengo/proto_stable_compat.go b/util/protogen/internalgengo/proto_stable_compat.go
new file mode 100644
index 0000000..c27b9d8
--- /dev/null
+++ b/util/protogen/internalgengo/proto_stable_compat.go
@@ -0,0 +1,124 @@
+package internalgengo
+
+import (
+ "google.golang.org/protobuf/compiler/protogen"
+ "google.golang.org/protobuf/reflect/protoreflect"
+)
+
+var protowirePackage = protogen.GoImportPath("google.golang.org/protobuf/encoding/protowire")
+
+func emitStableSize(g *protogen.GeneratedFile, msg *protogen.Message) {
+ fs := sortFields(msg.Fields)
+
+ g.P("// StableSize returns the size of x in protobuf format.")
+ g.P("//")
+ g.P("// Structures with the same field values have the same binary size.")
+ g.P("func (x *", msg.GoIdent.GoName, ") StableSize() (size int) {")
+ g.P("if x == nil { return 0 }")
+ if len(fs) != 0 {
+ for _, f := range fs {
+ if f.Desc.IsList() && marshalers[f.Desc.Kind()].RepeatedDouble && !(f.Desc.Kind() == protoreflect.Uint64Kind && !f.Desc.IsPacked()) {
+ g.P("var n int")
+ break
+ }
+ }
+ for _, f := range fs {
+ emitFieldSize(g, f)
+ }
+ }
+ g.P("return size")
+ g.P("}\n")
+}
+
+func emitSignatureMethods(g *protogen.GeneratedFile, msg *protogen.Message) {
+ // SignedDataSize implementation (only for requests and responses).
+ g.P("// ReadSignedData fills buf with signed data of x.")
+ g.P("// If buffer length is less than x.SignedDataSize(), new buffer is allocated.")
+ g.P("//")
+ g.P("// Returns any error encountered which did not allow writing the data completely.")
+ g.P("// Otherwise, returns the buffer in which the data is written.")
+ g.P("//")
+ g.P("// Structures with the same field values have the same signed data.")
+ g.P("func (x *", msg.GoIdent.GoName, ") SignedDataSize() int {")
+ g.P("return x.GetBody().StableSize()")
+ g.P("}\n")
+
+ // ReadSignedData implementation (only for requests and responses).
+ g.P("// SignedDataSize returns size of the request signed data in bytes.")
+ g.P("//")
+ g.P("// Structures with the same field values have the same signed data size.")
+ g.P("func (x *", msg.GoIdent.GoName, ") ReadSignedData(buf []byte) ([]byte, error) {")
+ g.P("return x.GetBody().MarshalProtobuf(buf), nil")
+ g.P("}\n")
+}
+
+func emitFieldSize(g *protogen.GeneratedFile, f *protogen.Field) {
+ m := marshalers[f.Desc.Kind()]
+ if m.Prefix == "" {
+ g.P("// FIXME missing field marshaler: ", f.GoName, " of type ", f.Desc.Kind().String())
+ g.P(`panic("unimplemented")`)
+ return
+ }
+
+ name := castFieldName(f)
+ if f.Oneof != nil {
+ name = "x." + f.Oneof.GoName
+ g.P("if inner, ok := ", name, ".(*", f.GoIdent.GoName, "); ok {")
+ defer g.P("}")
+ name = "inner." + f.GoName
+ }
+
+ switch {
+ case f.Desc.IsList() && (f.Desc.Kind() == protoreflect.MessageKind || f.Desc.Kind() == protoreflect.Uint64Kind && !f.Desc.IsPacked()):
+ g.P("for i := range ", name, "{")
+ if f.Desc.Kind() == protoreflect.MessageKind {
+ g.P("size += ", protoPackage.Ident("NestedStructureSize"), "(", f.Desc.Number(), ", ", name, "[i])")
+ } else {
+ if f.Desc.Kind() != protoreflect.Uint64Kind {
+ panic("only uint64 unpacked primitive is supported")
+ }
+
+ g.P("size += ", protowirePackage.Ident("SizeGroup"), "(",
+ protowirePackage.Ident("Number"), "(", f.Desc.Number(), "), ",
+ protowirePackage.Ident("SizeVarint"), "(", name, "[i]))")
+ }
+ g.P("}")
+
+ case f.Desc.IsList():
+ if m.RepeatedDouble {
+ g.P("n, _ = ", protoPackage.Ident("Repeated"+m.Prefix+"Size"), "(", f.Desc.Number(), ", ", name, ")")
+ g.P("size += n")
+ } else {
+ g.P("size += ", protoPackage.Ident("Repeated"+m.Prefix+"Size"), "(", f.Desc.Number(), ", ", name, ")")
+ }
+ default:
+ g.P("size += ", protoPackage.Ident(m.Prefix+"Size"), "(", f.Desc.Number(), ", ", name, ")")
+ }
+}
+
+type marshalerDesc struct {
+ Prefix string
+ RepeatedDouble bool
+}
+
+// Unused kinds are commented.
+var marshalers = map[protoreflect.Kind]marshalerDesc{
+ protoreflect.BoolKind: {Prefix: "Bool"},
+ protoreflect.EnumKind: {Prefix: "Enum"},
+ protoreflect.Int32Kind: {Prefix: "Int32", RepeatedDouble: true},
+ // protoreflect.Sint32Kind: "",
+ protoreflect.Uint32Kind: {Prefix: "UInt32", RepeatedDouble: true},
+ protoreflect.Int64Kind: {Prefix: "Int64", RepeatedDouble: true},
+ // protoreflect.Sint64Kind: "",
+ protoreflect.Uint64Kind: {Prefix: "UInt64", RepeatedDouble: true},
+ // protoreflect.Sfixed32Kind: "",
+ protoreflect.Fixed32Kind: {Prefix: "Fixed32", RepeatedDouble: true},
+ // protoreflect.FloatKind: "",
+ // protoreflect.Sfixed64Kind: "",
+ protoreflect.Fixed64Kind: {Prefix: "Fixed64", RepeatedDouble: true},
+ protoreflect.DoubleKind: {Prefix: "Float64"},
+ protoreflect.StringKind: {Prefix: "String"},
+ protoreflect.BytesKind: {Prefix: "Bytes"},
+ protoreflect.MessageKind: {Prefix: "NestedStructure"},
+ // protoreflect.GroupKind: "",
+}
diff --git a/util/protogen/internalgengo/writer.go b/util/protogen/internalgengo/writer.go
new file mode 100644
index 0000000..7b0d4f1
--- /dev/null
+++ b/util/protogen/internalgengo/writer.go
@@ -0,0 +1,30 @@
+package internalgengo
+
+import (
+ "fmt"
+)
+
+type condition = func(string) string
+
+var (
+ _ condition = notZero
+ _ condition = notEmpty
+ _ condition = identity
+ _ condition = notNil
+)
+
+func notZero(name string) string {
+ return fmt.Sprintf("%s != 0", name)
+}
+
+func notEmpty(name string) string {
+ return fmt.Sprintf("len(%s) != 0", name)
+}
+
+func identity(name string) string {
+ return name
+}
+
+func notNil(name string) string {
+ return fmt.Sprintf("%s != nil", name)
+}
diff --git a/util/protogen/main.go b/util/protogen/main.go
index 0f2a7ca..bfce1bf 100644
--- a/util/protogen/main.go
+++ b/util/protogen/main.go
@@ -1,258 +1,37 @@
package main
import (
- "sort"
- "strings"
+ "flag"
+ "fmt"
+ "os"
+ "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/protogen/internalgengo"
"google.golang.org/protobuf/compiler/protogen"
- "google.golang.org/protobuf/reflect/protoreflect"
-)
-
-var (
- protowirePackage = protogen.GoImportPath("google.golang.org/protobuf/encoding/protowire")
- binaryPackage = protogen.GoImportPath("encoding/binary")
)
func main() {
- protogen.Options{}.Run(func(gen *protogen.Plugin) error {
+ var flags flag.FlagSet
+ genFuzz := flags.Bool("fuzz", false, "generate fuzz tests")
+ yamlConfigPath := flags.String("config", "", "path to the configuration")
+
+ protogen.Options{
+ ParamFunc: flags.Set,
+ }.Run(func(gen *protogen.Plugin) error {
+ if *yamlConfigPath != "" {
+ s, e := os.Getwd()
+ fmt.Fprintln(os.Stderr, s, e)
+ data, err := os.ReadFile(*yamlConfigPath)
+ fmt.Fprintln(os.Stderr, string(data), err)
+ }
+
for _, f := range gen.Files {
if f.Generate {
- generateFile(gen, f)
+ internalgengo.GenerateFile(gen, f)
+ if *genFuzz {
+ internalgengo.GenerateFuzzTests(gen, f)
+ }
}
}
return nil
})
}
-
-// generateFile generates a *.pb.go file enforcing field-order serialization.
-func generateFile(gen *protogen.Plugin, file *protogen.File) *protogen.GeneratedFile {
- filename := file.GeneratedFilenamePrefix + "_frostfs.pb.go"
- g := gen.NewGeneratedFile(filename, file.GoImportPath)
- g.P("// Code generated by protoc-gen-go-frostfs. DO NOT EDIT.")
- g.P()
- g.P("package ", file.GoPackageName)
- g.P()
- g.P(`import "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"`)
-
- //for _, e := range file.Enums {
- // g.P("type " + e.GoIdent.GoName + " int32")
- // g.P("const (")
- // for _, ev := range e.Values {
- // g.P(ev.GoIdent.GoName, " = ", ev.Desc.Number())
- // }
- // g.P(")")
- //}
- for _, msg := range file.Messages {
- emitMessage(g, msg)
- }
- return g
-}
-
-func emitMessage(g *protogen.GeneratedFile, msg *protogen.Message) {
- for _, inner := range msg.Messages {
- emitMessage(g, inner)
- }
-
- fs := sortFields(msg.Fields)
-
- // StableSize implementation.
- g.P("// StableSize returns the size of x in protobuf format.")
- g.P("//")
- g.P("// Structures with the same field values have the same binary size.")
- g.P("func (x *", msg.GoIdent.GoName, ") StableSize() (size int) {")
- g.P("if x == nil { return 0 }")
- if len(fs) != 0 {
- for _, f := range fs {
- if f.Desc.IsList() && marshalers[f.Desc.Kind()].RepeatedDouble && !(f.Desc.Kind() == protoreflect.Uint64Kind && !f.Desc.IsPacked()) {
- g.P("var n int")
- break
- }
- }
- for _, f := range fs {
- emitFieldSize(g, f)
- }
- }
- g.P("return size")
- g.P("}\n")
-
- // StableMarshal implementation.
- g.P("// StableMarshal marshals x in protobuf binary format with stable field order.")
- g.P("//")
- g.P("// If buffer length is less than x.StableSize(), new buffer is allocated.")
- g.P("//")
- g.P("// Returns any error encountered which did not allow writing the data completely.")
- g.P("// Otherwise, returns the buffer in which the data is written.")
- g.P("//")
- g.P("// Structures with the same field values have the same binary format.")
- g.P("func (x *", msg.GoIdent.GoName, ") StableMarshal(buf []byte) []byte {")
- if len(fs) != 0 {
- g.P("if x == nil { return []byte{} }")
- g.P("if buf == nil { buf = make([]byte, x.StableSize()) }")
- g.P("var offset int")
- for _, f := range fs {
- emitFieldMarshal(g, f)
- }
- }
- g.P("return buf")
- g.P("}\n")
-
- if strings.HasSuffix(msg.GoIdent.GoName, "Request") || strings.HasSuffix(msg.GoIdent.GoName, "Response") {
- // SignedDataSize implementation (only for requests and responses).
- g.P("// ReadSignedData fills buf with signed data of x.")
- g.P("// If buffer length is less than x.SignedDataSize(), new buffer is allocated.")
- g.P("//")
- g.P("// Returns any error encountered which did not allow writing the data completely.")
- g.P("// Otherwise, returns the buffer in which the data is written.")
- g.P("//")
- g.P("// Structures with the same field values have the same signed data.")
- g.P("func (x *", msg.GoIdent.GoName, ") SignedDataSize() int {")
- g.P("return x.GetBody().StableSize()")
- g.P("}\n")
-
- // ReadSignedData implementation (only for requests and responses).
- g.P("// SignedDataSize returns size of the request signed data in bytes.")
- g.P("//")
- g.P("// Structures with the same field values have the same signed data size.")
- g.P("func (x *", msg.GoIdent.GoName, ") ReadSignedData(buf []byte) ([]byte, error) {")
- g.P("return x.GetBody().StableMarshal(buf), nil")
- g.P("}\n")
-
- // Signature setters and getters.
- g.P("func (x *", msg.GoIdent.GoName, ") SetSignature(sig *Signature) {")
- g.P("x.Signature = sig")
- g.P("}\n")
- }
-}
-
-func emitFieldSize(g *protogen.GeneratedFile, f *protogen.Field) {
- m := marshalers[f.Desc.Kind()]
- if m.Prefix == "" {
- g.P("// FIXME missing field marshaler: ", f.GoName, " of type ", f.Desc.Kind().String())
- g.P(`panic("unimplemented")`)
- return
- }
-
- name := castFieldName(f)
- if f.Oneof != nil {
- name = "x." + f.Oneof.GoName
- g.P("if inner, ok := ", name, ".(*", f.GoIdent.GoName, "); ok {")
- defer g.P("}")
- name = "inner." + f.GoName
- }
-
- switch {
- case f.Desc.IsList() && (f.Desc.Kind() == protoreflect.MessageKind || f.Desc.Kind() == protoreflect.Uint64Kind && !f.Desc.IsPacked()):
- g.P("for i := range ", name, "{")
- if f.Desc.Kind() == protoreflect.MessageKind {
- g.P("size += proto.NestedStructureSize(", f.Desc.Number(), ", ", name, "[i])")
- } else {
- if f.Desc.Kind() != protoreflect.Uint64Kind {
- panic("only uint64 unpacked primitive is supported")
- }
-
- g.P("size += ", protowirePackage.Ident("SizeGroup"), "(",
- protowirePackage.Ident("Number"), "(", f.Desc.Number(), "), ",
- protowirePackage.Ident("SizeVarint"), "(", name, "[i]))")
- }
- g.P("}")
- case f.Desc.IsList():
- if m.RepeatedDouble {
- g.P("n, _ = proto.Repeated", m.Prefix, "Size(", f.Desc.Number(), ", ", name, ")")
- g.P("size += n")
- } else {
- g.P("size += proto.Repeated", m.Prefix, "Size(", f.Desc.Number(), ", ", name, ")")
- }
- default:
- g.P("size += proto.", m.Prefix, "Size(", f.Desc.Number(), ", ", name, ")")
- }
-}
-
-func emitFieldMarshal(g *protogen.GeneratedFile, f *protogen.Field) {
- m := marshalers[f.Desc.Kind()]
- if m.Prefix == "" {
- g.P("// FIXME missing field marshaler: ", f.GoName, " of type ", f.Desc.Kind().String())
- g.P(`panic("unimplemented")`)
- return
- }
-
- name := castFieldName(f)
- if f.Oneof != nil {
- name = "x." + f.Oneof.GoName
- g.P("if inner, ok := ", name, ".(*", f.GoIdent.GoName, "); ok {")
- defer g.P("}")
- name = "inner." + f.GoName
- }
-
- prefix := m.Prefix
- if f.Desc.IsList() {
- prefix = "Repeated" + m.Prefix
- }
- switch {
- case f.Desc.IsList() && (f.Desc.Kind() == protoreflect.MessageKind || f.Desc.Kind() == protoreflect.Uint64Kind && !f.Desc.IsPacked()):
- g.P("for i := range ", name, "{")
- if f.Desc.Kind() == protoreflect.MessageKind {
- g.P("offset += proto.NestedStructureMarshal(", f.Desc.Number(), ", buf[offset:], ", name, "[i])")
- } else {
- if f.Desc.Kind() != protoreflect.Uint64Kind {
- panic("only uint64 unpacked primitive is supported")
- }
- g.P("{")
- g.P("prefix := ", protowirePackage.Ident("EncodeTag"), "(",
- protowirePackage.Ident("Number"), "(", f.Desc.Number(), "), ",
- protowirePackage.Ident("VarintType"), ")")
- g.P("offset += ", binaryPackage.Ident("PutUvarint"), "(buf[offset:], uint64(prefix))")
- g.P("offset += ", binaryPackage.Ident("PutUvarint"), "(buf[offset:], ", name, "[i])")
- g.P("}")
- }
- g.P("}")
- case f.Desc.IsList():
- g.P("offset += proto.Repeated", m.Prefix, "Marshal(", f.Desc.Number(), ", buf[offset:], ", name, ")")
- default:
- g.P("offset += proto.", prefix, "Marshal(", f.Desc.Number(), ", buf[offset:], ", name, ")")
- }
-}
-
-func castFieldName(f *protogen.Field) string {
- name := "x." + f.GoName
- if f.Desc.Kind() != protoreflect.EnumKind {
- return name
- }
- return "int32(" + name + ")"
-}
-
-type marshalerDesc struct {
- Prefix string
- RepeatedDouble bool
-}
-
-// Unused kinds are commented.
-var marshalers = map[protoreflect.Kind]marshalerDesc{
- protoreflect.BoolKind: {Prefix: "Bool"},
- protoreflect.EnumKind: {Prefix: "Enum"},
-
- protoreflect.Int32Kind: {Prefix: "Int32", RepeatedDouble: true},
- // protoreflect.Sint32Kind: "",
- protoreflect.Uint32Kind: {Prefix: "UInt32", RepeatedDouble: true},
- protoreflect.Int64Kind: {Prefix: "Int64", RepeatedDouble: true},
- // protoreflect.Sint64Kind: "",
- protoreflect.Uint64Kind: {Prefix: "UInt64", RepeatedDouble: true},
- // protoreflect.Sfixed32Kind: "",
- protoreflect.Fixed32Kind: {Prefix: "Fixed32", RepeatedDouble: true},
- // protoreflect.FloatKind: "",
- // protoreflect.Sfixed64Kind: "",
- protoreflect.Fixed64Kind: {Prefix: "Fixed64", RepeatedDouble: true},
- protoreflect.DoubleKind: {Prefix: "Float64"},
- protoreflect.StringKind: {Prefix: "String"},
- protoreflect.BytesKind: {Prefix: "Bytes"},
- protoreflect.MessageKind: {Prefix: "NestedStructure"},
- // protoreflect.GroupKind: "",
-}
-
-func sortFields(fs []*protogen.Field) []*protogen.Field {
- res := make([]*protogen.Field, len(fs))
- copy(res, fs)
- sort.Slice(res, func(i, j int) bool {
- return res[i].Desc.Number() < res[j].Desc.Number()
- })
- return res
-}
diff --git a/util/signature/data.go b/util/signature/data.go
index 5e7c310..62c3eaf 100644
--- a/util/signature/data.go
+++ b/util/signature/data.go
@@ -63,12 +63,6 @@ func SignDataWithHandler(key *ecdsa.PrivateKey, src DataSource, handler KeySigna
}
func VerifyDataWithSource(dataSrc DataSource, sigSrc KeySignatureSource, opts ...SignOption) error {
- cfg := defaultCfg()
-
- for i := range opts {
- opts[i](cfg)
- }
-
buffer := buffersPool.Get(uint32(dataSrc.SignedDataSize()))
defer buffersPool.Put(buffer)
@@ -77,7 +71,7 @@ func VerifyDataWithSource(dataSrc DataSource, sigSrc KeySignatureSource, opts ..
return err
}
- return verify(cfg, data, sigSrc())
+ return VerifyDataSlice(data, sigSrc, opts...)
}
func SignData(key *ecdsa.PrivateKey, v DataWithSignature, opts ...SignOption) error {
@@ -87,3 +81,13 @@ func SignData(key *ecdsa.PrivateKey, v DataWithSignature, opts ...SignOption) er
func VerifyData(src DataWithSignature, opts ...SignOption) error {
return VerifyDataWithSource(src, src.GetSignature, opts...)
}
+
+func VerifyDataSlice(data []byte, sigSrc KeySignatureSource, opts ...SignOption) error {
+ cfg := defaultCfg()
+
+ for i := range opts {
+ opts[i](cfg)
+ }
+
+ return verify(cfg, data, sigSrc())
+}
From 7be31eb84738fc9094a8de07035b8cab44c92579 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Fri, 16 Aug 2024 11:08:47 +0300
Subject: [PATCH 03/42] [#77] protogen: Add tests for JSON format
Signed-off-by: Evgenii Stratonikov
---
util/proto/marshal_test.go | 101 +++++++++++++++++++++++++------------
1 file changed, 68 insertions(+), 33 deletions(-)
diff --git a/util/proto/marshal_test.go b/util/proto/marshal_test.go
index e565b7c..d5758f2 100644
--- a/util/proto/marshal_test.go
+++ b/util/proto/marshal_test.go
@@ -8,6 +8,7 @@ import (
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/test"
generated "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/test/custom"
"github.com/stretchr/testify/require"
+ "google.golang.org/protobuf/encoding/protojson"
goproto "google.golang.org/protobuf/proto"
)
@@ -51,33 +52,64 @@ func TestStableMarshalSingle(t *testing.T) {
}
for _, tc := range marshalCases {
t.Run(tc.name, func(t *testing.T) {
- r := tc.input.MarshalProtobuf(nil)
- require.Equal(t, len(r), tc.input.StableSize())
- require.NotEmpty(t, r)
+ t.Run("proto", func(t *testing.T) {
+ r := tc.input.MarshalProtobuf(nil)
+ require.Equal(t, len(r), tc.input.StableSize())
+ require.NotEmpty(t, r)
- var actual test.Primitives
- require.NoError(t, goproto.Unmarshal(r, &actual))
+ var actual test.Primitives
+ require.NoError(t, goproto.Unmarshal(r, &actual))
- var actualFrostfs generated.Primitives
- require.NoError(t, actualFrostfs.UnmarshalProtobuf(r))
- require.Equal(t, tc.input, &actualFrostfs)
+ var actualFrostfs generated.Primitives
+ require.NoError(t, actualFrostfs.UnmarshalProtobuf(r))
+ require.Equal(t, tc.input, &actualFrostfs)
- // Compare each field directly, because proto-generated code has private fields.
- require.Equal(t, tc.input.FieldA, actual.FieldA)
- require.Equal(t, tc.input.FieldB, actual.FieldB)
- require.Equal(t, tc.input.FieldC, actual.FieldC)
- require.Equal(t, tc.input.FieldD, actual.FieldD)
- require.Equal(t, tc.input.FieldE, actual.FieldE)
- require.Equal(t, tc.input.FieldF, actual.FieldF)
- require.Equal(t, tc.input.FieldG, actual.FieldG)
- require.Equal(t, tc.input.FieldI, actual.FieldI)
- require.Equal(t, tc.input.FieldJ, actual.FieldJ)
- require.Equal(t, tc.input.FieldK, actual.FieldK)
- require.EqualValues(t, tc.input.FieldH, actual.FieldH)
+ primitivesEqual(t, tc.input, &actual)
+ })
+ t.Run("json", func(t *testing.T) {
+ r, err := tc.input.MarshalJSON()
+ require.NoError(t, err)
+ require.NotEmpty(t, r)
+
+ var actual test.Primitives
+ require.NoError(t, protojson.Unmarshal(r, &actual))
+
+ var actualFrostfs generated.Primitives
+ require.NoError(t, actualFrostfs.UnmarshalJSON(r))
+ require.Equal(t, tc.input, &actualFrostfs)
+
+ primitivesEqual(t, tc.input, &actual)
+ })
})
}
}
+func primitivesEqual(t *testing.T, a *generated.Primitives, b *test.Primitives) {
+ // Compare each field directly, because proto-generated code has private fields.
+ require.Equal(t, a.FieldA, b.FieldA)
+ require.Equal(t, a.FieldB, b.FieldB)
+ require.Equal(t, a.FieldC, b.FieldC)
+ require.Equal(t, a.FieldD, b.FieldD)
+ require.Equal(t, a.FieldE, b.FieldE)
+ require.Equal(t, a.FieldF, b.FieldF)
+ require.Equal(t, a.FieldG, b.FieldG)
+ require.Equal(t, a.FieldI, b.FieldI)
+ require.Equal(t, a.FieldJ, b.FieldJ)
+ require.Equal(t, a.FieldK, b.FieldK)
+ require.EqualValues(t, a.FieldH, b.FieldH)
+}
+
+func repPrimitivesEqual(t *testing.T, a *generated.RepPrimitives, b *test.RepPrimitives) {
+ // Compare each field directly, because proto-generated code has private fields.
+ require.Equal(t, a.FieldA, b.FieldA)
+ require.Equal(t, a.FieldB, b.FieldB)
+ require.Equal(t, a.FieldC, b.FieldC)
+ require.Equal(t, a.FieldD, b.FieldD)
+ require.Equal(t, a.FieldE, b.FieldE)
+ require.Equal(t, a.FieldF, b.FieldF)
+ require.Equal(t, a.FieldFu, b.FieldFu)
+}
+
func randIntSlice[T protoInt](n int, includeZero bool) []T {
r := make([]T, n)
if n == 0 {
@@ -142,21 +174,24 @@ func TestStableMarshalRep(t *testing.T) {
}
for _, tc := range marshalCases {
t.Run(tc.name, func(t *testing.T) {
- r := tc.input.MarshalProtobuf(nil)
- require.Equal(t, len(r), tc.input.StableSize())
- require.NotEmpty(t, r)
+ t.Run("proto", func(t *testing.T) {
+ r := tc.input.MarshalProtobuf(nil)
+ require.Equal(t, len(r), tc.input.StableSize())
+ require.NotEmpty(t, r)
- var actual test.RepPrimitives
- require.NoError(t, goproto.Unmarshal(r, &actual))
+ var actual test.RepPrimitives
+ require.NoError(t, goproto.Unmarshal(r, &actual))
+ repPrimitivesEqual(t, tc.input, &actual)
+ })
+ t.Run("json", func(t *testing.T) {
+ r, err := tc.input.MarshalJSON()
+ require.NoError(t, err)
+ require.NotEmpty(t, r)
- // Compare each field directly, because proto-generated code has private fields.
- require.Equal(t, tc.input.FieldA, actual.FieldA)
- require.Equal(t, tc.input.FieldB, actual.FieldB)
- require.Equal(t, tc.input.FieldC, actual.FieldC)
- require.Equal(t, tc.input.FieldD, actual.FieldD)
- require.Equal(t, tc.input.FieldE, actual.FieldE)
- require.Equal(t, tc.input.FieldF, actual.FieldF)
- require.Equal(t, tc.input.FieldFu, actual.FieldFu)
+ var actual test.RepPrimitives
+ require.NoError(t, protojson.Unmarshal(r, &actual))
+ repPrimitivesEqual(t, tc.input, &actual)
+ })
})
}
}
From a43110e36326a60466080b458ca82172dbfc81ef Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Fri, 16 Aug 2024 17:11:08 +0300
Subject: [PATCH 04/42] [#77] Makefile: Mark protogen as .PHONY
Signed-off-by: Evgenii Stratonikov
---
Makefile | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Makefile b/Makefile
index 7ed6954..271036a 100755
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@ PROTOBUF_DIR ?= $(abspath $(BIN))/protobuf
PROTOC_DIR ?= $(PROTOBUF_DIR)/protoc-v$(PROTOC_VERSION)
PROTOC_GEN_GO_DIR ?= $(PROTOBUF_DIR)/protoc-gen-go-$(PROTOC_GEN_GO_VERSION)
-.PHONY: dep fmts fumpt imports protoc test lint version help
+.PHONY: dep fmts fumpt imports protoc test lint version help $(BIN)/protogen protoc-test
# Pull go dependencies
dep:
@@ -72,12 +72,12 @@ protoc:
--go-grpc_out=. --go-grpc_opt=paths=source_relative $$f; \
done
-protogen:
+$(BIN)/protogen:
@go build -v -trimpath \
-o $(BIN)/protogen \
./util/protogen
-protoc-test: protoc protogen
+protoc-test: protoc $(BIN)/protogen
@$(PROTOC_DIR)/bin/protoc \
--plugin=protoc-gen-go-frostfs=$(abspath $(BIN)/protogen) \
--go-frostfs_opt=Mutil/proto/test/test.proto=git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/test/custom \
From 33653962b72a841a024f81dcec95adfd01027e0e Mon Sep 17 00:00:00 2001
From: Ekaterina Lebedeva
Date: Wed, 21 Aug 2024 17:22:56 +0300
Subject: [PATCH 05/42] [#1316] go.mod: Bump go version to 1.22
Signed-off-by: Ekaterina Lebedeva
---
.forgejo/workflows/dco.yml | 2 +-
.forgejo/workflows/tests.yml | 6 +++---
go.mod | 2 +-
go.sum | 1 +
4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/.forgejo/workflows/dco.yml b/.forgejo/workflows/dco.yml
index 9aa0d31..2374802 100644
--- a/.forgejo/workflows/dco.yml
+++ b/.forgejo/workflows/dco.yml
@@ -13,7 +13,7 @@ jobs:
- name: Setup Go
uses: actions/setup-go@v3
with:
- go-version: '1.21'
+ go-version: '1.23'
- name: Run commit format checker
uses: https://git.frostfs.info/TrueCloudLab/dco-go@v3
diff --git a/.forgejo/workflows/tests.yml b/.forgejo/workflows/tests.yml
index 2d44d34..7950b1c 100644
--- a/.forgejo/workflows/tests.yml
+++ b/.forgejo/workflows/tests.yml
@@ -11,7 +11,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
- go-version: '1.20'
+ go-version: '1.23'
cache: true
- name: golangci-lint
@@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- go_versions: [ '1.19', '1.20' ]
+ go_versions: [ '1.22', '1.23' ]
fail-fast: false
steps:
- uses: actions/checkout@v3
@@ -47,7 +47,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v3
with:
- go-version: '1.20'
+ go-version: '1.23'
cache: true
- name: Run tests
diff --git a/go.mod b/go.mod
index 13fa1b7..a241dd5 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
module git.frostfs.info/TrueCloudLab/frostfs-api-go/v2
-go 1.20
+go 1.22
require (
git.frostfs.info/TrueCloudLab/frostfs-crypto v0.6.0
diff --git a/go.sum b/go.sum
index 620642f..83963fe 100644
--- a/go.sum
+++ b/go.sum
@@ -8,6 +8,7 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
+github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
From c1b5f46f98a8a6ac7fc04f64633f66d39a8aaf33 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Mon, 26 Aug 2024 09:51:28 +0300
Subject: [PATCH 06/42] [#107] protogen: Remove unused parameter
Signed-off-by: Evgenii Stratonikov
---
util/protogen/main.go | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/util/protogen/main.go b/util/protogen/main.go
index bfce1bf..8fdd666 100644
--- a/util/protogen/main.go
+++ b/util/protogen/main.go
@@ -2,8 +2,6 @@ package main
import (
"flag"
- "fmt"
- "os"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/protogen/internalgengo"
"google.golang.org/protobuf/compiler/protogen"
@@ -12,18 +10,10 @@ import (
func main() {
var flags flag.FlagSet
genFuzz := flags.Bool("fuzz", false, "generate fuzz tests")
- yamlConfigPath := flags.String("config", "", "path to the configuration")
protogen.Options{
ParamFunc: flags.Set,
}.Run(func(gen *protogen.Plugin) error {
- if *yamlConfigPath != "" {
- s, e := os.Getwd()
- fmt.Fprintln(os.Stderr, s, e)
- data, err := os.ReadFile(*yamlConfigPath)
- fmt.Fprintln(os.Stderr, string(data), err)
- }
-
for _, f := range gen.Files {
if f.Generate {
internalgengo.GenerateFile(gen, f)
From 61f6f0f4a207c7e58b6573329a21d81cdee1091f Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Mon, 26 Aug 2024 14:14:38 +0300
Subject: [PATCH 07/42] [#107] proto/test: Regenerate *.pb.go
Signed-off-by: Evgenii Stratonikov
---
util/proto/test/custom/test_frostfs.pb.go | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index 28a3044..c99234e 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -18,9 +18,9 @@ import (
type Primitives_SomeEnum int32
const (
- Primitives_UNKNOWN = 0
- Primitives_POSITIVE = 1
- Primitives_NEGATIVE = -1
+ Primitives_UNKNOWN Primitives_SomeEnum = 0
+ Primitives_POSITIVE Primitives_SomeEnum = 1
+ Primitives_NEGATIVE Primitives_SomeEnum = -1
)
var (
From f484ce6b0bfb74d77b1af162c462e4acc6ddcf5b Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Mon, 26 Aug 2024 14:15:00 +0300
Subject: [PATCH 08/42] [#107] Makefile: Generate standard protobuf bindings
for tests
It was removed accidentally during transition.
Signed-off-by: Evgenii Stratonikov
---
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index 271036a..abcabc7 100755
--- a/Makefile
+++ b/Makefile
@@ -79,6 +79,7 @@ $(BIN)/protogen:
protoc-test: protoc $(BIN)/protogen
@$(PROTOC_DIR)/bin/protoc \
+ --go_out=. --go_opt=paths=source_relative \
--plugin=protoc-gen-go-frostfs=$(abspath $(BIN)/protogen) \
--go-frostfs_opt=Mutil/proto/test/test.proto=git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/test/custom \
--go-frostfs_opt=module=git.frostfs.info/TrueCloudLab/frostfs-api-go/v2 \
From 4a00ef946fdf8e82cc9dce7313c63db825adea4b Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Mon, 26 Aug 2024 14:16:10 +0300
Subject: [PATCH 09/42] [#107] protogen: Fix oneof getter scalar default value
Signed-off-by: Evgenii Stratonikov
---
util/protogen/internalgengo/file.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util/protogen/internalgengo/file.go b/util/protogen/internalgengo/file.go
index b5b351c..cd54fa0 100644
--- a/util/protogen/internalgengo/file.go
+++ b/util/protogen/internalgengo/file.go
@@ -148,7 +148,7 @@ func emitOneofGettersSetters(g *protogen.GeneratedFile, msg *protogen.Message, f
g.P("}")
ft := fieldType(g, ff)
- emitGetterSetter(g, ff.GoIdent.GoName, ff.GoName, ft.String(), "nil")
+ emitGetterSetter(g, ff.GoIdent.GoName, ff.GoName, ft.String(), fieldDefaultValue(ff))
}
}
From 937a53683a3c083f9ab5d970c205200d10c058bf Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Mon, 26 Aug 2024 14:19:28 +0300
Subject: [PATCH 10/42] [#107] protogen: Fix oneof JSON marshaling
Signed-off-by: Evgenii Stratonikov
---
util/protogen/internalgengo/json.go | 2 --
1 file changed, 2 deletions(-)
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
index ad43fc8..4ae24e7 100644
--- a/util/protogen/internalgengo/json.go
+++ b/util/protogen/internalgengo/json.go
@@ -159,8 +159,6 @@ func emitJSONMarshal(g *protogen.GeneratedFile, msg *protogen.Message) {
g.P("case *", ff.GoIdent, ":")
emitJSONFieldWrite(g, ff, "xx", i == 0)
}
- g.P("default:")
- g.P(`out.RawString("null")`)
g.P("}")
continue
}
From 866db105ed8d64e9218d94991a3707dfec39efa8 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Mon, 26 Aug 2024 14:33:18 +0300
Subject: [PATCH 11/42] [#107] protogen: Unify oneof getters with default
protoc plugin
Signed-off-by: Evgenii Stratonikov
---
util/protogen/internalgengo/file.go | 19 +++++++------------
1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/util/protogen/internalgengo/file.go b/util/protogen/internalgengo/file.go
index cd54fa0..ff1c830 100644
--- a/util/protogen/internalgengo/file.go
+++ b/util/protogen/internalgengo/file.go
@@ -126,23 +126,18 @@ func emitOneofGettersSetters(g *protogen.GeneratedFile, msg *protogen.Message, f
// For some reason protoc generates different code for oneof message/non-message fields:
// 1. For message we have 2 level struct wrapping and setters use inner type.
// 2. For other types we also have 2 level wrapping, but setters use outer type.
+ ft := fieldType(g, ff)
+
+ g.P("func (x *", msg.GoIdent.GoName, ") Get", ff.GoName, "() ", ft, " {")
+ g.P("if xx, ok := x.Get", ff.Oneof.GoName, "().(*", ff.GoIdent, "); ok { return xx.", ff.GoName, " }")
+ g.P("return ", fieldDefaultValue(ff))
+ g.P("}")
+
if ff.Desc.Kind() == protoreflect.MessageKind {
- ft := fieldType(g, ff)
-
- g.P("func (x *", msg.GoIdent.GoName, ") Get", ff.GoName, "() ", ft, " {")
- g.P("if xx, ok := x.Get", ff.Oneof.GoName, "().(*", ff.GoIdent, "); ok { return xx.", ff.GoName, " }")
- g.P("return nil")
- g.P("}")
-
g.P("func (x *", msg.GoIdent.GoName, ") Set", ff.GoName, "(v ", ft, ") {")
g.P("x.", ff.Oneof.GoName, " = &", ff.GoIdent, "{", ff.GoName, ": v}")
g.P("}")
} else {
- g.P("func (x *", msg.GoIdent.GoName, ") Get", ff.GoName, "() *", ff.GoIdent, " {")
- g.P("if xx, ok := x.Get", ff.Oneof.GoName, "().(*", ff.GoIdent, "); ok { return xx }")
- g.P("return nil")
- g.P("}")
-
g.P("func (x *", msg.GoIdent.GoName, ") Set", ff.GoName, "(v *", ff.GoIdent, ") {")
g.P("x.", ff.Oneof.GoName, " = v")
g.P("}")
From 981dc785f34aaff6b26ee6a24f460f58bba02596 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Mon, 26 Aug 2024 14:33:30 +0300
Subject: [PATCH 12/42] [#107] proto/test: Add oneof test
Signed-off-by: Evgenii Stratonikov
---
util/proto/marshal_test.go | 5 +
util/proto/test/custom/test_frostfs.pb.go | 297 ++++++++++++++++++++++
util/proto/test/test.pb.go | 186 ++++++++++++--
util/proto/test/test.proto | 8 +
4 files changed, 469 insertions(+), 27 deletions(-)
diff --git a/util/proto/marshal_test.go b/util/proto/marshal_test.go
index d5758f2..5d887ce 100644
--- a/util/proto/marshal_test.go
+++ b/util/proto/marshal_test.go
@@ -49,6 +49,8 @@ func TestStableMarshalSingle(t *testing.T) {
{name: "fixed32", input: &generated.Primitives{FieldK: nonZero[uint32]()}},
{name: "enum, positive", input: &generated.Primitives{FieldH: generated.Primitives_POSITIVE}},
{name: "enum, negative", input: &generated.Primitives{FieldH: generated.Primitives_NEGATIVE}},
+ {name: "oneof, first", input: &generated.Primitives{FieldM: &generated.Primitives_FieldMa{FieldMa: []byte{4, 2}}}},
+ {name: "oneof, second", input: &generated.Primitives{FieldM: &generated.Primitives_FieldMe{FieldMe: nonZero[uint32]()}}},
}
for _, tc := range marshalCases {
t.Run(tc.name, func(t *testing.T) {
@@ -97,6 +99,9 @@ func primitivesEqual(t *testing.T, a *generated.Primitives, b *test.Primitives)
require.Equal(t, a.FieldJ, b.FieldJ)
require.Equal(t, a.FieldK, b.FieldK)
require.EqualValues(t, a.FieldH, b.FieldH)
+ require.Equal(t, a.GetFieldMa(), b.GetFieldMa())
+ require.Equal(t, a.GetFieldMe(), b.GetFieldMe())
+ require.Equal(t, a.GetFieldAux().GetInnerField(), b.GetFieldAux().GetInnerField())
}
func repPrimitivesEqual(t *testing.T, a *generated.RepPrimitives, b *test.RepPrimitives) {
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index c99234e..b1d2cf2 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -50,6 +50,135 @@ func (x *Primitives_SomeEnum) FromString(s string) bool {
return false
}
+type Primitives_Aux struct {
+ InnerField uint32 `json:"innerField"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*Primitives_Aux)(nil)
+ _ encoding.ProtoUnmarshaler = (*Primitives_Aux)(nil)
+ _ json.Marshaler = (*Primitives_Aux)(nil)
+ _ json.Unmarshaler = (*Primitives_Aux)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *Primitives_Aux) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt32Size(1, x.InnerField)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *Primitives_Aux) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *Primitives_Aux) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.InnerField != 0 {
+ mm.AppendUint32(1, x.InnerField)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *Primitives_Aux) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "Primitives_Aux")
+ }
+ switch fc.FieldNum {
+ case 1: // InnerField
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "InnerField")
+ }
+ x.InnerField = data
+ }
+ }
+ return nil
+}
+func (x *Primitives_Aux) GetInnerField() uint32 {
+ if x != nil {
+ return x.InnerField
+ }
+ return 0
+}
+func (x *Primitives_Aux) SetInnerField(v uint32) {
+ x.InnerField = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *Primitives_Aux) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *Primitives_Aux) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"innerField\":"
+ out.RawString(prefix[1:])
+ out.Uint32(x.InnerField)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *Primitives_Aux) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *Primitives_Aux) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "innerField":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.InnerField = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
type Primitives struct {
FieldA []byte `json:"fieldA"`
FieldB string `json:"fieldB"`
@@ -62,6 +191,7 @@ type Primitives struct {
FieldJ float64 `json:"fieldJ"`
FieldK uint32 `json:"fieldK"`
FieldH Primitives_SomeEnum `json:"fieldH"`
+ FieldM isPrimitives_FieldM
}
var (
@@ -89,6 +219,15 @@ func (x *Primitives) StableSize() (size int) {
size += proto.Float64Size(206, x.FieldJ)
size += proto.Fixed32Size(207, x.FieldK)
size += proto.EnumSize(300, int32(x.FieldH))
+ if inner, ok := x.FieldM.(*Primitives_FieldMa); ok {
+ size += proto.BytesSize(401, inner.FieldMa)
+ }
+ if inner, ok := x.FieldM.(*Primitives_FieldMe); ok {
+ size += proto.UInt32Size(402, inner.FieldMe)
+ }
+ if inner, ok := x.FieldM.(*Primitives_FieldAux); ok {
+ size += proto.NestedStructureSize(403, inner.FieldAux)
+ }
return size
}
@@ -138,6 +277,21 @@ func (x *Primitives) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if int32(x.FieldH) != 0 {
mm.AppendInt32(300, int32(x.FieldH))
}
+ if inner, ok := x.FieldM.(*Primitives_FieldMa); ok {
+ if len(inner.FieldMa) != 0 {
+ mm.AppendBytes(401, inner.FieldMa)
+ }
+ }
+ if inner, ok := x.FieldM.(*Primitives_FieldMe); ok {
+ if inner.FieldMe != 0 {
+ mm.AppendUint32(402, inner.FieldMe)
+ }
+ }
+ if inner, ok := x.FieldM.(*Primitives_FieldAux); ok {
+ if inner.FieldAux != nil && inner.FieldAux.StableSize() != 0 {
+ inner.FieldAux.EmitProtobuf(mm.AppendMessage(403))
+ }
+ }
}
// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
@@ -215,6 +369,28 @@ func (x *Primitives) UnmarshalProtobuf(src []byte) (err error) {
return fmt.Errorf("cannot unmarshal field %s", "FieldH")
}
x.FieldH = Primitives_SomeEnum(data)
+ case 401: // FieldMa
+ data, ok := fc.Bytes()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldMa")
+ }
+ x.FieldM = &Primitives_FieldMa{FieldMa: data}
+ case 402: // FieldMe
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldMe")
+ }
+ x.FieldM = &Primitives_FieldMe{FieldMe: data}
+ case 403: // FieldAux
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldAux")
+ }
+ oneofField := &Primitives_FieldAux{FieldAux: new(Primitives_Aux)}
+ if err := oneofField.FieldAux.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
+ x.FieldM = oneofField
}
}
return nil
@@ -318,6 +494,60 @@ func (x *Primitives) GetFieldH() Primitives_SomeEnum {
func (x *Primitives) SetFieldH(v Primitives_SomeEnum) {
x.FieldH = v
}
+func (x *Primitives) GetFieldM() isPrimitives_FieldM {
+ if x != nil {
+ return x.FieldM
+ }
+ return nil
+}
+func (x *Primitives) SetFieldM(v isPrimitives_FieldM) {
+ x.FieldM = v
+}
+func (x *Primitives) GetFieldMa() []byte {
+ if xx, ok := x.GetFieldM().(*Primitives_FieldMa); ok {
+ return xx.FieldMa
+ }
+ return nil
+}
+func (x *Primitives) SetFieldMa(v *Primitives_FieldMa) {
+ x.FieldM = v
+}
+func (x *Primitives_FieldMa) GetFieldMa() []byte {
+ if x != nil {
+ return x.FieldMa
+ }
+ return nil
+}
+func (x *Primitives_FieldMa) SetFieldMa(v []byte) {
+ x.FieldMa = v
+}
+func (x *Primitives) GetFieldMe() uint32 {
+ if xx, ok := x.GetFieldM().(*Primitives_FieldMe); ok {
+ return xx.FieldMe
+ }
+ return 0
+}
+func (x *Primitives) SetFieldMe(v *Primitives_FieldMe) {
+ x.FieldM = v
+}
+func (x *Primitives_FieldMe) GetFieldMe() uint32 {
+ if x != nil {
+ return x.FieldMe
+ }
+ return 0
+}
+func (x *Primitives_FieldMe) SetFieldMe(v uint32) {
+ x.FieldMe = v
+}
+func (x *Primitives) GetFieldAux() *Primitives_Aux {
+ if xx, ok := x.GetFieldM().(*Primitives_FieldAux); ok {
+ return xx.FieldAux
+ }
+ return nil
+}
+func (x *Primitives) SetFieldAux(v *Primitives_Aux) {
+ x.FieldM = &Primitives_FieldAux{FieldAux: v}
+}
// MarshalJSON implements the json.Marshaler interface.
func (x *Primitives) MarshalJSON() ([]byte, error) {
@@ -386,6 +616,26 @@ func (x *Primitives) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString(prefix)
out.Int32(int32(x.FieldH))
}
+ switch xx := x.FieldM.(type) {
+ case *Primitives_FieldMa:
+ {
+ const prefix string = ",\"fieldMa\":"
+ out.RawString(prefix)
+ out.Base64Bytes(xx.FieldMa)
+ }
+ case *Primitives_FieldMe:
+ {
+ const prefix string = ",\"fieldMe\":"
+ out.RawString(prefix)
+ out.Uint32(xx.FieldMe)
+ }
+ case *Primitives_FieldAux:
+ {
+ const prefix string = ",\"fieldAux\":"
+ out.RawString(prefix)
+ xx.FieldAux.MarshalEasyJSON(out)
+ }
+ }
out.RawByte('}')
}
@@ -496,6 +746,31 @@ func (x *Primitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
f = parsedValue
x.FieldH = f
}
+ case "fieldMa":
+ xx := new(Primitives_FieldMa)
+ x.FieldM = xx
+ {
+ var f []byte
+ f = in.Bytes()
+ xx.FieldMa = f
+ }
+ case "fieldMe":
+ xx := new(Primitives_FieldMe)
+ x.FieldM = xx
+ {
+ var f uint32
+ f = in.Uint32()
+ xx.FieldMe = f
+ }
+ case "fieldAux":
+ xx := new(Primitives_FieldAux)
+ x.FieldM = xx
+ {
+ var f *Primitives_Aux
+ f = new(Primitives_Aux)
+ f.UnmarshalEasyJSON(in)
+ xx.FieldAux = f
+ }
}
in.WantComma()
}
@@ -505,6 +780,28 @@ func (x *Primitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
}
+type isPrimitives_FieldM interface {
+ isPrimitives_FieldM()
+}
+
+type Primitives_FieldMa struct {
+ FieldMa []byte
+}
+
+type Primitives_FieldMe struct {
+ FieldMe uint32
+}
+
+type Primitives_FieldAux struct {
+ FieldAux *Primitives_Aux
+}
+
+func (*Primitives_FieldMa) isPrimitives_FieldM() {}
+
+func (*Primitives_FieldMe) isPrimitives_FieldM() {}
+
+func (*Primitives_FieldAux) isPrimitives_FieldM() {}
+
type RepPrimitives struct {
FieldA [][]byte `json:"fieldA"`
FieldB []string `json:"fieldB"`
diff --git a/util/proto/test/test.pb.go b/util/proto/test/test.pb.go
index 57f7fb0..de8ec65 100644
--- a/util/proto/test/test.pb.go
+++ b/util/proto/test/test.pb.go
@@ -85,6 +85,12 @@ type Primitives struct {
FieldJ float64 `protobuf:"fixed64,206,opt,name=field_j,json=fieldJ,proto3" json:"field_j,omitempty"`
FieldK uint32 `protobuf:"fixed32,207,opt,name=field_k,json=fieldK,proto3" json:"field_k,omitempty"`
FieldH Primitives_SomeEnum `protobuf:"varint,300,opt,name=field_h,json=fieldH,proto3,enum=test.Primitives_SomeEnum" json:"field_h,omitempty"`
+ // Types that are assignable to FieldM:
+ //
+ // *Primitives_FieldMa
+ // *Primitives_FieldMe
+ // *Primitives_FieldAux
+ FieldM isPrimitives_FieldM `protobuf_oneof:"field_m"`
}
func (x *Primitives) Reset() {
@@ -196,6 +202,56 @@ func (x *Primitives) GetFieldH() Primitives_SomeEnum {
return Primitives_UNKNOWN
}
+func (m *Primitives) GetFieldM() isPrimitives_FieldM {
+ if m != nil {
+ return m.FieldM
+ }
+ return nil
+}
+
+func (x *Primitives) GetFieldMa() []byte {
+ if x, ok := x.GetFieldM().(*Primitives_FieldMa); ok {
+ return x.FieldMa
+ }
+ return nil
+}
+
+func (x *Primitives) GetFieldMe() uint32 {
+ if x, ok := x.GetFieldM().(*Primitives_FieldMe); ok {
+ return x.FieldMe
+ }
+ return 0
+}
+
+func (x *Primitives) GetFieldAux() *Primitives_Aux {
+ if x, ok := x.GetFieldM().(*Primitives_FieldAux); ok {
+ return x.FieldAux
+ }
+ return nil
+}
+
+type isPrimitives_FieldM interface {
+ isPrimitives_FieldM()
+}
+
+type Primitives_FieldMa struct {
+ FieldMa []byte `protobuf:"bytes,401,opt,name=field_ma,json=fieldMa,proto3,oneof"`
+}
+
+type Primitives_FieldMe struct {
+ FieldMe uint32 `protobuf:"varint,402,opt,name=field_me,json=fieldMe,proto3,oneof"`
+}
+
+type Primitives_FieldAux struct {
+ FieldAux *Primitives_Aux `protobuf:"bytes,403,opt,name=field_aux,json=fieldAux,proto3,oneof"`
+}
+
+func (*Primitives_FieldMa) isPrimitives_FieldM() {}
+
+func (*Primitives_FieldMe) isPrimitives_FieldM() {}
+
+func (*Primitives_FieldAux) isPrimitives_FieldM() {}
+
type RepPrimitives struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -291,12 +347,59 @@ func (x *RepPrimitives) GetFieldFu() []uint64 {
return nil
}
+type Primitives_Aux struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ InnerField uint32 `protobuf:"varint,1,opt,name=inner_field,json=innerField,proto3" json:"inner_field,omitempty"`
+}
+
+func (x *Primitives_Aux) Reset() {
+ *x = Primitives_Aux{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_util_proto_test_test_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Primitives_Aux) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Primitives_Aux) ProtoMessage() {}
+
+func (x *Primitives_Aux) ProtoReflect() protoreflect.Message {
+ mi := &file_util_proto_test_test_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 Primitives_Aux.ProtoReflect.Descriptor instead.
+func (*Primitives_Aux) Descriptor() ([]byte, []int) {
+ return file_util_proto_test_test_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *Primitives_Aux) GetInnerField() uint32 {
+ if x != nil {
+ return x.InnerField
+ }
+ return 0
+}
+
var File_util_proto_test_test_proto protoreflect.FileDescriptor
var file_util_proto_test_test_proto_rawDesc = []byte{
0x0a, 0x1a, 0x75, 0x74, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x65, 0x73,
0x74, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x74, 0x65,
- 0x73, 0x74, 0x22, 0x81, 0x03, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65,
+ 0x73, 0x74, 0x22, 0xa6, 0x04, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65,
0x73, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0c, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69,
0x65, 0x6c, 0x64, 0x5f, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65,
@@ -316,25 +419,35 @@ var file_util_proto_test_test_proto_rawDesc = []byte{
0x6c, 0x64, 0x4b, 0x12, 0x33, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x68, 0x18, 0xac,
0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x69,
0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x53, 0x6f, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d,
- 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x22, 0x3c, 0x0a, 0x08, 0x53, 0x6f, 0x6d, 0x65,
- 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
- 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12,
- 0x15, 0x0a, 0x08, 0x4e, 0x45, 0x47, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x22, 0xc4, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x50, 0x72,
- 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c,
- 0x64, 0x5f, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64,
- 0x41, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x18, 0x02, 0x20, 0x03,
- 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69,
- 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x65,
- 0x6c, 0x64, 0x43, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x64, 0x18, 0x04,
- 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x12, 0x17, 0x0a, 0x07,
- 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x66,
- 0x69, 0x65, 0x6c, 0x64, 0x45, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66,
- 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x12, 0x1d,
- 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x75, 0x18, 0x07, 0x20, 0x03, 0x28, 0x04,
- 0x42, 0x02, 0x10, 0x00, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x75, 0x42, 0x11, 0x5a,
- 0x0f, 0x75, 0x74, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74, 0x65, 0x73, 0x74,
- 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x48, 0x12, 0x1c, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c,
+ 0x64, 0x5f, 0x6d, 0x61, 0x18, 0x91, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x66,
+ 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x12, 0x1c, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f,
+ 0x6d, 0x65, 0x18, 0x92, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x66, 0x69, 0x65,
+ 0x6c, 0x64, 0x4d, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x75,
+ 0x78, 0x18, 0x93, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e,
+ 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x41, 0x75, 0x78, 0x48, 0x00,
+ 0x52, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x75, 0x78, 0x1a, 0x26, 0x0a, 0x03, 0x41, 0x75,
+ 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x65,
+ 0x6c, 0x64, 0x22, 0x3c, 0x0a, 0x08, 0x53, 0x6f, 0x6d, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0b,
+ 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50,
+ 0x4f, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x08, 0x4e, 0x45, 0x47,
+ 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01,
+ 0x42, 0x09, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x22, 0xc4, 0x01, 0x0a, 0x0d,
+ 0x52, 0x65, 0x70, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x12, 0x17, 0x0a,
+ 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f,
+ 0x62, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x42, 0x12,
+ 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x63, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05,
+ 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c,
+ 0x64, 0x5f, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x44, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x65, 0x18, 0x05, 0x20, 0x03,
+ 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69,
+ 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x65,
+ 0x6c, 0x64, 0x46, 0x12, 0x1d, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x75, 0x18,
+ 0x07, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64,
+ 0x46, 0x75, 0x42, 0x11, 0x5a, 0x0f, 0x75, 0x74, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2f, 0x74, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -350,19 +463,21 @@ func file_util_proto_test_test_proto_rawDescGZIP() []byte {
}
var file_util_proto_test_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_util_proto_test_test_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
+var file_util_proto_test_test_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
var file_util_proto_test_test_proto_goTypes = []interface{}{
(Primitives_SomeEnum)(0), // 0: test.Primitives.SomeEnum
(*Primitives)(nil), // 1: test.Primitives
(*RepPrimitives)(nil), // 2: test.RepPrimitives
+ (*Primitives_Aux)(nil), // 3: test.Primitives.Aux
}
var file_util_proto_test_test_proto_depIdxs = []int32{
0, // 0: test.Primitives.field_h:type_name -> test.Primitives.SomeEnum
- 1, // [1:1] is the sub-list for method output_type
- 1, // [1:1] is the sub-list for method input_type
- 1, // [1:1] is the sub-list for extension type_name
- 1, // [1:1] is the sub-list for extension extendee
- 0, // [0:1] is the sub-list for field type_name
+ 3, // 1: test.Primitives.field_aux:type_name -> test.Primitives.Aux
+ 2, // [2:2] is the sub-list for method output_type
+ 2, // [2:2] is the sub-list for method input_type
+ 2, // [2:2] is the sub-list for extension type_name
+ 2, // [2:2] is the sub-list for extension extendee
+ 0, // [0:2] is the sub-list for field type_name
}
func init() { file_util_proto_test_test_proto_init() }
@@ -395,6 +510,23 @@ func file_util_proto_test_test_proto_init() {
return nil
}
}
+ file_util_proto_test_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Primitives_Aux); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_util_proto_test_test_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*Primitives_FieldMa)(nil),
+ (*Primitives_FieldMe)(nil),
+ (*Primitives_FieldAux)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
@@ -402,7 +534,7 @@ func file_util_proto_test_test_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_util_proto_test_test_proto_rawDesc,
NumEnums: 1,
- NumMessages: 2,
+ NumMessages: 3,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/util/proto/test/test.proto b/util/proto/test/test.proto
index 14f6ac2..f33be49 100644
--- a/util/proto/test/test.proto
+++ b/util/proto/test/test.proto
@@ -22,6 +22,14 @@ message Primitives {
NEGATIVE = -1;
}
SomeEnum field_h = 300;
+
+ message Aux { uint32 inner_field = 1; }
+
+ oneof field_m {
+ bytes field_ma = 401;
+ uint32 field_me = 402;
+ Aux field_aux = 403;
+ }
}
message RepPrimitives {
From 9e82a5a31a888f44219dac09cc4a6d07ad1a215b Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Mon, 26 Aug 2024 14:36:02 +0300
Subject: [PATCH 13/42] [#107] Regenerate proto files
Signed-off-by: Evgenii Stratonikov
---
ape/grpc/types_frostfs.pb.go | 6 ++----
object/grpc/service_frostfs.pb.go | 20 ++++++--------------
session/grpc/types_frostfs.pb.go | 2 --
3 files changed, 8 insertions(+), 20 deletions(-)
diff --git a/ape/grpc/types_frostfs.pb.go b/ape/grpc/types_frostfs.pb.go
index 1e92f22..216415b 100644
--- a/ape/grpc/types_frostfs.pb.go
+++ b/ape/grpc/types_frostfs.pb.go
@@ -303,9 +303,9 @@ func (x *Chain) GetKind() isChain_Kind {
func (x *Chain) SetKind(v isChain_Kind) {
x.Kind = v
}
-func (x *Chain) GetRaw() *Chain_Raw {
+func (x *Chain) GetRaw() []byte {
if xx, ok := x.GetKind().(*Chain_Raw); ok {
- return xx
+ return xx.Raw
}
return nil
}
@@ -341,8 +341,6 @@ func (x *Chain) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString(prefix[1:])
out.Base64Bytes(xx.Raw)
}
- default:
- out.RawString("null")
}
out.RawByte('}')
}
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
index 08b2860..ce8336a 100644
--- a/object/grpc/service_frostfs.pb.go
+++ b/object/grpc/service_frostfs.pb.go
@@ -739,9 +739,9 @@ func (x *GetResponse_Body) GetInit() *GetResponse_Body_Init {
func (x *GetResponse_Body) SetInit(v *GetResponse_Body_Init) {
x.ObjectPart = &GetResponse_Body_Init_{Init: v}
}
-func (x *GetResponse_Body) GetChunk() *GetResponse_Body_Chunk {
+func (x *GetResponse_Body) GetChunk() []byte {
if xx, ok := x.GetObjectPart().(*GetResponse_Body_Chunk); ok {
- return xx
+ return xx.Chunk
}
return nil
}
@@ -813,8 +813,6 @@ func (x *GetResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString(prefix[1:])
xx.EcInfo.MarshalEasyJSON(out)
}
- default:
- out.RawString("null")
}
out.RawByte('}')
}
@@ -1486,9 +1484,9 @@ func (x *PutRequest_Body) GetInit() *PutRequest_Body_Init {
func (x *PutRequest_Body) SetInit(v *PutRequest_Body_Init) {
x.ObjectPart = &PutRequest_Body_Init_{Init: v}
}
-func (x *PutRequest_Body) GetChunk() *PutRequest_Body_Chunk {
+func (x *PutRequest_Body) GetChunk() []byte {
if xx, ok := x.GetObjectPart().(*PutRequest_Body_Chunk); ok {
- return xx
+ return xx.Chunk
}
return nil
}
@@ -1530,8 +1528,6 @@ func (x *PutRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString(prefix[1:])
out.Base64Bytes(xx.Chunk)
}
- default:
- out.RawString("null")
}
out.RawByte('}')
}
@@ -3674,8 +3670,6 @@ func (x *HeadResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString(prefix[1:])
xx.EcInfo.MarshalEasyJSON(out)
}
- default:
- out.RawString("null")
}
out.RawByte('}')
}
@@ -5706,9 +5700,9 @@ func (x *GetRangeResponse_Body) GetRangePart() isGetRangeResponse_Body_RangePart
func (x *GetRangeResponse_Body) SetRangePart(v isGetRangeResponse_Body_RangePart) {
x.RangePart = v
}
-func (x *GetRangeResponse_Body) GetChunk() *GetRangeResponse_Body_Chunk {
+func (x *GetRangeResponse_Body) GetChunk() []byte {
if xx, ok := x.GetRangePart().(*GetRangeResponse_Body_Chunk); ok {
- return xx
+ return xx.Chunk
}
return nil
}
@@ -5774,8 +5768,6 @@ func (x *GetRangeResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString(prefix[1:])
xx.EcInfo.MarshalEasyJSON(out)
}
- default:
- out.RawString("null")
}
out.RawByte('}')
}
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
index 6a0d75c..af95210 100644
--- a/session/grpc/types_frostfs.pb.go
+++ b/session/grpc/types_frostfs.pb.go
@@ -1121,8 +1121,6 @@ func (x *SessionToken_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString(prefix)
xx.Container.MarshalEasyJSON(out)
}
- default:
- out.RawString("null")
}
out.RawByte('}')
}
From 11e194d274c45c0643518fea052d9467845e5ce6 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 27 Aug 2024 10:50:15 +0300
Subject: [PATCH 14/42] [#108] rpc/message: Add compatibility tests for
marshaling
Signed-off-by: Evgenii Stratonikov
---
rpc/message/test/message.go | 59 +++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/rpc/message/test/message.go b/rpc/message/test/message.go
index 435f20a..1f7097e 100644
--- a/rpc/message/test/message.go
+++ b/rpc/message/test/message.go
@@ -7,6 +7,7 @@ import (
"testing"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
+ "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto/encoding"
"github.com/stretchr/testify/require"
)
@@ -68,6 +69,64 @@ func TestRPCMessage(t *testing.T, msgGens ...func(empty bool) message.Message) {
require.Equal(t, bm, bm2)
})
}
+ t.Run("compatibility", func(t *testing.T) {
+ testCompatibility(t, msgGen)
+ })
})
}
}
+
+func testCompatibility(t *testing.T, msgGen func(empty bool) message.Message) {
+ compareBinary := func(t *testing.T, msg message.Message) {
+ am, ok := msg.(binaryMessage)
+ if !ok {
+ t.Skip()
+ }
+
+ a := am.StableMarshal(nil)
+ b := msg.ToGRPCMessage().(encoding.ProtoMarshaler).MarshalProtobuf(nil)
+ if len(a) == 0 {
+ require.Empty(t, b)
+ } else {
+ require.Equal(t, a, b)
+ }
+ }
+ compareJSON := func(t *testing.T, msg message.Message) {
+ am, ok := msg.(jsonMessage)
+ if !ok {
+ t.Skip()
+ }
+
+ a, err := am.MarshalJSON()
+ require.NoError(t, err)
+
+ b, err := json.Marshal(msg.ToGRPCMessage())
+ require.NoError(t, err)
+
+ require.JSONEq(t, string(a), string(b))
+ if len(a) == 0 {
+ require.Empty(t, b)
+ } else {
+ require.Equal(t, a, b)
+ }
+ }
+ t.Run("empty", func(t *testing.T) {
+ t.Skip()
+ msg := msgGen(true)
+ t.Run(fmt.Sprintf("Binary_%T", msg), func(t *testing.T) {
+ compareBinary(t, msg)
+ })
+ t.Run(fmt.Sprintf("JSON_%T", msg), func(t *testing.T) {
+ compareJSON(t, msg)
+ })
+ })
+ t.Run("not empty", func(t *testing.T) {
+ msg := msgGen(false)
+ t.Run(fmt.Sprintf("Binary_%T", msg), func(t *testing.T) {
+ compareBinary(t, msg)
+ })
+ t.Run(fmt.Sprintf("JSON_%T", msg), func(t *testing.T) {
+ compareJSON(t, msg)
+ })
+ })
+}
From 5fece80b42035acef87108d128d2d33b0239f343 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 27 Aug 2024 10:53:43 +0300
Subject: [PATCH 15/42] [#108] protogen: Distinguish between empty and nil
messages
Refs #59
Signed-off-by: Evgenii Stratonikov
---
accounting/grpc/service_frostfs.pb.go | 16 +-
acl/grpc/types_frostfs.pb.go | 26 ++--
apemanager/grpc/service_frostfs.pb.go | 46 +++---
container/grpc/service_frostfs.pb.go | 90 +++++------
container/grpc/types_frostfs.pb.go | 8 +-
lock/grpc/types_frostfs.pb.go | 2 +-
netmap/grpc/service_frostfs.pb.go | 44 +++---
netmap/grpc/types_frostfs.pb.go | 16 +-
object/grpc/service_frostfs.pb.go | 180 +++++++++++-----------
object/grpc/types_frostfs.pb.go | 56 +++----
refs/grpc/types_frostfs.pb.go | 4 +-
rpc/message/test/message.go | 1 -
session/grpc/service_frostfs.pb.go | 14 +-
session/grpc/types_frostfs.pb.go | 54 +++----
status/grpc/types_frostfs.pb.go | 2 +-
tombstone/grpc/types_frostfs.pb.go | 2 +-
util/proto/test/custom/test_frostfs.pb.go | 2 +-
util/protogen/internalgengo/proto.go | 2 +-
18 files changed, 282 insertions(+), 283 deletions(-)
diff --git a/accounting/grpc/service_frostfs.pb.go b/accounting/grpc/service_frostfs.pb.go
index e44d7d4..b70fd27 100644
--- a/accounting/grpc/service_frostfs.pb.go
+++ b/accounting/grpc/service_frostfs.pb.go
@@ -50,7 +50,7 @@ func (x *BalanceRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ if x.OwnerId != nil {
x.OwnerId.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -205,13 +205,13 @@ func (x *BalanceRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -404,7 +404,7 @@ func (x *BalanceResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Balance != nil && x.Balance.StableSize() != 0 {
+ if x.Balance != nil {
x.Balance.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -559,13 +559,13 @@ func (x *BalanceResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
diff --git a/acl/grpc/types_frostfs.pb.go b/acl/grpc/types_frostfs.pb.go
index e542a19..931f3b3 100644
--- a/acl/grpc/types_frostfs.pb.go
+++ b/acl/grpc/types_frostfs.pb.go
@@ -708,12 +708,12 @@ func (x *EACLRecord) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendInt32(2, int32(x.Action))
}
for i := range x.Filters {
- if x.Filters[i] != nil && x.Filters[i].StableSize() != 0 {
+ if x.Filters[i] != nil {
x.Filters[i].EmitProtobuf(mm.AppendMessage(3))
}
}
for i := range x.Targets {
- if x.Targets[i] != nil && x.Targets[i].StableSize() != 0 {
+ if x.Targets[i] != nil {
x.Targets[i].EmitProtobuf(mm.AppendMessage(4))
}
}
@@ -997,14 +997,14 @@ func (x *EACLTable) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Version != nil && x.Version.StableSize() != 0 {
+ if x.Version != nil {
x.Version.EmitProtobuf(mm.AppendMessage(1))
}
- if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ if x.ContainerId != nil {
x.ContainerId.EmitProtobuf(mm.AppendMessage(2))
}
for i := range x.Records {
- if x.Records[i] != nil && x.Records[i].StableSize() != 0 {
+ if x.Records[i] != nil {
x.Records[i].EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1408,11 +1408,11 @@ func (x *BearerToken_Body_APEOverride) EmitProtobuf(mm *easyproto.MessageMarshal
if x == nil {
return
}
- if x.Target != nil && x.Target.StableSize() != 0 {
+ if x.Target != nil {
x.Target.EmitProtobuf(mm.AppendMessage(1))
}
for i := range x.Chains {
- if x.Chains[i] != nil && x.Chains[i].StableSize() != 0 {
+ if x.Chains[i] != nil {
x.Chains[i].EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -1599,19 +1599,19 @@ func (x *BearerToken_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.EaclTable != nil && x.EaclTable.StableSize() != 0 {
+ if x.EaclTable != nil {
x.EaclTable.EmitProtobuf(mm.AppendMessage(1))
}
- if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ if x.OwnerId != nil {
x.OwnerId.EmitProtobuf(mm.AppendMessage(2))
}
- if x.Lifetime != nil && x.Lifetime.StableSize() != 0 {
+ if x.Lifetime != nil {
x.Lifetime.EmitProtobuf(mm.AppendMessage(3))
}
if x.AllowImpersonate {
mm.AppendBool(4, x.AllowImpersonate)
}
- if x.ApeOverride != nil && x.ApeOverride.StableSize() != 0 {
+ if x.ApeOverride != nil {
x.ApeOverride.EmitProtobuf(mm.AppendMessage(5))
}
}
@@ -1862,10 +1862,10 @@ func (x *BearerToken) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
}
diff --git a/apemanager/grpc/service_frostfs.pb.go b/apemanager/grpc/service_frostfs.pb.go
index 380ba30..c1d28ed 100644
--- a/apemanager/grpc/service_frostfs.pb.go
+++ b/apemanager/grpc/service_frostfs.pb.go
@@ -52,10 +52,10 @@ func (x *AddChainRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Target != nil && x.Target.StableSize() != 0 {
+ if x.Target != nil {
x.Target.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Chain != nil && x.Chain.StableSize() != 0 {
+ if x.Chain != nil {
x.Chain.EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -240,13 +240,13 @@ func (x *AddChainRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -590,13 +590,13 @@ func (x *AddChainResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -791,7 +791,7 @@ func (x *RemoveChainRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Target != nil && x.Target.StableSize() != 0 {
+ if x.Target != nil {
x.Target.EmitProtobuf(mm.AppendMessage(1))
}
if len(x.ChainId) != 0 {
@@ -975,13 +975,13 @@ func (x *RemoveChainRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1291,13 +1291,13 @@ func (x *RemoveChainResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1490,7 +1490,7 @@ func (x *ListChainsRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Target != nil && x.Target.StableSize() != 0 {
+ if x.Target != nil {
x.Target.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -1645,13 +1645,13 @@ func (x *ListChainsRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1847,7 +1847,7 @@ func (x *ListChainsResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Chains {
- if x.Chains[i] != nil && x.Chains[i].StableSize() != 0 {
+ if x.Chains[i] != nil {
x.Chains[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2018,13 +2018,13 @@ func (x *ListChainsResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
diff --git a/container/grpc/service_frostfs.pb.go b/container/grpc/service_frostfs.pb.go
index 7590435..514f03b 100644
--- a/container/grpc/service_frostfs.pb.go
+++ b/container/grpc/service_frostfs.pb.go
@@ -53,10 +53,10 @@ func (x *PutRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Container != nil && x.Container.StableSize() != 0 {
+ if x.Container != nil {
x.Container.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -241,13 +241,13 @@ func (x *PutRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -440,7 +440,7 @@ func (x *PutResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ if x.ContainerId != nil {
x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -595,13 +595,13 @@ func (x *PutResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -796,10 +796,10 @@ func (x *DeleteRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ if x.ContainerId != nil {
x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -984,13 +984,13 @@ func (x *DeleteRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1300,13 +1300,13 @@ func (x *DeleteResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1499,7 +1499,7 @@ func (x *GetRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ if x.ContainerId != nil {
x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -1654,13 +1654,13 @@ func (x *GetRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1857,13 +1857,13 @@ func (x *GetResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Container != nil && x.Container.StableSize() != 0 {
+ if x.Container != nil {
x.Container.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
- if x.SessionToken != nil && x.SessionToken.StableSize() != 0 {
+ if x.SessionToken != nil {
x.SessionToken.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -2078,13 +2078,13 @@ func (x *GetResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -2277,7 +2277,7 @@ func (x *ListRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ if x.OwnerId != nil {
x.OwnerId.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2432,13 +2432,13 @@ func (x *ListRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -2634,7 +2634,7 @@ func (x *ListResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.ContainerIds {
- if x.ContainerIds[i] != nil && x.ContainerIds[i].StableSize() != 0 {
+ if x.ContainerIds[i] != nil {
x.ContainerIds[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2805,13 +2805,13 @@ func (x *ListResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -3004,7 +3004,7 @@ func (x *GetExtendedACLRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler
if x == nil {
return
}
- if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ if x.ContainerId != nil {
x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -3159,13 +3159,13 @@ func (x *GetExtendedACLRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -3362,13 +3362,13 @@ func (x *GetExtendedACLResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshale
if x == nil {
return
}
- if x.Eacl != nil && x.Eacl.StableSize() != 0 {
+ if x.Eacl != nil {
x.Eacl.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
- if x.SessionToken != nil && x.SessionToken.StableSize() != 0 {
+ if x.SessionToken != nil {
x.SessionToken.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -3583,13 +3583,13 @@ func (x *GetExtendedACLResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
diff --git a/container/grpc/types_frostfs.pb.go b/container/grpc/types_frostfs.pb.go
index 3e0d882..dcb9cf4 100644
--- a/container/grpc/types_frostfs.pb.go
+++ b/container/grpc/types_frostfs.pb.go
@@ -222,10 +222,10 @@ func (x *Container) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Version != nil && x.Version.StableSize() != 0 {
+ if x.Version != nil {
x.Version.EmitProtobuf(mm.AppendMessage(1))
}
- if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ if x.OwnerId != nil {
x.OwnerId.EmitProtobuf(mm.AppendMessage(2))
}
if len(x.Nonce) != 0 {
@@ -235,11 +235,11 @@ func (x *Container) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint32(4, x.BasicAcl)
}
for i := range x.Attributes {
- if x.Attributes[i] != nil && x.Attributes[i].StableSize() != 0 {
+ if x.Attributes[i] != nil {
x.Attributes[i].EmitProtobuf(mm.AppendMessage(5))
}
}
- if x.PlacementPolicy != nil && x.PlacementPolicy.StableSize() != 0 {
+ if x.PlacementPolicy != nil {
x.PlacementPolicy.EmitProtobuf(mm.AppendMessage(6))
}
}
diff --git a/lock/grpc/types_frostfs.pb.go b/lock/grpc/types_frostfs.pb.go
index 3012111..52a1a2d 100644
--- a/lock/grpc/types_frostfs.pb.go
+++ b/lock/grpc/types_frostfs.pb.go
@@ -52,7 +52,7 @@ func (x *Lock) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Members {
- if x.Members[i] != nil && x.Members[i].StableSize() != 0 {
+ if x.Members[i] != nil {
x.Members[i].EmitProtobuf(mm.AppendMessage(1))
}
}
diff --git a/netmap/grpc/service_frostfs.pb.go b/netmap/grpc/service_frostfs.pb.go
index 1ce80ff..3d62855 100644
--- a/netmap/grpc/service_frostfs.pb.go
+++ b/netmap/grpc/service_frostfs.pb.go
@@ -167,13 +167,13 @@ func (x *LocalNodeInfoRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -368,10 +368,10 @@ func (x *LocalNodeInfoResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler
if x == nil {
return
}
- if x.Version != nil && x.Version.StableSize() != 0 {
+ if x.Version != nil {
x.Version.EmitProtobuf(mm.AppendMessage(1))
}
- if x.NodeInfo != nil && x.NodeInfo.StableSize() != 0 {
+ if x.NodeInfo != nil {
x.NodeInfo.EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -556,13 +556,13 @@ func (x *LocalNodeInfoResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -872,13 +872,13 @@ func (x *NetworkInfoRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1071,7 +1071,7 @@ func (x *NetworkInfoResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler)
if x == nil {
return
}
- if x.NetworkInfo != nil && x.NetworkInfo.StableSize() != 0 {
+ if x.NetworkInfo != nil {
x.NetworkInfo.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -1226,13 +1226,13 @@ func (x *NetworkInfoResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1542,13 +1542,13 @@ func (x *NetmapSnapshotRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1741,7 +1741,7 @@ func (x *NetmapSnapshotResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshale
if x == nil {
return
}
- if x.Netmap != nil && x.Netmap.StableSize() != 0 {
+ if x.Netmap != nil {
x.Netmap.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -1896,13 +1896,13 @@ func (x *NetmapSnapshotResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
diff --git a/netmap/grpc/types_frostfs.pb.go b/netmap/grpc/types_frostfs.pb.go
index 3bab079..6ecf0fa 100644
--- a/netmap/grpc/types_frostfs.pb.go
+++ b/netmap/grpc/types_frostfs.pb.go
@@ -166,7 +166,7 @@ func (x *Filter) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendString(4, x.Value)
}
for i := range x.Filters {
- if x.Filters[i] != nil && x.Filters[i].StableSize() != 0 {
+ if x.Filters[i] != nil {
x.Filters[i].EmitProtobuf(mm.AppendMessage(5))
}
}
@@ -941,7 +941,7 @@ func (x *PlacementPolicy) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Replicas {
- if x.Replicas[i] != nil && x.Replicas[i].StableSize() != 0 {
+ if x.Replicas[i] != nil {
x.Replicas[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -949,12 +949,12 @@ func (x *PlacementPolicy) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint32(2, x.ContainerBackupFactor)
}
for i := range x.Selectors {
- if x.Selectors[i] != nil && x.Selectors[i].StableSize() != 0 {
+ if x.Selectors[i] != nil {
x.Selectors[i].EmitProtobuf(mm.AppendMessage(3))
}
}
for i := range x.Filters {
- if x.Filters[i] != nil && x.Filters[i].StableSize() != 0 {
+ if x.Filters[i] != nil {
x.Filters[i].EmitProtobuf(mm.AppendMessage(4))
}
}
@@ -1506,7 +1506,7 @@ func (x *NodeInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendString(2, x.Addresses[j])
}
for i := range x.Attributes {
- if x.Attributes[i] != nil && x.Attributes[i].StableSize() != 0 {
+ if x.Attributes[i] != nil {
x.Attributes[i].EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1774,7 +1774,7 @@ func (x *Netmap) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint64(1, x.Epoch)
}
for i := range x.Nodes {
- if x.Nodes[i] != nil && x.Nodes[i].StableSize() != 0 {
+ if x.Nodes[i] != nil {
x.Nodes[i].EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -2112,7 +2112,7 @@ func (x *NetworkConfig) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Parameters {
- if x.Parameters[i] != nil && x.Parameters[i].StableSize() != 0 {
+ if x.Parameters[i] != nil {
x.Parameters[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2276,7 +2276,7 @@ func (x *NetworkInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x.MsPerBlock != 0 {
mm.AppendInt64(3, x.MsPerBlock)
}
- if x.NetworkConfig != nil && x.NetworkConfig.StableSize() != 0 {
+ if x.NetworkConfig != nil {
x.NetworkConfig.EmitProtobuf(mm.AppendMessage(4))
}
}
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
index ce8336a..0bd0111 100644
--- a/object/grpc/service_frostfs.pb.go
+++ b/object/grpc/service_frostfs.pb.go
@@ -53,7 +53,7 @@ func (x *GetRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Address != nil && x.Address.StableSize() != 0 {
+ if x.Address != nil {
x.Address.EmitProtobuf(mm.AppendMessage(1))
}
if x.Raw {
@@ -237,13 +237,13 @@ func (x *GetRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -440,13 +440,13 @@ func (x *GetResponse_Body_Init) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ if x.ObjectId != nil {
x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
- if x.Header != nil && x.Header.StableSize() != 0 {
+ if x.Header != nil {
x.Header.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -651,7 +651,7 @@ func (x *GetResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
if inner, ok := x.ObjectPart.(*GetResponse_Body_Init_); ok {
- if inner.Init != nil && inner.Init.StableSize() != 0 {
+ if inner.Init != nil {
inner.Init.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -661,12 +661,12 @@ func (x *GetResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
}
}
if inner, ok := x.ObjectPart.(*GetResponse_Body_SplitInfo); ok {
- if inner.SplitInfo != nil && inner.SplitInfo.StableSize() != 0 {
+ if inner.SplitInfo != nil {
inner.SplitInfo.EmitProtobuf(mm.AppendMessage(3))
}
}
if inner, ok := x.ObjectPart.(*GetResponse_Body_EcInfo); ok {
- if inner.EcInfo != nil && inner.EcInfo.StableSize() != 0 {
+ if inner.EcInfo != nil {
inner.EcInfo.EmitProtobuf(mm.AppendMessage(4))
}
}
@@ -971,13 +971,13 @@ func (x *GetResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1178,13 +1178,13 @@ func (x *PutRequest_Body_Init) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ if x.ObjectId != nil {
x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
- if x.Header != nil && x.Header.StableSize() != 0 {
+ if x.Header != nil {
x.Header.EmitProtobuf(mm.AppendMessage(3))
}
if len(x.CopiesNumber) != 0 {
@@ -1426,7 +1426,7 @@ func (x *PutRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
if inner, ok := x.ObjectPart.(*PutRequest_Body_Init_); ok {
- if inner.Init != nil && inner.Init.StableSize() != 0 {
+ if inner.Init != nil {
inner.Init.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -1656,13 +1656,13 @@ func (x *PutRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1855,7 +1855,7 @@ func (x *PutResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ if x.ObjectId != nil {
x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2010,13 +2010,13 @@ func (x *PutResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -2209,7 +2209,7 @@ func (x *DeleteRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Address != nil && x.Address.StableSize() != 0 {
+ if x.Address != nil {
x.Address.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2364,13 +2364,13 @@ func (x *DeleteRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -2563,7 +2563,7 @@ func (x *DeleteResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Tombstone != nil && x.Tombstone.StableSize() != 0 {
+ if x.Tombstone != nil {
x.Tombstone.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2718,13 +2718,13 @@ func (x *DeleteResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -2921,7 +2921,7 @@ func (x *HeadRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Address != nil && x.Address.StableSize() != 0 {
+ if x.Address != nil {
x.Address.EmitProtobuf(mm.AppendMessage(1))
}
if x.MainOnly {
@@ -3134,13 +3134,13 @@ func (x *HeadRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -3335,10 +3335,10 @@ func (x *HeaderWithSignature) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Header != nil && x.Header.StableSize() != 0 {
+ if x.Header != nil {
x.Header.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -3513,22 +3513,22 @@ func (x *HeadResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
if inner, ok := x.Head.(*HeadResponse_Body_Header); ok {
- if inner.Header != nil && inner.Header.StableSize() != 0 {
+ if inner.Header != nil {
inner.Header.EmitProtobuf(mm.AppendMessage(1))
}
}
if inner, ok := x.Head.(*HeadResponse_Body_ShortHeader); ok {
- if inner.ShortHeader != nil && inner.ShortHeader.StableSize() != 0 {
+ if inner.ShortHeader != nil {
inner.ShortHeader.EmitProtobuf(mm.AppendMessage(2))
}
}
if inner, ok := x.Head.(*HeadResponse_Body_SplitInfo); ok {
- if inner.SplitInfo != nil && inner.SplitInfo.StableSize() != 0 {
+ if inner.SplitInfo != nil {
inner.SplitInfo.EmitProtobuf(mm.AppendMessage(3))
}
}
if inner, ok := x.Head.(*HeadResponse_Body_EcInfo); ok {
- if inner.EcInfo != nil && inner.EcInfo.StableSize() != 0 {
+ if inner.EcInfo != nil {
inner.EcInfo.EmitProtobuf(mm.AppendMessage(4))
}
}
@@ -3829,13 +3829,13 @@ func (x *HeadResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -4241,14 +4241,14 @@ func (x *SearchRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ if x.ContainerId != nil {
x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
}
if x.Version != 0 {
mm.AppendUint32(2, x.Version)
}
for i := range x.Filters {
- if x.Filters[i] != nil && x.Filters[i].StableSize() != 0 {
+ if x.Filters[i] != nil {
x.Filters[i].EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -4475,13 +4475,13 @@ func (x *SearchRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -4677,7 +4677,7 @@ func (x *SearchResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.IdList {
- if x.IdList[i] != nil && x.IdList[i].StableSize() != 0 {
+ if x.IdList[i] != nil {
x.IdList[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -4848,13 +4848,13 @@ func (x *SearchResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -5211,10 +5211,10 @@ func (x *GetRangeRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Address != nil && x.Address.StableSize() != 0 {
+ if x.Address != nil {
x.Address.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Range != nil && x.Range.StableSize() != 0 {
+ if x.Range != nil {
x.Range.EmitProtobuf(mm.AppendMessage(2))
}
if x.Raw {
@@ -5428,13 +5428,13 @@ func (x *GetRangeRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -5641,12 +5641,12 @@ func (x *GetRangeResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
}
}
if inner, ok := x.RangePart.(*GetRangeResponse_Body_SplitInfo); ok {
- if inner.SplitInfo != nil && inner.SplitInfo.StableSize() != 0 {
+ if inner.SplitInfo != nil {
inner.SplitInfo.EmitProtobuf(mm.AppendMessage(2))
}
}
if inner, ok := x.RangePart.(*GetRangeResponse_Body_EcInfo); ok {
- if inner.EcInfo != nil && inner.EcInfo.StableSize() != 0 {
+ if inner.EcInfo != nil {
inner.EcInfo.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -5911,13 +5911,13 @@ func (x *GetRangeResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -6118,11 +6118,11 @@ func (x *GetRangeHashRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler)
if x == nil {
return
}
- if x.Address != nil && x.Address.StableSize() != 0 {
+ if x.Address != nil {
x.Address.EmitProtobuf(mm.AppendMessage(1))
}
for i := range x.Ranges {
- if x.Ranges[i] != nil && x.Ranges[i].StableSize() != 0 {
+ if x.Ranges[i] != nil {
x.Ranges[i].EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -6397,13 +6397,13 @@ func (x *GetRangeHashRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -6808,13 +6808,13 @@ func (x *GetRangeHashResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -7011,7 +7011,7 @@ func (x *PutSingleRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Object != nil && x.Object.StableSize() != 0 {
+ if x.Object != nil {
x.Object.EmitProtobuf(mm.AppendMessage(1))
}
if len(x.CopiesNumber) != 0 {
@@ -7209,13 +7209,13 @@ func (x *PutSingleRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -7525,13 +7525,13 @@ func (x *PutSingleResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -7726,7 +7726,7 @@ func (x *PatchRequest_Body_Patch) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.SourceRange != nil && x.SourceRange.StableSize() != 0 {
+ if x.SourceRange != nil {
x.SourceRange.EmitProtobuf(mm.AppendMessage(1))
}
if len(x.Chunk) != 0 {
@@ -7896,18 +7896,18 @@ func (x *PatchRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Address != nil && x.Address.StableSize() != 0 {
+ if x.Address != nil {
x.Address.EmitProtobuf(mm.AppendMessage(1))
}
for i := range x.NewAttributes {
- if x.NewAttributes[i] != nil && x.NewAttributes[i].StableSize() != 0 {
+ if x.NewAttributes[i] != nil {
x.NewAttributes[i].EmitProtobuf(mm.AppendMessage(2))
}
}
if x.ReplaceAttributes {
mm.AppendBool(3, x.ReplaceAttributes)
}
- if x.Patch != nil && x.Patch.StableSize() != 0 {
+ if x.Patch != nil {
x.Patch.EmitProtobuf(mm.AppendMessage(4))
}
}
@@ -8163,13 +8163,13 @@ func (x *PatchRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -8362,7 +8362,7 @@ func (x *PatchResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ if x.ObjectId != nil {
x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -8517,13 +8517,13 @@ func (x *PatchResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
diff --git a/object/grpc/types_frostfs.pb.go b/object/grpc/types_frostfs.pb.go
index 492ee48..04a3e29 100644
--- a/object/grpc/types_frostfs.pb.go
+++ b/object/grpc/types_frostfs.pb.go
@@ -139,13 +139,13 @@ func (x *ShortHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Version != nil && x.Version.StableSize() != 0 {
+ if x.Version != nil {
x.Version.EmitProtobuf(mm.AppendMessage(1))
}
if x.CreationEpoch != 0 {
mm.AppendUint64(2, x.CreationEpoch)
}
- if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ if x.OwnerId != nil {
x.OwnerId.EmitProtobuf(mm.AppendMessage(3))
}
if int32(x.ObjectType) != 0 {
@@ -154,10 +154,10 @@ func (x *ShortHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x.PayloadLength != 0 {
mm.AppendUint64(5, x.PayloadLength)
}
- if x.PayloadHash != nil && x.PayloadHash.StableSize() != 0 {
+ if x.PayloadHash != nil {
x.PayloadHash.EmitProtobuf(mm.AppendMessage(6))
}
- if x.HomomorphicHash != nil && x.HomomorphicHash.StableSize() != 0 {
+ if x.HomomorphicHash != nil {
x.HomomorphicHash.EmitProtobuf(mm.AppendMessage(7))
}
}
@@ -646,20 +646,20 @@ func (x *Header_Split) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Parent != nil && x.Parent.StableSize() != 0 {
+ if x.Parent != nil {
x.Parent.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Previous != nil && x.Previous.StableSize() != 0 {
+ if x.Previous != nil {
x.Previous.EmitProtobuf(mm.AppendMessage(2))
}
- if x.ParentSignature != nil && x.ParentSignature.StableSize() != 0 {
+ if x.ParentSignature != nil {
x.ParentSignature.EmitProtobuf(mm.AppendMessage(3))
}
- if x.ParentHeader != nil && x.ParentHeader.StableSize() != 0 {
+ if x.ParentHeader != nil {
x.ParentHeader.EmitProtobuf(mm.AppendMessage(4))
}
for i := range x.Children {
- if x.Children[i] != nil && x.Children[i].StableSize() != 0 {
+ if x.Children[i] != nil {
x.Children[i].EmitProtobuf(mm.AppendMessage(5))
}
}
@@ -973,7 +973,7 @@ func (x *Header_EC) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Parent != nil && x.Parent.StableSize() != 0 {
+ if x.Parent != nil {
x.Parent.EmitProtobuf(mm.AppendMessage(1))
}
if x.Index != 0 {
@@ -991,11 +991,11 @@ func (x *Header_EC) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if len(x.ParentSplitId) != 0 {
mm.AppendBytes(6, x.ParentSplitId)
}
- if x.ParentSplitParentId != nil && x.ParentSplitParentId.StableSize() != 0 {
+ if x.ParentSplitParentId != nil {
x.ParentSplitParentId.EmitProtobuf(mm.AppendMessage(7))
}
for i := range x.ParentAttributes {
- if x.ParentAttributes[i] != nil && x.ParentAttributes[i].StableSize() != 0 {
+ if x.ParentAttributes[i] != nil {
x.ParentAttributes[i].EmitProtobuf(mm.AppendMessage(8))
}
}
@@ -1358,13 +1358,13 @@ func (x *Header) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Version != nil && x.Version.StableSize() != 0 {
+ if x.Version != nil {
x.Version.EmitProtobuf(mm.AppendMessage(1))
}
- if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ if x.ContainerId != nil {
x.ContainerId.EmitProtobuf(mm.AppendMessage(2))
}
- if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ if x.OwnerId != nil {
x.OwnerId.EmitProtobuf(mm.AppendMessage(3))
}
if x.CreationEpoch != 0 {
@@ -1373,27 +1373,27 @@ func (x *Header) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x.PayloadLength != 0 {
mm.AppendUint64(5, x.PayloadLength)
}
- if x.PayloadHash != nil && x.PayloadHash.StableSize() != 0 {
+ if x.PayloadHash != nil {
x.PayloadHash.EmitProtobuf(mm.AppendMessage(6))
}
if int32(x.ObjectType) != 0 {
mm.AppendInt32(7, int32(x.ObjectType))
}
- if x.HomomorphicHash != nil && x.HomomorphicHash.StableSize() != 0 {
+ if x.HomomorphicHash != nil {
x.HomomorphicHash.EmitProtobuf(mm.AppendMessage(8))
}
- if x.SessionToken != nil && x.SessionToken.StableSize() != 0 {
+ if x.SessionToken != nil {
x.SessionToken.EmitProtobuf(mm.AppendMessage(9))
}
for i := range x.Attributes {
- if x.Attributes[i] != nil && x.Attributes[i].StableSize() != 0 {
+ if x.Attributes[i] != nil {
x.Attributes[i].EmitProtobuf(mm.AppendMessage(10))
}
}
- if x.Split != nil && x.Split.StableSize() != 0 {
+ if x.Split != nil {
x.Split.EmitProtobuf(mm.AppendMessage(11))
}
- if x.Ec != nil && x.Ec.StableSize() != 0 {
+ if x.Ec != nil {
x.Ec.EmitProtobuf(mm.AppendMessage(12))
}
}
@@ -1881,13 +1881,13 @@ func (x *Object) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ if x.ObjectId != nil {
x.ObjectId.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
- if x.Header != nil && x.Header.StableSize() != 0 {
+ if x.Header != nil {
x.Header.EmitProtobuf(mm.AppendMessage(3))
}
if len(x.Payload) != 0 {
@@ -2116,10 +2116,10 @@ func (x *SplitInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if len(x.SplitId) != 0 {
mm.AppendBytes(1, x.SplitId)
}
- if x.LastPart != nil && x.LastPart.StableSize() != 0 {
+ if x.LastPart != nil {
x.LastPart.EmitProtobuf(mm.AppendMessage(2))
}
- if x.Link != nil && x.Link.StableSize() != 0 {
+ if x.Link != nil {
x.Link.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -2312,7 +2312,7 @@ func (x *ECInfo_Chunk) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Id != nil && x.Id.StableSize() != 0 {
+ if x.Id != nil {
x.Id.EmitProtobuf(mm.AppendMessage(1))
}
if x.Index != 0 {
@@ -2506,7 +2506,7 @@ func (x *ECInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Chunks {
- if x.Chunks[i] != nil && x.Chunks[i].StableSize() != 0 {
+ if x.Chunks[i] != nil {
x.Chunks[i].EmitProtobuf(mm.AppendMessage(1))
}
}
diff --git a/refs/grpc/types_frostfs.pb.go b/refs/grpc/types_frostfs.pb.go
index 881a06f..35febe9 100644
--- a/refs/grpc/types_frostfs.pb.go
+++ b/refs/grpc/types_frostfs.pb.go
@@ -121,10 +121,10 @@ func (x *Address) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ if x.ContainerId != nil {
x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
}
- if x.ObjectId != nil && x.ObjectId.StableSize() != 0 {
+ if x.ObjectId != nil {
x.ObjectId.EmitProtobuf(mm.AppendMessage(2))
}
}
diff --git a/rpc/message/test/message.go b/rpc/message/test/message.go
index 1f7097e..0849b20 100644
--- a/rpc/message/test/message.go
+++ b/rpc/message/test/message.go
@@ -111,7 +111,6 @@ func testCompatibility(t *testing.T, msgGen func(empty bool) message.Message) {
}
}
t.Run("empty", func(t *testing.T) {
- t.Skip()
msg := msgGen(true)
t.Run(fmt.Sprintf("Binary_%T", msg), func(t *testing.T) {
compareBinary(t, msg)
diff --git a/session/grpc/service_frostfs.pb.go b/session/grpc/service_frostfs.pb.go
index cfec4d6..aa42ee8 100644
--- a/session/grpc/service_frostfs.pb.go
+++ b/session/grpc/service_frostfs.pb.go
@@ -51,7 +51,7 @@ func (x *CreateRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ if x.OwnerId != nil {
x.OwnerId.EmitProtobuf(mm.AppendMessage(1))
}
if x.Expiration != 0 {
@@ -235,13 +235,13 @@ func (x *CreateRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -616,13 +616,13 @@ func (x *CreateResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaHeader != nil && x.MetaHeader.StableSize() != 0 {
+ if x.MetaHeader != nil {
x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
}
- if x.VerifyHeader != nil && x.VerifyHeader.StableSize() != 0 {
+ if x.VerifyHeader != nil {
x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
}
}
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
index af95210..4f8bf81 100644
--- a/session/grpc/types_frostfs.pb.go
+++ b/session/grpc/types_frostfs.pb.go
@@ -109,11 +109,11 @@ func (x *ObjectSessionContext_Target) EmitProtobuf(mm *easyproto.MessageMarshale
if x == nil {
return
}
- if x.Container != nil && x.Container.StableSize() != 0 {
+ if x.Container != nil {
x.Container.EmitProtobuf(mm.AppendMessage(1))
}
for i := range x.Objects {
- if x.Objects[i] != nil && x.Objects[i].StableSize() != 0 {
+ if x.Objects[i] != nil {
x.Objects[i].EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -297,7 +297,7 @@ func (x *ObjectSessionContext) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if int32(x.Verb) != 0 {
mm.AppendInt32(1, int32(x.Verb))
}
- if x.Target != nil && x.Target.StableSize() != 0 {
+ if x.Target != nil {
x.Target.EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -520,7 +520,7 @@ func (x *ContainerSessionContext) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x.Wildcard {
mm.AppendBool(2, x.Wildcard)
}
- if x.ContainerId != nil && x.ContainerId.StableSize() != 0 {
+ if x.ContainerId != nil {
x.ContainerId.EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -928,22 +928,22 @@ func (x *SessionToken_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if len(x.Id) != 0 {
mm.AppendBytes(1, x.Id)
}
- if x.OwnerId != nil && x.OwnerId.StableSize() != 0 {
+ if x.OwnerId != nil {
x.OwnerId.EmitProtobuf(mm.AppendMessage(2))
}
- if x.Lifetime != nil && x.Lifetime.StableSize() != 0 {
+ if x.Lifetime != nil {
x.Lifetime.EmitProtobuf(mm.AppendMessage(3))
}
if len(x.SessionKey) != 0 {
mm.AppendBytes(4, x.SessionKey)
}
if inner, ok := x.Context.(*SessionToken_Body_Object); ok {
- if inner.Object != nil && inner.Object.StableSize() != 0 {
+ if inner.Object != nil {
inner.Object.EmitProtobuf(mm.AppendMessage(5))
}
}
if inner, ok := x.Context.(*SessionToken_Body_Container); ok {
- if inner.Container != nil && inner.Container.StableSize() != 0 {
+ if inner.Container != nil {
inner.Container.EmitProtobuf(mm.AppendMessage(6))
}
}
@@ -1256,10 +1256,10 @@ func (x *SessionToken) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Body != nil && x.Body.StableSize() != 0 {
+ if x.Body != nil {
x.Body.EmitProtobuf(mm.AppendMessage(1))
}
- if x.Signature != nil && x.Signature.StableSize() != 0 {
+ if x.Signature != nil {
x.Signature.EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -1598,7 +1598,7 @@ func (x *RequestMetaHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Version != nil && x.Version.StableSize() != 0 {
+ if x.Version != nil {
x.Version.EmitProtobuf(mm.AppendMessage(1))
}
if x.Epoch != 0 {
@@ -1608,17 +1608,17 @@ func (x *RequestMetaHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint32(3, x.Ttl)
}
for i := range x.XHeaders {
- if x.XHeaders[i] != nil && x.XHeaders[i].StableSize() != 0 {
+ if x.XHeaders[i] != nil {
x.XHeaders[i].EmitProtobuf(mm.AppendMessage(4))
}
}
- if x.SessionToken != nil && x.SessionToken.StableSize() != 0 {
+ if x.SessionToken != nil {
x.SessionToken.EmitProtobuf(mm.AppendMessage(5))
}
- if x.BearerToken != nil && x.BearerToken.StableSize() != 0 {
+ if x.BearerToken != nil {
x.BearerToken.EmitProtobuf(mm.AppendMessage(6))
}
- if x.Origin != nil && x.Origin.StableSize() != 0 {
+ if x.Origin != nil {
x.Origin.EmitProtobuf(mm.AppendMessage(7))
}
if x.MagicNumber != 0 {
@@ -1979,7 +1979,7 @@ func (x *ResponseMetaHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
if x == nil {
return
}
- if x.Version != nil && x.Version.StableSize() != 0 {
+ if x.Version != nil {
x.Version.EmitProtobuf(mm.AppendMessage(1))
}
if x.Epoch != 0 {
@@ -1989,14 +1989,14 @@ func (x *ResponseMetaHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint32(3, x.Ttl)
}
for i := range x.XHeaders {
- if x.XHeaders[i] != nil && x.XHeaders[i].StableSize() != 0 {
+ if x.XHeaders[i] != nil {
x.XHeaders[i].EmitProtobuf(mm.AppendMessage(4))
}
}
- if x.Origin != nil && x.Origin.StableSize() != 0 {
+ if x.Origin != nil {
x.Origin.EmitProtobuf(mm.AppendMessage(5))
}
- if x.Status != nil && x.Status.StableSize() != 0 {
+ if x.Status != nil {
x.Status.EmitProtobuf(mm.AppendMessage(6))
}
}
@@ -2292,16 +2292,16 @@ func (x *RequestVerificationHeader) EmitProtobuf(mm *easyproto.MessageMarshaler)
if x == nil {
return
}
- if x.BodySignature != nil && x.BodySignature.StableSize() != 0 {
+ if x.BodySignature != nil {
x.BodySignature.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaSignature != nil && x.MetaSignature.StableSize() != 0 {
+ if x.MetaSignature != nil {
x.MetaSignature.EmitProtobuf(mm.AppendMessage(2))
}
- if x.OriginSignature != nil && x.OriginSignature.StableSize() != 0 {
+ if x.OriginSignature != nil {
x.OriginSignature.EmitProtobuf(mm.AppendMessage(3))
}
- if x.Origin != nil && x.Origin.StableSize() != 0 {
+ if x.Origin != nil {
x.Origin.EmitProtobuf(mm.AppendMessage(4))
}
}
@@ -2530,16 +2530,16 @@ func (x *ResponseVerificationHeader) EmitProtobuf(mm *easyproto.MessageMarshaler
if x == nil {
return
}
- if x.BodySignature != nil && x.BodySignature.StableSize() != 0 {
+ if x.BodySignature != nil {
x.BodySignature.EmitProtobuf(mm.AppendMessage(1))
}
- if x.MetaSignature != nil && x.MetaSignature.StableSize() != 0 {
+ if x.MetaSignature != nil {
x.MetaSignature.EmitProtobuf(mm.AppendMessage(2))
}
- if x.OriginSignature != nil && x.OriginSignature.StableSize() != 0 {
+ if x.OriginSignature != nil {
x.OriginSignature.EmitProtobuf(mm.AppendMessage(3))
}
- if x.Origin != nil && x.Origin.StableSize() != 0 {
+ if x.Origin != nil {
x.Origin.EmitProtobuf(mm.AppendMessage(4))
}
}
diff --git a/status/grpc/types_frostfs.pb.go b/status/grpc/types_frostfs.pb.go
index a12ab55..5012491 100644
--- a/status/grpc/types_frostfs.pb.go
+++ b/status/grpc/types_frostfs.pb.go
@@ -476,7 +476,7 @@ func (x *Status) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendString(2, x.Message)
}
for i := range x.Details {
- if x.Details[i] != nil && x.Details[i].StableSize() != 0 {
+ if x.Details[i] != nil {
x.Details[i].EmitProtobuf(mm.AppendMessage(3))
}
}
diff --git a/tombstone/grpc/types_frostfs.pb.go b/tombstone/grpc/types_frostfs.pb.go
index b0924c0..8c2e83c 100644
--- a/tombstone/grpc/types_frostfs.pb.go
+++ b/tombstone/grpc/types_frostfs.pb.go
@@ -62,7 +62,7 @@ func (x *Tombstone) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendBytes(2, x.SplitId)
}
for i := range x.Members {
- if x.Members[i] != nil && x.Members[i].StableSize() != 0 {
+ if x.Members[i] != nil {
x.Members[i].EmitProtobuf(mm.AppendMessage(3))
}
}
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index b1d2cf2..a39bba7 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -288,7 +288,7 @@ func (x *Primitives) EmitProtobuf(mm *easyproto.MessageMarshaler) {
}
}
if inner, ok := x.FieldM.(*Primitives_FieldAux); ok {
- if inner.FieldAux != nil && inner.FieldAux.StableSize() != 0 {
+ if inner.FieldAux != nil {
inner.FieldAux.EmitProtobuf(mm.AppendMessage(403))
}
}
diff --git a/util/protogen/internalgengo/proto.go b/util/protogen/internalgengo/proto.go
index 8e5e967..8894cde 100644
--- a/util/protogen/internalgengo/proto.go
+++ b/util/protogen/internalgengo/proto.go
@@ -174,7 +174,7 @@ func emitMarshalRaw(g *protogen.GeneratedFile, f *protogen.Field, name string) {
name += "[i]"
}
- g.P("if ", notNil(name), " && ", name, ".StableSize() != 0 {")
+ g.P("if ", notNil(name), " {")
g.P(name, ".EmitProtobuf(mm.AppendMessage(", f.Desc.Number(), "))")
g.P("}")
return
From ca33fc4adb9715559cafccb48b3625b032c5d266 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 27 Aug 2024 11:35:49 +0300
Subject: [PATCH 16/42] [#109] rpc/message: Remove incorrect copypaste
Signed-off-by: Evgenii Stratonikov
---
rpc/message/test/message.go | 5 -----
1 file changed, 5 deletions(-)
diff --git a/rpc/message/test/message.go b/rpc/message/test/message.go
index 0849b20..96b6de4 100644
--- a/rpc/message/test/message.go
+++ b/rpc/message/test/message.go
@@ -104,11 +104,6 @@ func testCompatibility(t *testing.T, msgGen func(empty bool) message.Message) {
require.NoError(t, err)
require.JSONEq(t, string(a), string(b))
- if len(a) == 0 {
- require.Empty(t, b)
- } else {
- require.Equal(t, a, b)
- }
}
t.Run("empty", func(t *testing.T) {
msg := msgGen(true)
From eba18f6e67ac7fd47670b8dad63f1a1379a04cac Mon Sep 17 00:00:00 2001
From: Airat Arifullin
Date: Tue, 27 Aug 2024 13:45:04 +0300
Subject: [PATCH 17/42] [#110] object: Add getter and setter for
`PatchResponseBody`
Signed-off-by: Airat Arifullin
---
object/types.go | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/object/types.go b/object/types.go
index 160e820..0ca3f12 100644
--- a/object/types.go
+++ b/object/types.go
@@ -1615,6 +1615,18 @@ func (r *PatchResponse) SetBody(v *PatchResponseBody) {
r.Body = v
}
+func (r *PatchResponseBody) GetObjectID() *refs.ObjectID {
+ if r != nil {
+ return r.ObjectID
+ }
+
+ return nil
+}
+
+func (r *PatchResponseBody) SetObjectID(objectID *refs.ObjectID) {
+ r.ObjectID = objectID
+}
+
func (r *PatchRequestBodyPatch) GetChunk() []byte {
if r != nil {
return r.Chunk
From a2025376fcd42534661cff65360c50f0b4643d3a Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 27 Aug 2024 15:02:16 +0300
Subject: [PATCH 18/42] [#111] proto/test: Add repeated message test
Signed-off-by: Evgenii Stratonikov
---
util/proto/marshal_test.go | 15 ++
util/proto/test/custom/test_frostfs.pb.go | 197 +++++++++++++++++++++-
util/proto/test/test.pb.go | 117 ++++++++++---
util/proto/test/test.proto | 3 +
4 files changed, 304 insertions(+), 28 deletions(-)
diff --git a/util/proto/marshal_test.go b/util/proto/marshal_test.go
index 5d887ce..a848bb5 100644
--- a/util/proto/marshal_test.go
+++ b/util/proto/marshal_test.go
@@ -113,6 +113,10 @@ func repPrimitivesEqual(t *testing.T, a *generated.RepPrimitives, b *test.RepPri
require.Equal(t, a.FieldE, b.FieldE)
require.Equal(t, a.FieldF, b.FieldF)
require.Equal(t, a.FieldFu, b.FieldFu)
+ require.Equal(t, len(a.GetFieldAux()), len(b.GetFieldAux()))
+ for i := range a.FieldAux {
+ require.Equal(t, a.GetFieldAux()[i].GetInnerField(), b.GetFieldAux()[i].GetInnerField())
+ }
}
func randIntSlice[T protoInt](n int, includeZero bool) []T {
@@ -129,6 +133,14 @@ func randIntSlice[T protoInt](n int, includeZero bool) []T {
return r
}
+func uint32SliceToAux(s []uint32) []*generated.RepPrimitives_Aux {
+ r := make([]*generated.RepPrimitives_Aux, len(s))
+ for i := range s {
+ r[i] = &generated.RepPrimitives_Aux{s[i]}
+ }
+ return r
+}
+
func TestStableMarshalRep(t *testing.T) {
t.Run("empty", func(t *testing.T) {
marshalCases := []struct {
@@ -176,6 +188,9 @@ func TestStableMarshalRep(t *testing.T) {
{name: "uint64", input: &generated.RepPrimitives{FieldFu: randIntSlice[uint64](1, true)}},
{name: "uint64", input: &generated.RepPrimitives{FieldFu: randIntSlice[uint64](2, true)}},
{name: "uint64", input: &generated.RepPrimitives{FieldFu: randIntSlice[uint64](2, false)}},
+ {name: "message", input: &generated.RepPrimitives{FieldAux: uint32SliceToAux(randIntSlice[uint32](1, true))}},
+ {name: "message", input: &generated.RepPrimitives{FieldAux: uint32SliceToAux(randIntSlice[uint32](2, true))}},
+ {name: "message", input: &generated.RepPrimitives{FieldAux: uint32SliceToAux(randIntSlice[uint32](2, false))}},
}
for _, tc := range marshalCases {
t.Run(tc.name, func(t *testing.T) {
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index a39bba7..f3b958f 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -802,14 +802,144 @@ func (*Primitives_FieldMe) isPrimitives_FieldM() {}
func (*Primitives_FieldAux) isPrimitives_FieldM() {}
+type RepPrimitives_Aux struct {
+ InnerField uint32 `json:"innerField"`
+}
+
+var (
+ _ encoding.ProtoMarshaler = (*RepPrimitives_Aux)(nil)
+ _ encoding.ProtoUnmarshaler = (*RepPrimitives_Aux)(nil)
+ _ json.Marshaler = (*RepPrimitives_Aux)(nil)
+ _ json.Unmarshaler = (*RepPrimitives_Aux)(nil)
+)
+
+// StableSize returns the size of x in protobuf format.
+//
+// Structures with the same field values have the same binary size.
+func (x *RepPrimitives_Aux) StableSize() (size int) {
+ if x == nil {
+ return 0
+ }
+ size += proto.UInt32Size(1, x.InnerField)
+ return size
+}
+
+// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
+func (x *RepPrimitives_Aux) MarshalProtobuf(dst []byte) []byte {
+ m := pool.MarshalerPool.Get()
+ defer pool.MarshalerPool.Put(m)
+ x.EmitProtobuf(m.MessageMarshaler())
+ dst = m.Marshal(dst)
+ return dst
+}
+
+func (x *RepPrimitives_Aux) EmitProtobuf(mm *easyproto.MessageMarshaler) {
+ if x == nil {
+ return
+ }
+ if x.InnerField != 0 {
+ mm.AppendUint32(1, x.InnerField)
+ }
+}
+
+// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
+func (x *RepPrimitives_Aux) UnmarshalProtobuf(src []byte) (err error) {
+ var fc easyproto.FieldContext
+ for len(src) > 0 {
+ src, err = fc.NextField(src)
+ if err != nil {
+ return fmt.Errorf("cannot read next field in %s", "RepPrimitives_Aux")
+ }
+ switch fc.FieldNum {
+ case 1: // InnerField
+ data, ok := fc.Uint32()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "InnerField")
+ }
+ x.InnerField = data
+ }
+ }
+ return nil
+}
+func (x *RepPrimitives_Aux) GetInnerField() uint32 {
+ if x != nil {
+ return x.InnerField
+ }
+ return 0
+}
+func (x *RepPrimitives_Aux) SetInnerField(v uint32) {
+ x.InnerField = v
+}
+
+// MarshalJSON implements the json.Marshaler interface.
+func (x *RepPrimitives_Aux) MarshalJSON() ([]byte, error) {
+ w := jwriter.Writer{}
+ x.MarshalEasyJSON(&w)
+ return w.Buffer.BuildBytes(), w.Error
+}
+func (x *RepPrimitives_Aux) MarshalEasyJSON(out *jwriter.Writer) {
+ if x == nil {
+ out.RawString("null")
+ return
+ }
+ out.RawByte('{')
+ {
+ const prefix string = ",\"innerField\":"
+ out.RawString(prefix[1:])
+ out.Uint32(x.InnerField)
+ }
+ out.RawByte('}')
+}
+
+// UnmarshalJSON implements the json.Unmarshaler interface.
+func (x *RepPrimitives_Aux) UnmarshalJSON(data []byte) error {
+ r := jlexer.Lexer{Data: data}
+ x.UnmarshalEasyJSON(&r)
+ return r.Error()
+}
+func (x *RepPrimitives_Aux) UnmarshalEasyJSON(in *jlexer.Lexer) {
+ isTopLevel := in.IsStart()
+ if in.IsNull() {
+ if isTopLevel {
+ in.Consumed()
+ }
+ in.Skip()
+ return
+ }
+ in.Delim('{')
+ for !in.IsDelim('}') {
+ key := in.UnsafeFieldName(false)
+ in.WantColon()
+ if in.IsNull() {
+ in.Skip()
+ in.WantComma()
+ continue
+ }
+ switch key {
+ case "innerField":
+ {
+ var f uint32
+ f = in.Uint32()
+ x.InnerField = f
+ }
+ }
+ in.WantComma()
+ }
+ in.Delim('}')
+ if isTopLevel {
+ in.Consumed()
+ }
+}
+
type RepPrimitives struct {
- FieldA [][]byte `json:"fieldA"`
- FieldB []string `json:"fieldB"`
- FieldC []int32 `json:"fieldC"`
- FieldD []uint32 `json:"fieldD"`
- FieldE []int64 `json:"fieldE"`
- FieldF []uint64 `json:"fieldF"`
- FieldFu []uint64 `json:"fieldFu"`
+ FieldA [][]byte `json:"fieldA"`
+ FieldB []string `json:"fieldB"`
+ FieldC []int32 `json:"fieldC"`
+ FieldD []uint32 `json:"fieldD"`
+ FieldE []int64 `json:"fieldE"`
+ FieldF []uint64 `json:"fieldF"`
+ FieldFu []uint64 `json:"fieldFu"`
+ FieldAux []*RepPrimitives_Aux `json:"fieldAux"`
}
var (
@@ -840,6 +970,9 @@ func (x *RepPrimitives) StableSize() (size int) {
for i := range x.FieldFu {
size += protowire.SizeGroup(protowire.Number(7), protowire.SizeVarint(x.FieldFu[i]))
}
+ for i := range x.FieldAux {
+ size += proto.NestedStructureSize(8, x.FieldAux[i])
+ }
return size
}
@@ -877,6 +1010,11 @@ func (x *RepPrimitives) EmitProtobuf(mm *easyproto.MessageMarshaler) {
for j := range x.FieldFu {
mm.AppendUint64(7, x.FieldFu[j])
}
+ for i := range x.FieldAux {
+ if x.FieldAux[i] != nil {
+ x.FieldAux[i].EmitProtobuf(mm.AppendMessage(8))
+ }
+ }
}
// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
@@ -930,6 +1068,16 @@ func (x *RepPrimitives) UnmarshalProtobuf(src []byte) (err error) {
return fmt.Errorf("cannot unmarshal field %s", "FieldFu")
}
x.FieldFu = append(x.FieldFu, data)
+ case 8: // FieldAux
+ data, ok := fc.MessageData()
+ if !ok {
+ return fmt.Errorf("cannot unmarshal field %s", "FieldAux")
+ }
+ x.FieldAux = append(x.FieldAux, new(RepPrimitives_Aux))
+ ff := x.FieldAux[len(x.FieldAux)-1]
+ if err := ff.UnmarshalProtobuf(data); err != nil {
+ return fmt.Errorf("unmarshal: %w", err)
+ }
}
}
return nil
@@ -997,6 +1145,15 @@ func (x *RepPrimitives) GetFieldFu() []uint64 {
func (x *RepPrimitives) SetFieldFu(v []uint64) {
x.FieldFu = v
}
+func (x *RepPrimitives) GetFieldAux() []*RepPrimitives_Aux {
+ if x != nil {
+ return x.FieldAux
+ }
+ return nil
+}
+func (x *RepPrimitives) SetFieldAux(v []*RepPrimitives_Aux) {
+ x.FieldAux = v
+}
// MarshalJSON implements the json.Marshaler interface.
func (x *RepPrimitives) MarshalJSON() ([]byte, error) {
@@ -1094,6 +1251,18 @@ func (x *RepPrimitives) MarshalEasyJSON(out *jwriter.Writer) {
}
out.RawByte(']')
}
+ {
+ const prefix string = ",\"fieldAux\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldAux {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.FieldAux[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
out.RawByte('}')
}
@@ -1213,6 +1382,20 @@ func (x *RepPrimitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
x.FieldFu = list
in.Delim(']')
}
+ case "fieldAux":
+ {
+ var f *RepPrimitives_Aux
+ var list []*RepPrimitives_Aux
+ in.Delim('[')
+ for !in.IsDelim(']') {
+ f = new(RepPrimitives_Aux)
+ f.UnmarshalEasyJSON(in)
+ list = append(list, f)
+ in.WantComma()
+ }
+ x.FieldAux = list
+ in.Delim(']')
+ }
}
in.WantComma()
}
diff --git a/util/proto/test/test.pb.go b/util/proto/test/test.pb.go
index de8ec65..e7d5699 100644
--- a/util/proto/test/test.pb.go
+++ b/util/proto/test/test.pb.go
@@ -257,13 +257,14 @@ type RepPrimitives struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- FieldA [][]byte `protobuf:"bytes,1,rep,name=field_a,json=fieldA,proto3" json:"field_a,omitempty"`
- FieldB []string `protobuf:"bytes,2,rep,name=field_b,json=fieldB,proto3" json:"field_b,omitempty"`
- FieldC []int32 `protobuf:"varint,3,rep,packed,name=field_c,json=fieldC,proto3" json:"field_c,omitempty"`
- FieldD []uint32 `protobuf:"varint,4,rep,packed,name=field_d,json=fieldD,proto3" json:"field_d,omitempty"`
- FieldE []int64 `protobuf:"varint,5,rep,packed,name=field_e,json=fieldE,proto3" json:"field_e,omitempty"`
- FieldF []uint64 `protobuf:"varint,6,rep,packed,name=field_f,json=fieldF,proto3" json:"field_f,omitempty"`
- FieldFu []uint64 `protobuf:"varint,7,rep,name=field_fu,json=fieldFu,proto3" json:"field_fu,omitempty"`
+ FieldA [][]byte `protobuf:"bytes,1,rep,name=field_a,json=fieldA,proto3" json:"field_a,omitempty"`
+ FieldB []string `protobuf:"bytes,2,rep,name=field_b,json=fieldB,proto3" json:"field_b,omitempty"`
+ FieldC []int32 `protobuf:"varint,3,rep,packed,name=field_c,json=fieldC,proto3" json:"field_c,omitempty"`
+ FieldD []uint32 `protobuf:"varint,4,rep,packed,name=field_d,json=fieldD,proto3" json:"field_d,omitempty"`
+ FieldE []int64 `protobuf:"varint,5,rep,packed,name=field_e,json=fieldE,proto3" json:"field_e,omitempty"`
+ FieldF []uint64 `protobuf:"varint,6,rep,packed,name=field_f,json=fieldF,proto3" json:"field_f,omitempty"`
+ FieldFu []uint64 `protobuf:"varint,7,rep,name=field_fu,json=fieldFu,proto3" json:"field_fu,omitempty"`
+ FieldAux []*RepPrimitives_Aux `protobuf:"bytes,8,rep,name=field_aux,json=fieldAux,proto3" json:"field_aux,omitempty"`
}
func (x *RepPrimitives) Reset() {
@@ -347,6 +348,13 @@ func (x *RepPrimitives) GetFieldFu() []uint64 {
return nil
}
+func (x *RepPrimitives) GetFieldAux() []*RepPrimitives_Aux {
+ if x != nil {
+ return x.FieldAux
+ }
+ return nil
+}
+
type Primitives_Aux struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -394,6 +402,53 @@ func (x *Primitives_Aux) GetInnerField() uint32 {
return 0
}
+type RepPrimitives_Aux struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ InnerField uint32 `protobuf:"varint,1,opt,name=inner_field,json=innerField,proto3" json:"inner_field,omitempty"`
+}
+
+func (x *RepPrimitives_Aux) Reset() {
+ *x = RepPrimitives_Aux{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_util_proto_test_test_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RepPrimitives_Aux) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RepPrimitives_Aux) ProtoMessage() {}
+
+func (x *RepPrimitives_Aux) ProtoReflect() protoreflect.Message {
+ mi := &file_util_proto_test_test_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 RepPrimitives_Aux.ProtoReflect.Descriptor instead.
+func (*RepPrimitives_Aux) Descriptor() ([]byte, []int) {
+ return file_util_proto_test_test_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *RepPrimitives_Aux) GetInnerField() uint32 {
+ if x != nil {
+ return x.InnerField
+ }
+ return 0
+}
+
var File_util_proto_test_test_proto protoreflect.FileDescriptor
var file_util_proto_test_test_proto_rawDesc = []byte{
@@ -433,7 +488,7 @@ var file_util_proto_test_test_proto_rawDesc = []byte{
0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x50,
0x4f, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x08, 0x4e, 0x45, 0x47,
0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01,
- 0x42, 0x09, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x22, 0xc4, 0x01, 0x0a, 0x0d,
+ 0x42, 0x09, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x22, 0xa2, 0x02, 0x0a, 0x0d,
0x52, 0x65, 0x70, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x12, 0x17, 0x0a,
0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06,
0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x12, 0x17, 0x0a, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f,
@@ -446,8 +501,14 @@ var file_util_proto_test_test_proto_rawDesc = []byte{
0x65, 0x6c, 0x64, 0x5f, 0x66, 0x18, 0x06, 0x20, 0x03, 0x28, 0x04, 0x52, 0x06, 0x66, 0x69, 0x65,
0x6c, 0x64, 0x46, 0x12, 0x1d, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x66, 0x75, 0x18,
0x07, 0x20, 0x03, 0x28, 0x04, 0x42, 0x02, 0x10, 0x00, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64,
- 0x46, 0x75, 0x42, 0x11, 0x5a, 0x0f, 0x75, 0x74, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x2f, 0x74, 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x46, 0x75, 0x12, 0x34, 0x0a, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x61, 0x75, 0x78, 0x18,
+ 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x70,
+ 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65, 0x73, 0x2e, 0x41, 0x75, 0x78, 0x52, 0x08,
+ 0x66, 0x69, 0x65, 0x6c, 0x64, 0x41, 0x75, 0x78, 0x1a, 0x26, 0x0a, 0x03, 0x41, 0x75, 0x78, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64,
+ 0x42, 0x11, 0x5a, 0x0f, 0x75, 0x74, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x74,
+ 0x65, 0x73, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -463,21 +524,23 @@ func file_util_proto_test_test_proto_rawDescGZIP() []byte {
}
var file_util_proto_test_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_util_proto_test_test_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_util_proto_test_test_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_util_proto_test_test_proto_goTypes = []interface{}{
- (Primitives_SomeEnum)(0), // 0: test.Primitives.SomeEnum
- (*Primitives)(nil), // 1: test.Primitives
- (*RepPrimitives)(nil), // 2: test.RepPrimitives
- (*Primitives_Aux)(nil), // 3: test.Primitives.Aux
+ (Primitives_SomeEnum)(0), // 0: test.Primitives.SomeEnum
+ (*Primitives)(nil), // 1: test.Primitives
+ (*RepPrimitives)(nil), // 2: test.RepPrimitives
+ (*Primitives_Aux)(nil), // 3: test.Primitives.Aux
+ (*RepPrimitives_Aux)(nil), // 4: test.RepPrimitives.Aux
}
var file_util_proto_test_test_proto_depIdxs = []int32{
0, // 0: test.Primitives.field_h:type_name -> test.Primitives.SomeEnum
3, // 1: test.Primitives.field_aux:type_name -> test.Primitives.Aux
- 2, // [2:2] is the sub-list for method output_type
- 2, // [2:2] is the sub-list for method input_type
- 2, // [2:2] is the sub-list for extension type_name
- 2, // [2:2] is the sub-list for extension extendee
- 0, // [0:2] is the sub-list for field type_name
+ 4, // 2: test.RepPrimitives.field_aux:type_name -> test.RepPrimitives.Aux
+ 3, // [3:3] is the sub-list for method output_type
+ 3, // [3:3] is the sub-list for method input_type
+ 3, // [3:3] is the sub-list for extension type_name
+ 3, // [3:3] is the sub-list for extension extendee
+ 0, // [0:3] is the sub-list for field type_name
}
func init() { file_util_proto_test_test_proto_init() }
@@ -522,6 +585,18 @@ func file_util_proto_test_test_proto_init() {
return nil
}
}
+ file_util_proto_test_test_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RepPrimitives_Aux); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
}
file_util_proto_test_test_proto_msgTypes[0].OneofWrappers = []interface{}{
(*Primitives_FieldMa)(nil),
@@ -534,7 +609,7 @@ func file_util_proto_test_test_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_util_proto_test_test_proto_rawDesc,
NumEnums: 1,
- NumMessages: 3,
+ NumMessages: 4,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/util/proto/test/test.proto b/util/proto/test/test.proto
index f33be49..58cee2f 100644
--- a/util/proto/test/test.proto
+++ b/util/proto/test/test.proto
@@ -40,4 +40,7 @@ message RepPrimitives {
repeated int64 field_e = 5;
repeated uint64 field_f = 6;
repeated uint64 field_fu = 7 [ packed = false ];
+
+ message Aux { uint32 inner_field = 1; }
+ repeated Aux field_aux = 8;
}
From 5e1c6a908f61d357acd71c1b0a1320f962ea5827 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 27 Aug 2024 15:12:31 +0300
Subject: [PATCH 19/42] [#111] protogen: Emit slice of messages without a
pointer
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
```
goos: linux
goarch: amd64
pkg: git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs
cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
│ old │ new │
│ sec/op │ sec/op vs base │
ObjectIDSlice/0_elements/to_grpc_message-8 3.193n ± 2% 3.242n ± 0% +1.50% (p=0.034 n=10)
ObjectIDSlice/0_elements/from_grpc_message-8 3.197n ± 2% 3.343n ± 1% +4.57% (p=0.000 n=10)
ObjectIDSlice/0_elements/marshal-8 5.666n ± 3% 5.642n ± 0% -0.42% (p=0.000 n=10)
ObjectIDSlice/1_elements/to_grpc_message-8 53.10n ± 6% 29.78n ± 12% -43.92% (p=0.000 n=10)
ObjectIDSlice/1_elements/from_grpc_message-8 28.99n ± 5% 29.77n ± 7% ~ (p=0.165 n=10)
ObjectIDSlice/1_elements/marshal-8 49.08n ± 7% 50.72n ± 6% ~ (p=0.218 n=10)
ObjectIDSlice/50_elements/to_grpc_message-8 1652.5n ± 7% 277.2n ± 1% -83.22% (p=0.000 n=10)
ObjectIDSlice/50_elements/from_grpc_message-8 261.2n ± 11% 226.7n ± 15% -13.19% (p=0.003 n=10)
ObjectIDSlice/50_elements/marshal-8 1.512µ ± 6% 1.514µ ± 6% ~ (p=0.955 n=10)
geomean 52.15n 39.99n -23.31%
│ old │ new │
│ B/op │ B/op vs base │
ObjectIDSlice/0_elements/to_grpc_message-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/0_elements/from_grpc_message-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/0_elements/marshal-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/1_elements/to_grpc_message-8 32.00 ± 0% 24.00 ± 0% -25.00% (p=0.000 n=10)
ObjectIDSlice/1_elements/from_grpc_message-8 24.00 ± 0% 24.00 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/1_elements/marshal-8 48.00 ± 0% 48.00 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/50_elements/to_grpc_message-8 1.578Ki ± 0% 1.250Ki ± 0% -20.79% (p=0.000 n=10)
ObjectIDSlice/50_elements/from_grpc_message-8 1.250Ki ± 0% 1.250Ki ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/50_elements/marshal-8 2.000Ki ± 0% 2.000Ki ± 0% ~ (p=1.000 n=10) ¹
geomean ² -5.62% ²
¹ all samples are equal
² summaries must be >0 to compute geomean
│ old │ new │
│ allocs/op │ allocs/op vs base │
ObjectIDSlice/0_elements/to_grpc_message-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/0_elements/from_grpc_message-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/0_elements/marshal-8 0.000 ± 0% 0.000 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/1_elements/to_grpc_message-8 2.000 ± 0% 1.000 ± 0% -50.00% (p=0.000 n=10)
ObjectIDSlice/1_elements/from_grpc_message-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/1_elements/marshal-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/50_elements/to_grpc_message-8 51.000 ± 0% 1.000 ± 0% -98.04% (p=0.000 n=10)
ObjectIDSlice/50_elements/from_grpc_message-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=10) ¹
ObjectIDSlice/50_elements/marshal-8 1.000 ± 0% 1.000 ± 0% ~ (p=1.000 n=10) ¹
geomean ² -40.18% ²
¹ all samples are equal
² summaries must be >0 to compute geomean
```
Signed-off-by: Evgenii Stratonikov
---
acl/convert.go | 54 +++---
acl/grpc/types_frostfs.pb.go | 92 +++++-----
apemanager/convert.go | 6 +-
apemanager/grpc/service_frostfs.pb.go | 22 ++-
container/convert.go | 16 +-
container/grpc/service_frostfs.pb.go | 22 ++-
container/grpc/types_frostfs.pb.go | 22 ++-
lock/grpc/types_frostfs.pb.go | 22 ++-
netmap/convert.go | 82 ++++-----
netmap/grpc/types_frostfs.pb.go | 166 ++++++++----------
object/convert.go | 54 +++---
object/grpc/service_frostfs.pb.go | 92 +++++-----
object/grpc/types_frostfs.pb.go | 112 ++++++------
object/lock.go | 8 +-
refs/convert.go | 32 ++--
session/convert.go | 16 +-
session/grpc/types_frostfs.pb.go | 66 ++++---
status/convert.go | 12 +-
status/grpc/types_frostfs.pb.go | 26 ++-
tombstone/grpc/types_frostfs.pb.go | 26 ++-
util/proto/marshal_test.go | 6 +-
util/proto/test/custom/test_frostfs.pb.go | 36 ++--
util/protogen/internalgengo/json.go | 2 +-
util/protogen/internalgengo/proto.go | 9 +-
.../internalgengo/proto_field_type.go | 5 +-
.../internalgengo/proto_stable_compat.go | 2 +-
26 files changed, 461 insertions(+), 547 deletions(-)
diff --git a/acl/convert.go b/acl/convert.go
index c5768ad..f5de743 100644
--- a/acl/convert.go
+++ b/acl/convert.go
@@ -187,28 +187,26 @@ func (f *HeaderFilter) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func HeaderFiltersToGRPC(fs []HeaderFilter) (res []*acl.EACLRecord_Filter) {
+func HeaderFiltersToGRPC(fs []HeaderFilter) (res []acl.EACLRecord_Filter) {
if fs != nil {
- res = make([]*acl.EACLRecord_Filter, 0, len(fs))
+ res = make([]acl.EACLRecord_Filter, 0, len(fs))
for i := range fs {
- res = append(res, fs[i].ToGRPCMessage().(*acl.EACLRecord_Filter))
+ res = append(res, *fs[i].ToGRPCMessage().(*acl.EACLRecord_Filter))
}
}
return
}
-func HeaderFiltersFromGRPC(fs []*acl.EACLRecord_Filter) (res []HeaderFilter, err error) {
+func HeaderFiltersFromGRPC(fs []acl.EACLRecord_Filter) (res []HeaderFilter, err error) {
if fs != nil {
res = make([]HeaderFilter, len(fs))
for i := range fs {
- if fs[i] != nil {
- err = res[i].FromGRPCMessage(fs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&fs[i])
+ if err != nil {
+ return
}
}
}
@@ -241,28 +239,26 @@ func (t *Target) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func TargetsToGRPC(ts []Target) (res []*acl.EACLRecord_Target) {
+func TargetsToGRPC(ts []Target) (res []acl.EACLRecord_Target) {
if ts != nil {
- res = make([]*acl.EACLRecord_Target, 0, len(ts))
+ res = make([]acl.EACLRecord_Target, 0, len(ts))
for i := range ts {
- res = append(res, ts[i].ToGRPCMessage().(*acl.EACLRecord_Target))
+ res = append(res, *ts[i].ToGRPCMessage().(*acl.EACLRecord_Target))
}
}
return
}
-func TargetsFromGRPC(fs []*acl.EACLRecord_Target) (res []Target, err error) {
+func TargetsFromGRPC(fs []acl.EACLRecord_Target) (res []Target, err error) {
if fs != nil {
res = make([]Target, len(fs))
for i := range fs {
- if fs[i] != nil {
- err = res[i].FromGRPCMessage(fs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&fs[i])
+ if err != nil {
+ return
}
}
}
@@ -309,28 +305,26 @@ func (r *Record) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func RecordsToGRPC(ts []Record) (res []*acl.EACLRecord) {
+func RecordsToGRPC(ts []Record) (res []acl.EACLRecord) {
if ts != nil {
- res = make([]*acl.EACLRecord, 0, len(ts))
+ res = make([]acl.EACLRecord, 0, len(ts))
for i := range ts {
- res = append(res, ts[i].ToGRPCMessage().(*acl.EACLRecord))
+ res = append(res, *ts[i].ToGRPCMessage().(*acl.EACLRecord))
}
}
return
}
-func RecordsFromGRPC(fs []*acl.EACLRecord) (res []Record, err error) {
+func RecordsFromGRPC(fs []acl.EACLRecord) (res []Record, err error) {
if fs != nil {
res = make([]Record, len(fs))
for i := range fs {
- if fs[i] != nil {
- err = res[i].FromGRPCMessage(fs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&fs[i])
+ if err != nil {
+ return
}
}
}
@@ -429,9 +423,9 @@ func (c *APEOverride) ToGRPCMessage() grpc.Message {
m.SetTarget(c.target.ToGRPCMessage().(*apeGRPC.ChainTarget))
if len(c.chains) > 0 {
- apeChains := make([]*apeGRPC.Chain, len(c.chains))
+ apeChains := make([]apeGRPC.Chain, len(c.chains))
for i := range c.chains {
- apeChains[i] = c.chains[i].ToGRPCMessage().(*apeGRPC.Chain)
+ apeChains[i] = *c.chains[i].ToGRPCMessage().(*apeGRPC.Chain)
}
m.SetChains(apeChains)
}
@@ -459,7 +453,7 @@ func (c *APEOverride) FromGRPCMessage(m grpc.Message) error {
c.chains = make([]*ape.Chain, len(apeChains))
for i := range apeChains {
c.chains[i] = new(ape.Chain)
- if err := c.chains[i].FromGRPCMessage(apeChains[i]); err != nil {
+ if err := c.chains[i].FromGRPCMessage(&apeChains[i]); err != nil {
return err
}
}
diff --git a/acl/grpc/types_frostfs.pb.go b/acl/grpc/types_frostfs.pb.go
index 931f3b3..2b116bd 100644
--- a/acl/grpc/types_frostfs.pb.go
+++ b/acl/grpc/types_frostfs.pb.go
@@ -657,10 +657,10 @@ func (x *EACLRecord_Target) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type EACLRecord struct {
- Operation Operation `json:"operation"`
- Action Action `json:"action"`
- Filters []*EACLRecord_Filter `json:"filters"`
- Targets []*EACLRecord_Target `json:"targets"`
+ Operation Operation `json:"operation"`
+ Action Action `json:"action"`
+ Filters []EACLRecord_Filter `json:"filters"`
+ Targets []EACLRecord_Target `json:"targets"`
}
var (
@@ -680,10 +680,10 @@ func (x *EACLRecord) StableSize() (size int) {
size += proto.EnumSize(1, int32(x.Operation))
size += proto.EnumSize(2, int32(x.Action))
for i := range x.Filters {
- size += proto.NestedStructureSize(3, x.Filters[i])
+ size += proto.NestedStructureSizeUnchecked(3, &x.Filters[i])
}
for i := range x.Targets {
- size += proto.NestedStructureSize(4, x.Targets[i])
+ size += proto.NestedStructureSizeUnchecked(4, &x.Targets[i])
}
return size
}
@@ -708,14 +708,10 @@ func (x *EACLRecord) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendInt32(2, int32(x.Action))
}
for i := range x.Filters {
- if x.Filters[i] != nil {
- x.Filters[i].EmitProtobuf(mm.AppendMessage(3))
- }
+ x.Filters[i].EmitProtobuf(mm.AppendMessage(3))
}
for i := range x.Targets {
- if x.Targets[i] != nil {
- x.Targets[i].EmitProtobuf(mm.AppendMessage(4))
- }
+ x.Targets[i].EmitProtobuf(mm.AppendMessage(4))
}
}
@@ -745,8 +741,8 @@ func (x *EACLRecord) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Filters")
}
- x.Filters = append(x.Filters, new(EACLRecord_Filter))
- ff := x.Filters[len(x.Filters)-1]
+ x.Filters = append(x.Filters, EACLRecord_Filter{})
+ ff := &x.Filters[len(x.Filters)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -755,8 +751,8 @@ func (x *EACLRecord) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Targets")
}
- x.Targets = append(x.Targets, new(EACLRecord_Target))
- ff := x.Targets[len(x.Targets)-1]
+ x.Targets = append(x.Targets, EACLRecord_Target{})
+ ff := &x.Targets[len(x.Targets)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -782,22 +778,22 @@ func (x *EACLRecord) GetAction() Action {
func (x *EACLRecord) SetAction(v Action) {
x.Action = v
}
-func (x *EACLRecord) GetFilters() []*EACLRecord_Filter {
+func (x *EACLRecord) GetFilters() []EACLRecord_Filter {
if x != nil {
return x.Filters
}
return nil
}
-func (x *EACLRecord) SetFilters(v []*EACLRecord_Filter) {
+func (x *EACLRecord) SetFilters(v []EACLRecord_Filter) {
x.Filters = v
}
-func (x *EACLRecord) GetTargets() []*EACLRecord_Target {
+func (x *EACLRecord) GetTargets() []EACLRecord_Target {
if x != nil {
return x.Targets
}
return nil
}
-func (x *EACLRecord) SetTargets(v []*EACLRecord_Target) {
+func (x *EACLRecord) SetTargets(v []EACLRecord_Target) {
x.Targets = v
}
@@ -921,11 +917,11 @@ func (x *EACLRecord) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "filters":
{
- var f *EACLRecord_Filter
- var list []*EACLRecord_Filter
+ var f EACLRecord_Filter
+ var list []EACLRecord_Filter
in.Delim('[')
for !in.IsDelim(']') {
- f = new(EACLRecord_Filter)
+ f = EACLRecord_Filter{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -935,11 +931,11 @@ func (x *EACLRecord) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "targets":
{
- var f *EACLRecord_Target
- var list []*EACLRecord_Target
+ var f EACLRecord_Target
+ var list []EACLRecord_Target
in.Delim('[')
for !in.IsDelim(']') {
- f = new(EACLRecord_Target)
+ f = EACLRecord_Target{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -959,7 +955,7 @@ func (x *EACLRecord) UnmarshalEasyJSON(in *jlexer.Lexer) {
type EACLTable struct {
Version *grpc.Version `json:"version"`
ContainerId *grpc.ContainerID `json:"containerID"`
- Records []*EACLRecord `json:"records"`
+ Records []EACLRecord `json:"records"`
}
var (
@@ -979,7 +975,7 @@ func (x *EACLTable) StableSize() (size int) {
size += proto.NestedStructureSize(1, x.Version)
size += proto.NestedStructureSize(2, x.ContainerId)
for i := range x.Records {
- size += proto.NestedStructureSize(3, x.Records[i])
+ size += proto.NestedStructureSizeUnchecked(3, &x.Records[i])
}
return size
}
@@ -1004,9 +1000,7 @@ func (x *EACLTable) EmitProtobuf(mm *easyproto.MessageMarshaler) {
x.ContainerId.EmitProtobuf(mm.AppendMessage(2))
}
for i := range x.Records {
- if x.Records[i] != nil {
- x.Records[i].EmitProtobuf(mm.AppendMessage(3))
- }
+ x.Records[i].EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -1042,8 +1036,8 @@ func (x *EACLTable) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Records")
}
- x.Records = append(x.Records, new(EACLRecord))
- ff := x.Records[len(x.Records)-1]
+ x.Records = append(x.Records, EACLRecord{})
+ ff := &x.Records[len(x.Records)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1069,13 +1063,13 @@ func (x *EACLTable) GetContainerId() *grpc.ContainerID {
func (x *EACLTable) SetContainerId(v *grpc.ContainerID) {
x.ContainerId = v
}
-func (x *EACLTable) GetRecords() []*EACLRecord {
+func (x *EACLTable) GetRecords() []EACLRecord {
if x != nil {
return x.Records
}
return nil
}
-func (x *EACLTable) SetRecords(v []*EACLRecord) {
+func (x *EACLTable) SetRecords(v []EACLRecord) {
x.Records = v
}
@@ -1157,11 +1151,11 @@ func (x *EACLTable) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "records":
{
- var f *EACLRecord
- var list []*EACLRecord
+ var f EACLRecord
+ var list []EACLRecord
in.Delim('[')
for !in.IsDelim(']') {
- f = new(EACLRecord)
+ f = EACLRecord{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -1371,7 +1365,7 @@ func (x *BearerToken_Body_TokenLifetime) UnmarshalEasyJSON(in *jlexer.Lexer) {
type BearerToken_Body_APEOverride struct {
Target *grpc1.ChainTarget `json:"target"`
- Chains []*grpc1.Chain `json:"chains"`
+ Chains []grpc1.Chain `json:"chains"`
}
var (
@@ -1390,7 +1384,7 @@ func (x *BearerToken_Body_APEOverride) StableSize() (size int) {
}
size += proto.NestedStructureSize(1, x.Target)
for i := range x.Chains {
- size += proto.NestedStructureSize(2, x.Chains[i])
+ size += proto.NestedStructureSizeUnchecked(2, &x.Chains[i])
}
return size
}
@@ -1412,9 +1406,7 @@ func (x *BearerToken_Body_APEOverride) EmitProtobuf(mm *easyproto.MessageMarshal
x.Target.EmitProtobuf(mm.AppendMessage(1))
}
for i := range x.Chains {
- if x.Chains[i] != nil {
- x.Chains[i].EmitProtobuf(mm.AppendMessage(2))
- }
+ x.Chains[i].EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -1441,8 +1433,8 @@ func (x *BearerToken_Body_APEOverride) UnmarshalProtobuf(src []byte) (err error)
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Chains")
}
- x.Chains = append(x.Chains, new(grpc1.Chain))
- ff := x.Chains[len(x.Chains)-1]
+ x.Chains = append(x.Chains, grpc1.Chain{})
+ ff := &x.Chains[len(x.Chains)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1459,13 +1451,13 @@ func (x *BearerToken_Body_APEOverride) GetTarget() *grpc1.ChainTarget {
func (x *BearerToken_Body_APEOverride) SetTarget(v *grpc1.ChainTarget) {
x.Target = v
}
-func (x *BearerToken_Body_APEOverride) GetChains() []*grpc1.Chain {
+func (x *BearerToken_Body_APEOverride) GetChains() []grpc1.Chain {
if x != nil {
return x.Chains
}
return nil
}
-func (x *BearerToken_Body_APEOverride) SetChains(v []*grpc1.Chain) {
+func (x *BearerToken_Body_APEOverride) SetChains(v []grpc1.Chain) {
x.Chains = v
}
@@ -1535,11 +1527,11 @@ func (x *BearerToken_Body_APEOverride) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "chains":
{
- var f *grpc1.Chain
- var list []*grpc1.Chain
+ var f grpc1.Chain
+ var list []grpc1.Chain
in.Delim('[')
for !in.IsDelim(']') {
- f = new(grpc1.Chain)
+ f = grpc1.Chain{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/apemanager/convert.go b/apemanager/convert.go
index fdc5132..5677b25 100644
--- a/apemanager/convert.go
+++ b/apemanager/convert.go
@@ -296,9 +296,9 @@ func (respBody *ListChainsResponseBody) ToGRPCMessage() grpc.Message {
if respBody != nil {
respBodygrpc = new(apemanager.ListChainsResponse_Body)
- chainsgrpc := make([]*apeGRPC.Chain, 0, len(respBody.GetChains()))
+ chainsgrpc := make([]apeGRPC.Chain, 0, len(respBody.GetChains()))
for _, chain := range respBody.GetChains() {
- chainsgrpc = append(chainsgrpc, chain.ToGRPCMessage().(*apeGRPC.Chain))
+ chainsgrpc = append(chainsgrpc, *chain.ToGRPCMessage().(*apeGRPC.Chain))
}
respBodygrpc.SetChains(chainsgrpc)
@@ -317,7 +317,7 @@ func (respBody *ListChainsResponseBody) FromGRPCMessage(m grpc.Message) error {
for _, chaingrpc := range respBodygrpc.GetChains() {
chain := new(ape.Chain)
- if err := chain.FromGRPCMessage(chaingrpc); err != nil {
+ if err := chain.FromGRPCMessage(&chaingrpc); err != nil {
return err
}
chains = append(chains, chain)
diff --git a/apemanager/grpc/service_frostfs.pb.go b/apemanager/grpc/service_frostfs.pb.go
index c1d28ed..99abeb2 100644
--- a/apemanager/grpc/service_frostfs.pb.go
+++ b/apemanager/grpc/service_frostfs.pb.go
@@ -1810,7 +1810,7 @@ func (x *ListChainsRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type ListChainsResponse_Body struct {
- Chains []*grpc.Chain `json:"chains"`
+ Chains []grpc.Chain `json:"chains"`
}
var (
@@ -1828,7 +1828,7 @@ func (x *ListChainsResponse_Body) StableSize() (size int) {
return 0
}
for i := range x.Chains {
- size += proto.NestedStructureSize(1, x.Chains[i])
+ size += proto.NestedStructureSizeUnchecked(1, &x.Chains[i])
}
return size
}
@@ -1847,9 +1847,7 @@ func (x *ListChainsResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Chains {
- if x.Chains[i] != nil {
- x.Chains[i].EmitProtobuf(mm.AppendMessage(1))
- }
+ x.Chains[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -1867,8 +1865,8 @@ func (x *ListChainsResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Chains")
}
- x.Chains = append(x.Chains, new(grpc.Chain))
- ff := x.Chains[len(x.Chains)-1]
+ x.Chains = append(x.Chains, grpc.Chain{})
+ ff := &x.Chains[len(x.Chains)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1876,13 +1874,13 @@ func (x *ListChainsResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
}
return nil
}
-func (x *ListChainsResponse_Body) GetChains() []*grpc.Chain {
+func (x *ListChainsResponse_Body) GetChains() []grpc.Chain {
if x != nil {
return x.Chains
}
return nil
}
-func (x *ListChainsResponse_Body) SetChains(v []*grpc.Chain) {
+func (x *ListChainsResponse_Body) SetChains(v []grpc.Chain) {
x.Chains = v
}
@@ -1940,11 +1938,11 @@ func (x *ListChainsResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
switch key {
case "chains":
{
- var f *grpc.Chain
- var list []*grpc.Chain
+ var f grpc.Chain
+ var list []grpc.Chain
in.Delim('[')
for !in.IsDelim(']') {
- f = new(grpc.Chain)
+ f = grpc.Chain{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/container/convert.go b/container/convert.go
index c5f9cd7..b487f40 100644
--- a/container/convert.go
+++ b/container/convert.go
@@ -39,28 +39,26 @@ func (a *Attribute) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func AttributesToGRPC(xs []Attribute) (res []*container.Container_Attribute) {
+func AttributesToGRPC(xs []Attribute) (res []container.Container_Attribute) {
if xs != nil {
- res = make([]*container.Container_Attribute, 0, len(xs))
+ res = make([]container.Container_Attribute, 0, len(xs))
for i := range xs {
- res = append(res, xs[i].ToGRPCMessage().(*container.Container_Attribute))
+ res = append(res, *xs[i].ToGRPCMessage().(*container.Container_Attribute))
}
}
return
}
-func AttributesFromGRPC(xs []*container.Container_Attribute) (res []Attribute, err error) {
+func AttributesFromGRPC(xs []container.Container_Attribute) (res []Attribute, err error) {
if xs != nil {
res = make([]Attribute, len(xs))
for i := range xs {
- if xs[i] != nil {
- err = res[i].FromGRPCMessage(xs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&xs[i])
+ if err != nil {
+ return
}
}
}
diff --git a/container/grpc/service_frostfs.pb.go b/container/grpc/service_frostfs.pb.go
index 514f03b..f38b0de 100644
--- a/container/grpc/service_frostfs.pb.go
+++ b/container/grpc/service_frostfs.pb.go
@@ -2597,7 +2597,7 @@ func (x *ListRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type ListResponse_Body struct {
- ContainerIds []*grpc.ContainerID `json:"containerIds"`
+ ContainerIds []grpc.ContainerID `json:"containerIds"`
}
var (
@@ -2615,7 +2615,7 @@ func (x *ListResponse_Body) StableSize() (size int) {
return 0
}
for i := range x.ContainerIds {
- size += proto.NestedStructureSize(1, x.ContainerIds[i])
+ size += proto.NestedStructureSizeUnchecked(1, &x.ContainerIds[i])
}
return size
}
@@ -2634,9 +2634,7 @@ func (x *ListResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.ContainerIds {
- if x.ContainerIds[i] != nil {
- x.ContainerIds[i].EmitProtobuf(mm.AppendMessage(1))
- }
+ x.ContainerIds[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2654,8 +2652,8 @@ func (x *ListResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "ContainerIds")
}
- x.ContainerIds = append(x.ContainerIds, new(grpc.ContainerID))
- ff := x.ContainerIds[len(x.ContainerIds)-1]
+ x.ContainerIds = append(x.ContainerIds, grpc.ContainerID{})
+ ff := &x.ContainerIds[len(x.ContainerIds)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -2663,13 +2661,13 @@ func (x *ListResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
}
return nil
}
-func (x *ListResponse_Body) GetContainerIds() []*grpc.ContainerID {
+func (x *ListResponse_Body) GetContainerIds() []grpc.ContainerID {
if x != nil {
return x.ContainerIds
}
return nil
}
-func (x *ListResponse_Body) SetContainerIds(v []*grpc.ContainerID) {
+func (x *ListResponse_Body) SetContainerIds(v []grpc.ContainerID) {
x.ContainerIds = v
}
@@ -2727,11 +2725,11 @@ func (x *ListResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
switch key {
case "containerIds":
{
- var f *grpc.ContainerID
- var list []*grpc.ContainerID
+ var f grpc.ContainerID
+ var list []grpc.ContainerID
in.Delim('[')
for !in.IsDelim(']') {
- f = new(grpc.ContainerID)
+ f = grpc.ContainerID{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/container/grpc/types_frostfs.pb.go b/container/grpc/types_frostfs.pb.go
index dcb9cf4..3010eb0 100644
--- a/container/grpc/types_frostfs.pb.go
+++ b/container/grpc/types_frostfs.pb.go
@@ -180,7 +180,7 @@ type Container struct {
OwnerId *grpc.OwnerID `json:"ownerID"`
Nonce []byte `json:"nonce"`
BasicAcl uint32 `json:"basicACL"`
- Attributes []*Container_Attribute `json:"attributes"`
+ Attributes []Container_Attribute `json:"attributes"`
PlacementPolicy *grpc1.PlacementPolicy `json:"placementPolicy"`
}
@@ -203,7 +203,7 @@ func (x *Container) StableSize() (size int) {
size += proto.BytesSize(3, x.Nonce)
size += proto.UInt32Size(4, x.BasicAcl)
for i := range x.Attributes {
- size += proto.NestedStructureSize(5, x.Attributes[i])
+ size += proto.NestedStructureSizeUnchecked(5, &x.Attributes[i])
}
size += proto.NestedStructureSize(6, x.PlacementPolicy)
return size
@@ -235,9 +235,7 @@ func (x *Container) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint32(4, x.BasicAcl)
}
for i := range x.Attributes {
- if x.Attributes[i] != nil {
- x.Attributes[i].EmitProtobuf(mm.AppendMessage(5))
- }
+ x.Attributes[i].EmitProtobuf(mm.AppendMessage(5))
}
if x.PlacementPolicy != nil {
x.PlacementPolicy.EmitProtobuf(mm.AppendMessage(6))
@@ -288,8 +286,8 @@ func (x *Container) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Attributes")
}
- x.Attributes = append(x.Attributes, new(Container_Attribute))
- ff := x.Attributes[len(x.Attributes)-1]
+ x.Attributes = append(x.Attributes, Container_Attribute{})
+ ff := &x.Attributes[len(x.Attributes)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -342,13 +340,13 @@ func (x *Container) GetBasicAcl() uint32 {
func (x *Container) SetBasicAcl(v uint32) {
x.BasicAcl = v
}
-func (x *Container) GetAttributes() []*Container_Attribute {
+func (x *Container) GetAttributes() []Container_Attribute {
if x != nil {
return x.Attributes
}
return nil
}
-func (x *Container) SetAttributes(v []*Container_Attribute) {
+func (x *Container) SetAttributes(v []Container_Attribute) {
x.Attributes = v
}
func (x *Container) GetPlacementPolicy() *grpc1.PlacementPolicy {
@@ -466,11 +464,11 @@ func (x *Container) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "attributes":
{
- var f *Container_Attribute
- var list []*Container_Attribute
+ var f Container_Attribute
+ var list []Container_Attribute
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Container_Attribute)
+ f = Container_Attribute{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/lock/grpc/types_frostfs.pb.go b/lock/grpc/types_frostfs.pb.go
index 52a1a2d..58be895 100644
--- a/lock/grpc/types_frostfs.pb.go
+++ b/lock/grpc/types_frostfs.pb.go
@@ -15,7 +15,7 @@ import (
)
type Lock struct {
- Members []*grpc.ObjectID `json:"members"`
+ Members []grpc.ObjectID `json:"members"`
}
var (
@@ -33,7 +33,7 @@ func (x *Lock) StableSize() (size int) {
return 0
}
for i := range x.Members {
- size += proto.NestedStructureSize(1, x.Members[i])
+ size += proto.NestedStructureSizeUnchecked(1, &x.Members[i])
}
return size
}
@@ -52,9 +52,7 @@ func (x *Lock) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Members {
- if x.Members[i] != nil {
- x.Members[i].EmitProtobuf(mm.AppendMessage(1))
- }
+ x.Members[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -72,8 +70,8 @@ func (x *Lock) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Members")
}
- x.Members = append(x.Members, new(grpc.ObjectID))
- ff := x.Members[len(x.Members)-1]
+ x.Members = append(x.Members, grpc.ObjectID{})
+ ff := &x.Members[len(x.Members)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -81,13 +79,13 @@ func (x *Lock) UnmarshalProtobuf(src []byte) (err error) {
}
return nil
}
-func (x *Lock) GetMembers() []*grpc.ObjectID {
+func (x *Lock) GetMembers() []grpc.ObjectID {
if x != nil {
return x.Members
}
return nil
}
-func (x *Lock) SetMembers(v []*grpc.ObjectID) {
+func (x *Lock) SetMembers(v []grpc.ObjectID) {
x.Members = v
}
@@ -145,11 +143,11 @@ func (x *Lock) UnmarshalEasyJSON(in *jlexer.Lexer) {
switch key {
case "members":
{
- var f *grpc.ObjectID
- var list []*grpc.ObjectID
+ var f grpc.ObjectID
+ var list []grpc.ObjectID
in.Delim('[')
for !in.IsDelim(']') {
- f = new(grpc.ObjectID)
+ f = grpc.ObjectID{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/netmap/convert.go b/netmap/convert.go
index fad7380..659b798 100644
--- a/netmap/convert.go
+++ b/netmap/convert.go
@@ -45,28 +45,26 @@ func (f *Filter) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func FiltersToGRPC(fs []Filter) (res []*netmap.Filter) {
+func FiltersToGRPC(fs []Filter) (res []netmap.Filter) {
if fs != nil {
- res = make([]*netmap.Filter, 0, len(fs))
+ res = make([]netmap.Filter, 0, len(fs))
for i := range fs {
- res = append(res, fs[i].ToGRPCMessage().(*netmap.Filter))
+ res = append(res, *fs[i].ToGRPCMessage().(*netmap.Filter))
}
}
return
}
-func FiltersFromGRPC(fs []*netmap.Filter) (res []Filter, err error) {
+func FiltersFromGRPC(fs []netmap.Filter) (res []Filter, err error) {
if fs != nil {
res = make([]Filter, len(fs))
for i := range fs {
- if fs[i] != nil {
- err = res[i].FromGRPCMessage(fs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&fs[i])
+ if err != nil {
+ return
}
}
}
@@ -105,28 +103,26 @@ func (s *Selector) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func SelectorsToGRPC(ss []Selector) (res []*netmap.Selector) {
+func SelectorsToGRPC(ss []Selector) (res []netmap.Selector) {
if ss != nil {
- res = make([]*netmap.Selector, 0, len(ss))
+ res = make([]netmap.Selector, 0, len(ss))
for i := range ss {
- res = append(res, ss[i].ToGRPCMessage().(*netmap.Selector))
+ res = append(res, *ss[i].ToGRPCMessage().(*netmap.Selector))
}
}
return
}
-func SelectorsFromGRPC(ss []*netmap.Selector) (res []Selector, err error) {
+func SelectorsFromGRPC(ss []netmap.Selector) (res []Selector, err error) {
if ss != nil {
res = make([]Selector, len(ss))
for i := range ss {
- if ss[i] != nil {
- err = res[i].FromGRPCMessage(ss[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&ss[i])
+ if err != nil {
+ return
}
}
}
@@ -163,28 +159,26 @@ func (r *Replica) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func ReplicasToGRPC(rs []Replica) (res []*netmap.Replica) {
+func ReplicasToGRPC(rs []Replica) (res []netmap.Replica) {
if rs != nil {
- res = make([]*netmap.Replica, 0, len(rs))
+ res = make([]netmap.Replica, 0, len(rs))
for i := range rs {
- res = append(res, rs[i].ToGRPCMessage().(*netmap.Replica))
+ res = append(res, *rs[i].ToGRPCMessage().(*netmap.Replica))
}
}
return
}
-func ReplicasFromGRPC(rs []*netmap.Replica) (res []Replica, err error) {
+func ReplicasFromGRPC(rs []netmap.Replica) (res []Replica, err error) {
if rs != nil {
res = make([]Replica, len(rs))
for i := range rs {
- if rs[i] != nil {
- err = res[i].FromGRPCMessage(rs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&rs[i])
+ if err != nil {
+ return
}
}
}
@@ -289,28 +283,26 @@ func (a *Attribute) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func AttributesToGRPC(as []Attribute) (res []*netmap.NodeInfo_Attribute) {
+func AttributesToGRPC(as []Attribute) (res []netmap.NodeInfo_Attribute) {
if as != nil {
- res = make([]*netmap.NodeInfo_Attribute, 0, len(as))
+ res = make([]netmap.NodeInfo_Attribute, 0, len(as))
for i := range as {
- res = append(res, as[i].ToGRPCMessage().(*netmap.NodeInfo_Attribute))
+ res = append(res, *as[i].ToGRPCMessage().(*netmap.NodeInfo_Attribute))
}
}
return
}
-func AttributesFromGRPC(as []*netmap.NodeInfo_Attribute) (res []Attribute, err error) {
+func AttributesFromGRPC(as []netmap.NodeInfo_Attribute) (res []Attribute, err error) {
if as != nil {
res = make([]Attribute, len(as))
for i := range as {
- if as[i] != nil {
- err = res[i].FromGRPCMessage(as[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&as[i])
+ if err != nil {
+ return
}
}
}
@@ -528,13 +520,13 @@ func (x *NetworkConfig) ToGRPCMessage() grpc.Message {
if x != nil {
m = new(netmap.NetworkConfig)
- var ps []*netmap.NetworkConfig_Parameter
+ var ps []netmap.NetworkConfig_Parameter
if ln := len(x.ps); ln > 0 {
- ps = make([]*netmap.NetworkConfig_Parameter, 0, ln)
+ ps = make([]netmap.NetworkConfig_Parameter, 0, ln)
for i := 0; i < ln; i++ {
- ps = append(ps, x.ps[i].ToGRPCMessage().(*netmap.NetworkConfig_Parameter))
+ ps = append(ps, *x.ps[i].ToGRPCMessage().(*netmap.NetworkConfig_Parameter))
}
}
@@ -561,10 +553,8 @@ func (x *NetworkConfig) FromGRPCMessage(m grpc.Message) error {
ps = make([]NetworkParameter, ln)
for i := 0; i < ln; i++ {
- if psV2[i] != nil {
- if err := ps[i].FromGRPCMessage(psV2[i]); err != nil {
- return err
- }
+ if err := ps[i].FromGRPCMessage(&psV2[i]); err != nil {
+ return err
}
}
}
@@ -756,10 +746,10 @@ func (x *NetMap) ToGRPCMessage() grpc.Message {
m.SetEpoch(x.epoch)
if x.nodes != nil {
- nodes := make([]*netmap.NodeInfo, len(x.nodes))
+ nodes := make([]netmap.NodeInfo, len(x.nodes))
for i := range x.nodes {
- nodes[i] = x.nodes[i].ToGRPCMessage().(*netmap.NodeInfo)
+ nodes[i] = *x.nodes[i].ToGRPCMessage().(*netmap.NodeInfo)
}
m.SetNodes(nodes)
@@ -784,7 +774,7 @@ func (x *NetMap) FromGRPCMessage(m grpc.Message) error {
x.nodes = make([]NodeInfo, len(nodes))
for i := range nodes {
- err = x.nodes[i].FromGRPCMessage(nodes[i])
+ err = x.nodes[i].FromGRPCMessage(&nodes[i])
if err != nil {
return err
}
diff --git a/netmap/grpc/types_frostfs.pb.go b/netmap/grpc/types_frostfs.pb.go
index 6ecf0fa..e7597ea 100644
--- a/netmap/grpc/types_frostfs.pb.go
+++ b/netmap/grpc/types_frostfs.pb.go
@@ -113,7 +113,7 @@ type Filter struct {
Key string `json:"key"`
Op Operation `json:"op"`
Value string `json:"value"`
- Filters []*Filter `json:"filters"`
+ Filters []Filter `json:"filters"`
}
var (
@@ -135,7 +135,7 @@ func (x *Filter) StableSize() (size int) {
size += proto.EnumSize(3, int32(x.Op))
size += proto.StringSize(4, x.Value)
for i := range x.Filters {
- size += proto.NestedStructureSize(5, x.Filters[i])
+ size += proto.NestedStructureSizeUnchecked(5, &x.Filters[i])
}
return size
}
@@ -166,9 +166,7 @@ func (x *Filter) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendString(4, x.Value)
}
for i := range x.Filters {
- if x.Filters[i] != nil {
- x.Filters[i].EmitProtobuf(mm.AppendMessage(5))
- }
+ x.Filters[i].EmitProtobuf(mm.AppendMessage(5))
}
}
@@ -210,8 +208,8 @@ func (x *Filter) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Filters")
}
- x.Filters = append(x.Filters, new(Filter))
- ff := x.Filters[len(x.Filters)-1]
+ x.Filters = append(x.Filters, Filter{})
+ ff := &x.Filters[len(x.Filters)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -255,13 +253,13 @@ func (x *Filter) GetValue() string {
func (x *Filter) SetValue(v string) {
x.Value = v
}
-func (x *Filter) GetFilters() []*Filter {
+func (x *Filter) GetFilters() []Filter {
if x != nil {
return x.Filters
}
return nil
}
-func (x *Filter) SetFilters(v []*Filter) {
+func (x *Filter) SetFilters(v []Filter) {
x.Filters = v
}
@@ -379,11 +377,11 @@ func (x *Filter) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "filters":
{
- var f *Filter
- var list []*Filter
+ var f Filter
+ var list []Filter
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Filter)
+ f = Filter{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -892,11 +890,11 @@ func (x *Replica) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type PlacementPolicy struct {
- Replicas []*Replica `json:"replicas"`
- ContainerBackupFactor uint32 `json:"containerBackupFactor"`
- Selectors []*Selector `json:"selectors"`
- Filters []*Filter `json:"filters"`
- Unique bool `json:"unique"`
+ Replicas []Replica `json:"replicas"`
+ ContainerBackupFactor uint32 `json:"containerBackupFactor"`
+ Selectors []Selector `json:"selectors"`
+ Filters []Filter `json:"filters"`
+ Unique bool `json:"unique"`
}
var (
@@ -914,14 +912,14 @@ func (x *PlacementPolicy) StableSize() (size int) {
return 0
}
for i := range x.Replicas {
- size += proto.NestedStructureSize(1, x.Replicas[i])
+ size += proto.NestedStructureSizeUnchecked(1, &x.Replicas[i])
}
size += proto.UInt32Size(2, x.ContainerBackupFactor)
for i := range x.Selectors {
- size += proto.NestedStructureSize(3, x.Selectors[i])
+ size += proto.NestedStructureSizeUnchecked(3, &x.Selectors[i])
}
for i := range x.Filters {
- size += proto.NestedStructureSize(4, x.Filters[i])
+ size += proto.NestedStructureSizeUnchecked(4, &x.Filters[i])
}
size += proto.BoolSize(5, x.Unique)
return size
@@ -941,22 +939,16 @@ func (x *PlacementPolicy) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Replicas {
- if x.Replicas[i] != nil {
- x.Replicas[i].EmitProtobuf(mm.AppendMessage(1))
- }
+ x.Replicas[i].EmitProtobuf(mm.AppendMessage(1))
}
if x.ContainerBackupFactor != 0 {
mm.AppendUint32(2, x.ContainerBackupFactor)
}
for i := range x.Selectors {
- if x.Selectors[i] != nil {
- x.Selectors[i].EmitProtobuf(mm.AppendMessage(3))
- }
+ x.Selectors[i].EmitProtobuf(mm.AppendMessage(3))
}
for i := range x.Filters {
- if x.Filters[i] != nil {
- x.Filters[i].EmitProtobuf(mm.AppendMessage(4))
- }
+ x.Filters[i].EmitProtobuf(mm.AppendMessage(4))
}
if x.Unique {
mm.AppendBool(5, x.Unique)
@@ -977,8 +969,8 @@ func (x *PlacementPolicy) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Replicas")
}
- x.Replicas = append(x.Replicas, new(Replica))
- ff := x.Replicas[len(x.Replicas)-1]
+ x.Replicas = append(x.Replicas, Replica{})
+ ff := &x.Replicas[len(x.Replicas)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -993,8 +985,8 @@ func (x *PlacementPolicy) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Selectors")
}
- x.Selectors = append(x.Selectors, new(Selector))
- ff := x.Selectors[len(x.Selectors)-1]
+ x.Selectors = append(x.Selectors, Selector{})
+ ff := &x.Selectors[len(x.Selectors)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1003,8 +995,8 @@ func (x *PlacementPolicy) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Filters")
}
- x.Filters = append(x.Filters, new(Filter))
- ff := x.Filters[len(x.Filters)-1]
+ x.Filters = append(x.Filters, Filter{})
+ ff := &x.Filters[len(x.Filters)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1018,13 +1010,13 @@ func (x *PlacementPolicy) UnmarshalProtobuf(src []byte) (err error) {
}
return nil
}
-func (x *PlacementPolicy) GetReplicas() []*Replica {
+func (x *PlacementPolicy) GetReplicas() []Replica {
if x != nil {
return x.Replicas
}
return nil
}
-func (x *PlacementPolicy) SetReplicas(v []*Replica) {
+func (x *PlacementPolicy) SetReplicas(v []Replica) {
x.Replicas = v
}
func (x *PlacementPolicy) GetContainerBackupFactor() uint32 {
@@ -1036,22 +1028,22 @@ func (x *PlacementPolicy) GetContainerBackupFactor() uint32 {
func (x *PlacementPolicy) SetContainerBackupFactor(v uint32) {
x.ContainerBackupFactor = v
}
-func (x *PlacementPolicy) GetSelectors() []*Selector {
+func (x *PlacementPolicy) GetSelectors() []Selector {
if x != nil {
return x.Selectors
}
return nil
}
-func (x *PlacementPolicy) SetSelectors(v []*Selector) {
+func (x *PlacementPolicy) SetSelectors(v []Selector) {
x.Selectors = v
}
-func (x *PlacementPolicy) GetFilters() []*Filter {
+func (x *PlacementPolicy) GetFilters() []Filter {
if x != nil {
return x.Filters
}
return nil
}
-func (x *PlacementPolicy) SetFilters(v []*Filter) {
+func (x *PlacementPolicy) SetFilters(v []Filter) {
x.Filters = v
}
func (x *PlacementPolicy) GetUnique() bool {
@@ -1152,11 +1144,11 @@ func (x *PlacementPolicy) UnmarshalEasyJSON(in *jlexer.Lexer) {
switch key {
case "replicas":
{
- var f *Replica
- var list []*Replica
+ var f Replica
+ var list []Replica
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Replica)
+ f = Replica{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -1172,11 +1164,11 @@ func (x *PlacementPolicy) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "selectors":
{
- var f *Selector
- var list []*Selector
+ var f Selector
+ var list []Selector
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Selector)
+ f = Selector{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -1186,11 +1178,11 @@ func (x *PlacementPolicy) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "filters":
{
- var f *Filter
- var list []*Filter
+ var f Filter
+ var list []Filter
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Filter)
+ f = Filter{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -1457,10 +1449,10 @@ func (x *NodeInfo_Attribute) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type NodeInfo struct {
- PublicKey []byte `json:"publicKey"`
- Addresses []string `json:"addresses"`
- Attributes []*NodeInfo_Attribute `json:"attributes"`
- State NodeInfo_State `json:"state"`
+ PublicKey []byte `json:"publicKey"`
+ Addresses []string `json:"addresses"`
+ Attributes []NodeInfo_Attribute `json:"attributes"`
+ State NodeInfo_State `json:"state"`
}
var (
@@ -1480,7 +1472,7 @@ func (x *NodeInfo) StableSize() (size int) {
size += proto.BytesSize(1, x.PublicKey)
size += proto.RepeatedStringSize(2, x.Addresses)
for i := range x.Attributes {
- size += proto.NestedStructureSize(3, x.Attributes[i])
+ size += proto.NestedStructureSizeUnchecked(3, &x.Attributes[i])
}
size += proto.EnumSize(4, int32(x.State))
return size
@@ -1506,9 +1498,7 @@ func (x *NodeInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendString(2, x.Addresses[j])
}
for i := range x.Attributes {
- if x.Attributes[i] != nil {
- x.Attributes[i].EmitProtobuf(mm.AppendMessage(3))
- }
+ x.Attributes[i].EmitProtobuf(mm.AppendMessage(3))
}
if int32(x.State) != 0 {
mm.AppendInt32(4, int32(x.State))
@@ -1541,8 +1531,8 @@ func (x *NodeInfo) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Attributes")
}
- x.Attributes = append(x.Attributes, new(NodeInfo_Attribute))
- ff := x.Attributes[len(x.Attributes)-1]
+ x.Attributes = append(x.Attributes, NodeInfo_Attribute{})
+ ff := &x.Attributes[len(x.Attributes)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1574,13 +1564,13 @@ func (x *NodeInfo) GetAddresses() []string {
func (x *NodeInfo) SetAddresses(v []string) {
x.Addresses = v
}
-func (x *NodeInfo) GetAttributes() []*NodeInfo_Attribute {
+func (x *NodeInfo) GetAttributes() []NodeInfo_Attribute {
if x != nil {
return x.Attributes
}
return nil
}
-func (x *NodeInfo) SetAttributes(v []*NodeInfo_Attribute) {
+func (x *NodeInfo) SetAttributes(v []NodeInfo_Attribute) {
x.Attributes = v
}
func (x *NodeInfo) GetState() NodeInfo_State {
@@ -1688,11 +1678,11 @@ func (x *NodeInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "attributes":
{
- var f *NodeInfo_Attribute
- var list []*NodeInfo_Attribute
+ var f NodeInfo_Attribute
+ var list []NodeInfo_Attribute
in.Delim('[')
for !in.IsDelim(']') {
- f = new(NodeInfo_Attribute)
+ f = NodeInfo_Attribute{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -1732,8 +1722,8 @@ func (x *NodeInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type Netmap struct {
- Epoch uint64 `json:"epoch"`
- Nodes []*NodeInfo `json:"nodes"`
+ Epoch uint64 `json:"epoch"`
+ Nodes []NodeInfo `json:"nodes"`
}
var (
@@ -1752,7 +1742,7 @@ func (x *Netmap) StableSize() (size int) {
}
size += proto.UInt64Size(1, x.Epoch)
for i := range x.Nodes {
- size += proto.NestedStructureSize(2, x.Nodes[i])
+ size += proto.NestedStructureSizeUnchecked(2, &x.Nodes[i])
}
return size
}
@@ -1774,9 +1764,7 @@ func (x *Netmap) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint64(1, x.Epoch)
}
for i := range x.Nodes {
- if x.Nodes[i] != nil {
- x.Nodes[i].EmitProtobuf(mm.AppendMessage(2))
- }
+ x.Nodes[i].EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -1800,8 +1788,8 @@ func (x *Netmap) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Nodes")
}
- x.Nodes = append(x.Nodes, new(NodeInfo))
- ff := x.Nodes[len(x.Nodes)-1]
+ x.Nodes = append(x.Nodes, NodeInfo{})
+ ff := &x.Nodes[len(x.Nodes)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1818,13 +1806,13 @@ func (x *Netmap) GetEpoch() uint64 {
func (x *Netmap) SetEpoch(v uint64) {
x.Epoch = v
}
-func (x *Netmap) GetNodes() []*NodeInfo {
+func (x *Netmap) GetNodes() []NodeInfo {
if x != nil {
return x.Nodes
}
return nil
}
-func (x *Netmap) SetNodes(v []*NodeInfo) {
+func (x *Netmap) SetNodes(v []NodeInfo) {
x.Nodes = v
}
@@ -1893,11 +1881,11 @@ func (x *Netmap) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "nodes":
{
- var f *NodeInfo
- var list []*NodeInfo
+ var f NodeInfo
+ var list []NodeInfo
in.Delim('[')
for !in.IsDelim(']') {
- f = new(NodeInfo)
+ f = NodeInfo{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -2075,7 +2063,7 @@ func (x *NetworkConfig_Parameter) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type NetworkConfig struct {
- Parameters []*NetworkConfig_Parameter `json:"parameters"`
+ Parameters []NetworkConfig_Parameter `json:"parameters"`
}
var (
@@ -2093,7 +2081,7 @@ func (x *NetworkConfig) StableSize() (size int) {
return 0
}
for i := range x.Parameters {
- size += proto.NestedStructureSize(1, x.Parameters[i])
+ size += proto.NestedStructureSizeUnchecked(1, &x.Parameters[i])
}
return size
}
@@ -2112,9 +2100,7 @@ func (x *NetworkConfig) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Parameters {
- if x.Parameters[i] != nil {
- x.Parameters[i].EmitProtobuf(mm.AppendMessage(1))
- }
+ x.Parameters[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2132,8 +2118,8 @@ func (x *NetworkConfig) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Parameters")
}
- x.Parameters = append(x.Parameters, new(NetworkConfig_Parameter))
- ff := x.Parameters[len(x.Parameters)-1]
+ x.Parameters = append(x.Parameters, NetworkConfig_Parameter{})
+ ff := &x.Parameters[len(x.Parameters)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -2141,13 +2127,13 @@ func (x *NetworkConfig) UnmarshalProtobuf(src []byte) (err error) {
}
return nil
}
-func (x *NetworkConfig) GetParameters() []*NetworkConfig_Parameter {
+func (x *NetworkConfig) GetParameters() []NetworkConfig_Parameter {
if x != nil {
return x.Parameters
}
return nil
}
-func (x *NetworkConfig) SetParameters(v []*NetworkConfig_Parameter) {
+func (x *NetworkConfig) SetParameters(v []NetworkConfig_Parameter) {
x.Parameters = v
}
@@ -2205,11 +2191,11 @@ func (x *NetworkConfig) UnmarshalEasyJSON(in *jlexer.Lexer) {
switch key {
case "parameters":
{
- var f *NetworkConfig_Parameter
- var list []*NetworkConfig_Parameter
+ var f NetworkConfig_Parameter
+ var list []NetworkConfig_Parameter
in.Delim('[')
for !in.IsDelim(']') {
- f = new(NetworkConfig_Parameter)
+ f = NetworkConfig_Parameter{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/object/convert.go b/object/convert.go
index e237883..88e6ab7 100644
--- a/object/convert.go
+++ b/object/convert.go
@@ -142,28 +142,26 @@ func (a *Attribute) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func AttributesToGRPC(xs []Attribute) (res []*object.Header_Attribute) {
+func AttributesToGRPC(xs []Attribute) (res []object.Header_Attribute) {
if xs != nil {
- res = make([]*object.Header_Attribute, 0, len(xs))
+ res = make([]object.Header_Attribute, 0, len(xs))
for i := range xs {
- res = append(res, xs[i].ToGRPCMessage().(*object.Header_Attribute))
+ res = append(res, *xs[i].ToGRPCMessage().(*object.Header_Attribute))
}
}
return
}
-func AttributesFromGRPC(xs []*object.Header_Attribute) (res []Attribute, err error) {
+func AttributesFromGRPC(xs []object.Header_Attribute) (res []Attribute, err error) {
if xs != nil {
res = make([]Attribute, len(xs))
for i := range xs {
- if xs[i] != nil {
- err = res[i].FromGRPCMessage(xs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&xs[i])
+ if err != nil {
+ return
}
}
}
@@ -683,9 +681,9 @@ func (s *ECInfo) ToGRPCMessage() grpc.Message {
m = new(object.ECInfo)
if s.Chunks != nil {
- chunks := make([]*object.ECInfo_Chunk, len(s.Chunks))
+ chunks := make([]object.ECInfo_Chunk, len(s.Chunks))
for i := range chunks {
- chunks[i] = s.Chunks[i].ToGRPCMessage().(*object.ECInfo_Chunk)
+ chunks[i] = *s.Chunks[i].ToGRPCMessage().(*object.ECInfo_Chunk)
}
m.Chunks = chunks
}
@@ -706,7 +704,7 @@ func (s *ECInfo) FromGRPCMessage(m grpc.Message) error {
} else {
s.Chunks = make([]ECChunk, len(chunks))
for i := range chunks {
- if err := s.Chunks[i].FromGRPCMessage(chunks[i]); err != nil {
+ if err := s.Chunks[i].FromGRPCMessage(&chunks[i]); err != nil {
return err
}
}
@@ -1626,28 +1624,26 @@ func (f *SearchFilter) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func SearchFiltersToGRPC(fs []SearchFilter) (res []*object.SearchRequest_Body_Filter) {
+func SearchFiltersToGRPC(fs []SearchFilter) (res []object.SearchRequest_Body_Filter) {
if fs != nil {
- res = make([]*object.SearchRequest_Body_Filter, 0, len(fs))
+ res = make([]object.SearchRequest_Body_Filter, 0, len(fs))
for i := range fs {
- res = append(res, fs[i].ToGRPCMessage().(*object.SearchRequest_Body_Filter))
+ res = append(res, *fs[i].ToGRPCMessage().(*object.SearchRequest_Body_Filter))
}
}
return
}
-func SearchFiltersFromGRPC(fs []*object.SearchRequest_Body_Filter) (res []SearchFilter, err error) {
+func SearchFiltersFromGRPC(fs []object.SearchRequest_Body_Filter) (res []SearchFilter, err error) {
if fs != nil {
res = make([]SearchFilter, len(fs))
for i := range fs {
- if fs[i] != nil {
- err = res[i].FromGRPCMessage(fs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&fs[i])
+ if err != nil {
+ return
}
}
}
@@ -1827,28 +1823,26 @@ func (r *Range) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func RangesToGRPC(rs []Range) (res []*object.Range) {
+func RangesToGRPC(rs []Range) (res []object.Range) {
if rs != nil {
- res = make([]*object.Range, 0, len(rs))
+ res = make([]object.Range, 0, len(rs))
for i := range rs {
- res = append(res, rs[i].ToGRPCMessage().(*object.Range))
+ res = append(res, *rs[i].ToGRPCMessage().(*object.Range))
}
}
return
}
-func RangesFromGRPC(rs []*object.Range) (res []Range, err error) {
+func RangesFromGRPC(rs []object.Range) (res []Range, err error) {
if rs != nil {
res = make([]Range, len(rs))
for i := range rs {
- if rs[i] != nil {
- err = res[i].FromGRPCMessage(rs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&rs[i])
+ if err != nil {
+ return
}
}
}
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
index 0bd0111..dea1b5b 100644
--- a/object/grpc/service_frostfs.pb.go
+++ b/object/grpc/service_frostfs.pb.go
@@ -4201,9 +4201,9 @@ func (x *SearchRequest_Body_Filter) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type SearchRequest_Body struct {
- ContainerId *grpc.ContainerID `json:"containerId"`
- Version uint32 `json:"version"`
- Filters []*SearchRequest_Body_Filter `json:"filters"`
+ ContainerId *grpc.ContainerID `json:"containerId"`
+ Version uint32 `json:"version"`
+ Filters []SearchRequest_Body_Filter `json:"filters"`
}
var (
@@ -4223,7 +4223,7 @@ func (x *SearchRequest_Body) StableSize() (size int) {
size += proto.NestedStructureSize(1, x.ContainerId)
size += proto.UInt32Size(2, x.Version)
for i := range x.Filters {
- size += proto.NestedStructureSize(3, x.Filters[i])
+ size += proto.NestedStructureSizeUnchecked(3, &x.Filters[i])
}
return size
}
@@ -4248,9 +4248,7 @@ func (x *SearchRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint32(2, x.Version)
}
for i := range x.Filters {
- if x.Filters[i] != nil {
- x.Filters[i].EmitProtobuf(mm.AppendMessage(3))
- }
+ x.Filters[i].EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -4283,8 +4281,8 @@ func (x *SearchRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Filters")
}
- x.Filters = append(x.Filters, new(SearchRequest_Body_Filter))
- ff := x.Filters[len(x.Filters)-1]
+ x.Filters = append(x.Filters, SearchRequest_Body_Filter{})
+ ff := &x.Filters[len(x.Filters)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -4310,13 +4308,13 @@ func (x *SearchRequest_Body) GetVersion() uint32 {
func (x *SearchRequest_Body) SetVersion(v uint32) {
x.Version = v
}
-func (x *SearchRequest_Body) GetFilters() []*SearchRequest_Body_Filter {
+func (x *SearchRequest_Body) GetFilters() []SearchRequest_Body_Filter {
if x != nil {
return x.Filters
}
return nil
}
-func (x *SearchRequest_Body) SetFilters(v []*SearchRequest_Body_Filter) {
+func (x *SearchRequest_Body) SetFilters(v []SearchRequest_Body_Filter) {
x.Filters = v
}
@@ -4397,11 +4395,11 @@ func (x *SearchRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "filters":
{
- var f *SearchRequest_Body_Filter
- var list []*SearchRequest_Body_Filter
+ var f SearchRequest_Body_Filter
+ var list []SearchRequest_Body_Filter
in.Delim('[')
for !in.IsDelim(']') {
- f = new(SearchRequest_Body_Filter)
+ f = SearchRequest_Body_Filter{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -4640,7 +4638,7 @@ func (x *SearchRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type SearchResponse_Body struct {
- IdList []*grpc.ObjectID `json:"idList"`
+ IdList []grpc.ObjectID `json:"idList"`
}
var (
@@ -4658,7 +4656,7 @@ func (x *SearchResponse_Body) StableSize() (size int) {
return 0
}
for i := range x.IdList {
- size += proto.NestedStructureSize(1, x.IdList[i])
+ size += proto.NestedStructureSizeUnchecked(1, &x.IdList[i])
}
return size
}
@@ -4677,9 +4675,7 @@ func (x *SearchResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.IdList {
- if x.IdList[i] != nil {
- x.IdList[i].EmitProtobuf(mm.AppendMessage(1))
- }
+ x.IdList[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -4697,8 +4693,8 @@ func (x *SearchResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "IdList")
}
- x.IdList = append(x.IdList, new(grpc.ObjectID))
- ff := x.IdList[len(x.IdList)-1]
+ x.IdList = append(x.IdList, grpc.ObjectID{})
+ ff := &x.IdList[len(x.IdList)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -4706,13 +4702,13 @@ func (x *SearchResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
}
return nil
}
-func (x *SearchResponse_Body) GetIdList() []*grpc.ObjectID {
+func (x *SearchResponse_Body) GetIdList() []grpc.ObjectID {
if x != nil {
return x.IdList
}
return nil
}
-func (x *SearchResponse_Body) SetIdList(v []*grpc.ObjectID) {
+func (x *SearchResponse_Body) SetIdList(v []grpc.ObjectID) {
x.IdList = v
}
@@ -4770,11 +4766,11 @@ func (x *SearchResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
switch key {
case "idList":
{
- var f *grpc.ObjectID
- var list []*grpc.ObjectID
+ var f grpc.ObjectID
+ var list []grpc.ObjectID
in.Delim('[')
for !in.IsDelim(']') {
- f = new(grpc.ObjectID)
+ f = grpc.ObjectID{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -6077,7 +6073,7 @@ func (x *GetRangeResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
type GetRangeHashRequest_Body struct {
Address *grpc.Address `json:"address"`
- Ranges []*Range `json:"ranges"`
+ Ranges []Range `json:"ranges"`
Salt []byte `json:"salt"`
Type grpc.ChecksumType `json:"type"`
}
@@ -6098,7 +6094,7 @@ func (x *GetRangeHashRequest_Body) StableSize() (size int) {
}
size += proto.NestedStructureSize(1, x.Address)
for i := range x.Ranges {
- size += proto.NestedStructureSize(2, x.Ranges[i])
+ size += proto.NestedStructureSizeUnchecked(2, &x.Ranges[i])
}
size += proto.BytesSize(3, x.Salt)
size += proto.EnumSize(4, int32(x.Type))
@@ -6122,9 +6118,7 @@ func (x *GetRangeHashRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler)
x.Address.EmitProtobuf(mm.AppendMessage(1))
}
for i := range x.Ranges {
- if x.Ranges[i] != nil {
- x.Ranges[i].EmitProtobuf(mm.AppendMessage(2))
- }
+ x.Ranges[i].EmitProtobuf(mm.AppendMessage(2))
}
if len(x.Salt) != 0 {
mm.AppendBytes(3, x.Salt)
@@ -6157,8 +6151,8 @@ func (x *GetRangeHashRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Ranges")
}
- x.Ranges = append(x.Ranges, new(Range))
- ff := x.Ranges[len(x.Ranges)-1]
+ x.Ranges = append(x.Ranges, Range{})
+ ff := &x.Ranges[len(x.Ranges)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -6187,13 +6181,13 @@ func (x *GetRangeHashRequest_Body) GetAddress() *grpc.Address {
func (x *GetRangeHashRequest_Body) SetAddress(v *grpc.Address) {
x.Address = v
}
-func (x *GetRangeHashRequest_Body) GetRanges() []*Range {
+func (x *GetRangeHashRequest_Body) GetRanges() []Range {
if x != nil {
return x.Ranges
}
return nil
}
-func (x *GetRangeHashRequest_Body) SetRanges(v []*Range) {
+func (x *GetRangeHashRequest_Body) SetRanges(v []Range) {
x.Ranges = v
}
func (x *GetRangeHashRequest_Body) GetSalt() []byte {
@@ -6291,11 +6285,11 @@ func (x *GetRangeHashRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "ranges":
{
- var f *Range
- var list []*Range
+ var f Range
+ var list []Range
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Range)
+ f = Range{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -7855,7 +7849,7 @@ func (x *PatchRequest_Body_Patch) UnmarshalEasyJSON(in *jlexer.Lexer) {
type PatchRequest_Body struct {
Address *grpc.Address `json:"address"`
- NewAttributes []*Header_Attribute `json:"newAttributes"`
+ NewAttributes []Header_Attribute `json:"newAttributes"`
ReplaceAttributes bool `json:"replaceAttributes"`
Patch *PatchRequest_Body_Patch `json:"patch"`
}
@@ -7876,7 +7870,7 @@ func (x *PatchRequest_Body) StableSize() (size int) {
}
size += proto.NestedStructureSize(1, x.Address)
for i := range x.NewAttributes {
- size += proto.NestedStructureSize(2, x.NewAttributes[i])
+ size += proto.NestedStructureSizeUnchecked(2, &x.NewAttributes[i])
}
size += proto.BoolSize(3, x.ReplaceAttributes)
size += proto.NestedStructureSize(4, x.Patch)
@@ -7900,9 +7894,7 @@ func (x *PatchRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
x.Address.EmitProtobuf(mm.AppendMessage(1))
}
for i := range x.NewAttributes {
- if x.NewAttributes[i] != nil {
- x.NewAttributes[i].EmitProtobuf(mm.AppendMessage(2))
- }
+ x.NewAttributes[i].EmitProtobuf(mm.AppendMessage(2))
}
if x.ReplaceAttributes {
mm.AppendBool(3, x.ReplaceAttributes)
@@ -7935,8 +7927,8 @@ func (x *PatchRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "NewAttributes")
}
- x.NewAttributes = append(x.NewAttributes, new(Header_Attribute))
- ff := x.NewAttributes[len(x.NewAttributes)-1]
+ x.NewAttributes = append(x.NewAttributes, Header_Attribute{})
+ ff := &x.NewAttributes[len(x.NewAttributes)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -7968,13 +7960,13 @@ func (x *PatchRequest_Body) GetAddress() *grpc.Address {
func (x *PatchRequest_Body) SetAddress(v *grpc.Address) {
x.Address = v
}
-func (x *PatchRequest_Body) GetNewAttributes() []*Header_Attribute {
+func (x *PatchRequest_Body) GetNewAttributes() []Header_Attribute {
if x != nil {
return x.NewAttributes
}
return nil
}
-func (x *PatchRequest_Body) SetNewAttributes(v []*Header_Attribute) {
+func (x *PatchRequest_Body) SetNewAttributes(v []Header_Attribute) {
x.NewAttributes = v
}
func (x *PatchRequest_Body) GetReplaceAttributes() bool {
@@ -8072,11 +8064,11 @@ func (x *PatchRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "newAttributes":
{
- var f *Header_Attribute
- var list []*Header_Attribute
+ var f Header_Attribute
+ var list []Header_Attribute
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Header_Attribute)
+ f = Header_Attribute{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/object/grpc/types_frostfs.pb.go b/object/grpc/types_frostfs.pb.go
index 04a3e29..4233417 100644
--- a/object/grpc/types_frostfs.pb.go
+++ b/object/grpc/types_frostfs.pb.go
@@ -600,12 +600,12 @@ func (x *Header_Attribute) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type Header_Split struct {
- Parent *grpc.ObjectID `json:"parent"`
- Previous *grpc.ObjectID `json:"previous"`
- ParentSignature *grpc.Signature `json:"parentSignature"`
- ParentHeader *Header `json:"parentHeader"`
- Children []*grpc.ObjectID `json:"children"`
- SplitId []byte `json:"splitID"`
+ Parent *grpc.ObjectID `json:"parent"`
+ Previous *grpc.ObjectID `json:"previous"`
+ ParentSignature *grpc.Signature `json:"parentSignature"`
+ ParentHeader *Header `json:"parentHeader"`
+ Children []grpc.ObjectID `json:"children"`
+ SplitId []byte `json:"splitID"`
}
var (
@@ -627,7 +627,7 @@ func (x *Header_Split) StableSize() (size int) {
size += proto.NestedStructureSize(3, x.ParentSignature)
size += proto.NestedStructureSize(4, x.ParentHeader)
for i := range x.Children {
- size += proto.NestedStructureSize(5, x.Children[i])
+ size += proto.NestedStructureSizeUnchecked(5, &x.Children[i])
}
size += proto.BytesSize(6, x.SplitId)
return size
@@ -659,9 +659,7 @@ func (x *Header_Split) EmitProtobuf(mm *easyproto.MessageMarshaler) {
x.ParentHeader.EmitProtobuf(mm.AppendMessage(4))
}
for i := range x.Children {
- if x.Children[i] != nil {
- x.Children[i].EmitProtobuf(mm.AppendMessage(5))
- }
+ x.Children[i].EmitProtobuf(mm.AppendMessage(5))
}
if len(x.SplitId) != 0 {
mm.AppendBytes(6, x.SplitId)
@@ -718,8 +716,8 @@ func (x *Header_Split) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Children")
}
- x.Children = append(x.Children, new(grpc.ObjectID))
- ff := x.Children[len(x.Children)-1]
+ x.Children = append(x.Children, grpc.ObjectID{})
+ ff := &x.Children[len(x.Children)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -769,13 +767,13 @@ func (x *Header_Split) GetParentHeader() *Header {
func (x *Header_Split) SetParentHeader(v *Header) {
x.ParentHeader = v
}
-func (x *Header_Split) GetChildren() []*grpc.ObjectID {
+func (x *Header_Split) GetChildren() []grpc.ObjectID {
if x != nil {
return x.Children
}
return nil
}
-func (x *Header_Split) SetChildren(v []*grpc.ObjectID) {
+func (x *Header_Split) SetChildren(v []grpc.ObjectID) {
x.Children = v
}
func (x *Header_Split) GetSplitId() []byte {
@@ -895,11 +893,11 @@ func (x *Header_Split) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "children":
{
- var f *grpc.ObjectID
- var list []*grpc.ObjectID
+ var f grpc.ObjectID
+ var list []grpc.ObjectID
in.Delim('[')
for !in.IsDelim(']') {
- f = new(grpc.ObjectID)
+ f = grpc.ObjectID{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -923,14 +921,14 @@ func (x *Header_Split) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type Header_EC struct {
- Parent *grpc.ObjectID `json:"parent"`
- Index uint32 `json:"index"`
- Total uint32 `json:"total"`
- HeaderLength uint32 `json:"headerLength"`
- Header []byte `json:"header"`
- ParentSplitId []byte `json:"parentSplitID"`
- ParentSplitParentId *grpc.ObjectID `json:"parentSplitParentID"`
- ParentAttributes []*Header_Attribute `json:"parentAttributes"`
+ Parent *grpc.ObjectID `json:"parent"`
+ Index uint32 `json:"index"`
+ Total uint32 `json:"total"`
+ HeaderLength uint32 `json:"headerLength"`
+ Header []byte `json:"header"`
+ ParentSplitId []byte `json:"parentSplitID"`
+ ParentSplitParentId *grpc.ObjectID `json:"parentSplitParentID"`
+ ParentAttributes []Header_Attribute `json:"parentAttributes"`
}
var (
@@ -955,7 +953,7 @@ func (x *Header_EC) StableSize() (size int) {
size += proto.BytesSize(6, x.ParentSplitId)
size += proto.NestedStructureSize(7, x.ParentSplitParentId)
for i := range x.ParentAttributes {
- size += proto.NestedStructureSize(8, x.ParentAttributes[i])
+ size += proto.NestedStructureSizeUnchecked(8, &x.ParentAttributes[i])
}
return size
}
@@ -995,9 +993,7 @@ func (x *Header_EC) EmitProtobuf(mm *easyproto.MessageMarshaler) {
x.ParentSplitParentId.EmitProtobuf(mm.AppendMessage(7))
}
for i := range x.ParentAttributes {
- if x.ParentAttributes[i] != nil {
- x.ParentAttributes[i].EmitProtobuf(mm.AppendMessage(8))
- }
+ x.ParentAttributes[i].EmitProtobuf(mm.AppendMessage(8))
}
}
@@ -1063,8 +1059,8 @@ func (x *Header_EC) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "ParentAttributes")
}
- x.ParentAttributes = append(x.ParentAttributes, new(Header_Attribute))
- ff := x.ParentAttributes[len(x.ParentAttributes)-1]
+ x.ParentAttributes = append(x.ParentAttributes, Header_Attribute{})
+ ff := &x.ParentAttributes[len(x.ParentAttributes)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1135,13 +1131,13 @@ func (x *Header_EC) GetParentSplitParentId() *grpc.ObjectID {
func (x *Header_EC) SetParentSplitParentId(v *grpc.ObjectID) {
x.ParentSplitParentId = v
}
-func (x *Header_EC) GetParentAttributes() []*Header_Attribute {
+func (x *Header_EC) GetParentAttributes() []Header_Attribute {
if x != nil {
return x.ParentAttributes
}
return nil
}
-func (x *Header_EC) SetParentAttributes(v []*Header_Attribute) {
+func (x *Header_EC) SetParentAttributes(v []Header_Attribute) {
x.ParentAttributes = v
}
@@ -1278,11 +1274,11 @@ func (x *Header_EC) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "parentAttributes":
{
- var f *Header_Attribute
- var list []*Header_Attribute
+ var f Header_Attribute
+ var list []Header_Attribute
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Header_Attribute)
+ f = Header_Attribute{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -1309,7 +1305,7 @@ type Header struct {
ObjectType ObjectType `json:"objectType"`
HomomorphicHash *grpc.Checksum `json:"homomorphicHash"`
SessionToken *grpc1.SessionToken `json:"sessionToken"`
- Attributes []*Header_Attribute `json:"attributes"`
+ Attributes []Header_Attribute `json:"attributes"`
Split *Header_Split `json:"split"`
Ec *Header_EC `json:"ec"`
}
@@ -1338,7 +1334,7 @@ func (x *Header) StableSize() (size int) {
size += proto.NestedStructureSize(8, x.HomomorphicHash)
size += proto.NestedStructureSize(9, x.SessionToken)
for i := range x.Attributes {
- size += proto.NestedStructureSize(10, x.Attributes[i])
+ size += proto.NestedStructureSizeUnchecked(10, &x.Attributes[i])
}
size += proto.NestedStructureSize(11, x.Split)
size += proto.NestedStructureSize(12, x.Ec)
@@ -1386,9 +1382,7 @@ func (x *Header) EmitProtobuf(mm *easyproto.MessageMarshaler) {
x.SessionToken.EmitProtobuf(mm.AppendMessage(9))
}
for i := range x.Attributes {
- if x.Attributes[i] != nil {
- x.Attributes[i].EmitProtobuf(mm.AppendMessage(10))
- }
+ x.Attributes[i].EmitProtobuf(mm.AppendMessage(10))
}
if x.Split != nil {
x.Split.EmitProtobuf(mm.AppendMessage(11))
@@ -1484,8 +1478,8 @@ func (x *Header) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Attributes")
}
- x.Attributes = append(x.Attributes, new(Header_Attribute))
- ff := x.Attributes[len(x.Attributes)-1]
+ x.Attributes = append(x.Attributes, Header_Attribute{})
+ ff := &x.Attributes[len(x.Attributes)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1592,13 +1586,13 @@ func (x *Header) GetSessionToken() *grpc1.SessionToken {
func (x *Header) SetSessionToken(v *grpc1.SessionToken) {
x.SessionToken = v
}
-func (x *Header) GetAttributes() []*Header_Attribute {
+func (x *Header) GetAttributes() []Header_Attribute {
if x != nil {
return x.Attributes
}
return nil
}
-func (x *Header) SetAttributes(v []*Header_Attribute) {
+func (x *Header) SetAttributes(v []Header_Attribute) {
x.Attributes = v
}
func (x *Header) GetSplit() *Header_Split {
@@ -1805,11 +1799,11 @@ func (x *Header) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "attributes":
{
- var f *Header_Attribute
- var list []*Header_Attribute
+ var f Header_Attribute
+ var list []Header_Attribute
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Header_Attribute)
+ f = Header_Attribute{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -2469,7 +2463,7 @@ func (x *ECInfo_Chunk) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type ECInfo struct {
- Chunks []*ECInfo_Chunk `json:"chunks"`
+ Chunks []ECInfo_Chunk `json:"chunks"`
}
var (
@@ -2487,7 +2481,7 @@ func (x *ECInfo) StableSize() (size int) {
return 0
}
for i := range x.Chunks {
- size += proto.NestedStructureSize(1, x.Chunks[i])
+ size += proto.NestedStructureSizeUnchecked(1, &x.Chunks[i])
}
return size
}
@@ -2506,9 +2500,7 @@ func (x *ECInfo) EmitProtobuf(mm *easyproto.MessageMarshaler) {
return
}
for i := range x.Chunks {
- if x.Chunks[i] != nil {
- x.Chunks[i].EmitProtobuf(mm.AppendMessage(1))
- }
+ x.Chunks[i].EmitProtobuf(mm.AppendMessage(1))
}
}
@@ -2526,8 +2518,8 @@ func (x *ECInfo) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Chunks")
}
- x.Chunks = append(x.Chunks, new(ECInfo_Chunk))
- ff := x.Chunks[len(x.Chunks)-1]
+ x.Chunks = append(x.Chunks, ECInfo_Chunk{})
+ ff := &x.Chunks[len(x.Chunks)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -2535,13 +2527,13 @@ func (x *ECInfo) UnmarshalProtobuf(src []byte) (err error) {
}
return nil
}
-func (x *ECInfo) GetChunks() []*ECInfo_Chunk {
+func (x *ECInfo) GetChunks() []ECInfo_Chunk {
if x != nil {
return x.Chunks
}
return nil
}
-func (x *ECInfo) SetChunks(v []*ECInfo_Chunk) {
+func (x *ECInfo) SetChunks(v []ECInfo_Chunk) {
x.Chunks = v
}
@@ -2599,11 +2591,11 @@ func (x *ECInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
switch key {
case "chunks":
{
- var f *ECInfo_Chunk
- var list []*ECInfo_Chunk
+ var f ECInfo_Chunk
+ var list []ECInfo_Chunk
in.Delim('[')
for !in.IsDelim(']') {
- f = new(ECInfo_Chunk)
+ f = ECInfo_Chunk{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/object/lock.go b/object/lock.go
index 62ba4a9..585fd09 100644
--- a/object/lock.go
+++ b/object/lock.go
@@ -89,13 +89,13 @@ func (x *Lock) ToGRPCMessage() grpc.Message {
if x != nil {
m = new(lock.Lock)
- var members []*refsGRPC.ObjectID
+ var members []refsGRPC.ObjectID
if x.members != nil {
- members = make([]*refsGRPC.ObjectID, len(x.members))
+ members = make([]refsGRPC.ObjectID, len(x.members))
for i := range x.members {
- members[i] = x.members[i].ToGRPCMessage().(*refsGRPC.ObjectID)
+ members[i] = *x.members[i].ToGRPCMessage().(*refsGRPC.ObjectID)
}
}
@@ -119,7 +119,7 @@ func (x *Lock) FromGRPCMessage(m grpc.Message) error {
var err error
for i := range x.members {
- err = x.members[i].FromGRPCMessage(members[i])
+ err = x.members[i].FromGRPCMessage(&members[i])
if err != nil {
return err
}
diff --git a/refs/convert.go b/refs/convert.go
index 6f06783..da31cdb 100644
--- a/refs/convert.go
+++ b/refs/convert.go
@@ -52,28 +52,26 @@ func (c *ContainerID) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func ContainerIDsToGRPCMessage(ids []ContainerID) (res []*refs.ContainerID) {
+func ContainerIDsToGRPCMessage(ids []ContainerID) (res []refs.ContainerID) {
if ids != nil {
- res = make([]*refs.ContainerID, 0, len(ids))
+ res = make([]refs.ContainerID, 0, len(ids))
for i := range ids {
- res = append(res, ids[i].ToGRPCMessage().(*refs.ContainerID))
+ res = append(res, *ids[i].ToGRPCMessage().(*refs.ContainerID))
}
}
return
}
-func ContainerIDsFromGRPCMessage(idsV2 []*refs.ContainerID) (res []ContainerID, err error) {
+func ContainerIDsFromGRPCMessage(idsV2 []refs.ContainerID) (res []ContainerID, err error) {
if idsV2 != nil {
res = make([]ContainerID, len(idsV2))
for i := range idsV2 {
- if idsV2[i] != nil {
- err = res[i].FromGRPCMessage(idsV2[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&idsV2[i])
+ if err != nil {
+ return
}
}
}
@@ -104,28 +102,26 @@ func (o *ObjectID) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func ObjectIDListToGRPCMessage(ids []ObjectID) (res []*refs.ObjectID) {
+func ObjectIDListToGRPCMessage(ids []ObjectID) (res []refs.ObjectID) {
if ids != nil {
- res = make([]*refs.ObjectID, 0, len(ids))
+ res = make([]refs.ObjectID, 0, len(ids))
for i := range ids {
- res = append(res, ids[i].ToGRPCMessage().(*refs.ObjectID))
+ res = append(res, *ids[i].ToGRPCMessage().(*refs.ObjectID))
}
}
return
}
-func ObjectIDListFromGRPCMessage(idsV2 []*refs.ObjectID) (res []ObjectID, err error) {
+func ObjectIDListFromGRPCMessage(idsV2 []refs.ObjectID) (res []ObjectID, err error) {
if idsV2 != nil {
res = make([]ObjectID, len(idsV2))
for i := range idsV2 {
- if idsV2[i] != nil {
- err = res[i].FromGRPCMessage(idsV2[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&idsV2[i])
+ if err != nil {
+ return
}
}
}
diff --git a/session/convert.go b/session/convert.go
index b7f334e..d0e83fa 100644
--- a/session/convert.go
+++ b/session/convert.go
@@ -207,28 +207,26 @@ func (x *XHeader) FromGRPCMessage(m grpc.Message) error {
return nil
}
-func XHeadersToGRPC(xs []XHeader) (res []*session.XHeader) {
+func XHeadersToGRPC(xs []XHeader) (res []session.XHeader) {
if xs != nil {
- res = make([]*session.XHeader, 0, len(xs))
+ res = make([]session.XHeader, 0, len(xs))
for i := range xs {
- res = append(res, xs[i].ToGRPCMessage().(*session.XHeader))
+ res = append(res, *xs[i].ToGRPCMessage().(*session.XHeader))
}
}
return
}
-func XHeadersFromGRPC(xs []*session.XHeader) (res []XHeader, err error) {
+func XHeadersFromGRPC(xs []session.XHeader) (res []XHeader, err error) {
if xs != nil {
res = make([]XHeader, len(xs))
for i := range xs {
- if xs[i] != nil {
- err = res[i].FromGRPCMessage(xs[i])
- if err != nil {
- return
- }
+ err = res[i].FromGRPCMessage(&xs[i])
+ if err != nil {
+ return
}
}
}
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
index 4f8bf81..41ff5d9 100644
--- a/session/grpc/types_frostfs.pb.go
+++ b/session/grpc/types_frostfs.pb.go
@@ -72,7 +72,7 @@ func (x *ObjectSessionContext_Verb) FromString(s string) bool {
type ObjectSessionContext_Target struct {
Container *grpc.ContainerID `json:"container"`
- Objects []*grpc.ObjectID `json:"objects"`
+ Objects []grpc.ObjectID `json:"objects"`
}
var (
@@ -91,7 +91,7 @@ func (x *ObjectSessionContext_Target) StableSize() (size int) {
}
size += proto.NestedStructureSize(1, x.Container)
for i := range x.Objects {
- size += proto.NestedStructureSize(2, x.Objects[i])
+ size += proto.NestedStructureSizeUnchecked(2, &x.Objects[i])
}
return size
}
@@ -113,9 +113,7 @@ func (x *ObjectSessionContext_Target) EmitProtobuf(mm *easyproto.MessageMarshale
x.Container.EmitProtobuf(mm.AppendMessage(1))
}
for i := range x.Objects {
- if x.Objects[i] != nil {
- x.Objects[i].EmitProtobuf(mm.AppendMessage(2))
- }
+ x.Objects[i].EmitProtobuf(mm.AppendMessage(2))
}
}
@@ -142,8 +140,8 @@ func (x *ObjectSessionContext_Target) UnmarshalProtobuf(src []byte) (err error)
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Objects")
}
- x.Objects = append(x.Objects, new(grpc.ObjectID))
- ff := x.Objects[len(x.Objects)-1]
+ x.Objects = append(x.Objects, grpc.ObjectID{})
+ ff := &x.Objects[len(x.Objects)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -160,13 +158,13 @@ func (x *ObjectSessionContext_Target) GetContainer() *grpc.ContainerID {
func (x *ObjectSessionContext_Target) SetContainer(v *grpc.ContainerID) {
x.Container = v
}
-func (x *ObjectSessionContext_Target) GetObjects() []*grpc.ObjectID {
+func (x *ObjectSessionContext_Target) GetObjects() []grpc.ObjectID {
if x != nil {
return x.Objects
}
return nil
}
-func (x *ObjectSessionContext_Target) SetObjects(v []*grpc.ObjectID) {
+func (x *ObjectSessionContext_Target) SetObjects(v []grpc.ObjectID) {
x.Objects = v
}
@@ -236,11 +234,11 @@ func (x *ObjectSessionContext_Target) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "objects":
{
- var f *grpc.ObjectID
- var list []*grpc.ObjectID
+ var f grpc.ObjectID
+ var list []grpc.ObjectID
in.Delim('[')
for !in.IsDelim(']') {
- f = new(grpc.ObjectID)
+ f = grpc.ObjectID{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -1551,7 +1549,7 @@ type RequestMetaHeader struct {
Version *grpc.Version `json:"version"`
Epoch uint64 `json:"epoch"`
Ttl uint32 `json:"ttl"`
- XHeaders []*XHeader `json:"xHeaders"`
+ XHeaders []XHeader `json:"xHeaders"`
SessionToken *SessionToken `json:"sessionToken"`
BearerToken *grpc1.BearerToken `json:"bearerToken"`
Origin *RequestMetaHeader `json:"origin"`
@@ -1576,7 +1574,7 @@ func (x *RequestMetaHeader) StableSize() (size int) {
size += proto.UInt64Size(2, x.Epoch)
size += proto.UInt32Size(3, x.Ttl)
for i := range x.XHeaders {
- size += proto.NestedStructureSize(4, x.XHeaders[i])
+ size += proto.NestedStructureSizeUnchecked(4, &x.XHeaders[i])
}
size += proto.NestedStructureSize(5, x.SessionToken)
size += proto.NestedStructureSize(6, x.BearerToken)
@@ -1608,9 +1606,7 @@ func (x *RequestMetaHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint32(3, x.Ttl)
}
for i := range x.XHeaders {
- if x.XHeaders[i] != nil {
- x.XHeaders[i].EmitProtobuf(mm.AppendMessage(4))
- }
+ x.XHeaders[i].EmitProtobuf(mm.AppendMessage(4))
}
if x.SessionToken != nil {
x.SessionToken.EmitProtobuf(mm.AppendMessage(5))
@@ -1661,8 +1657,8 @@ func (x *RequestMetaHeader) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "XHeaders")
}
- x.XHeaders = append(x.XHeaders, new(XHeader))
- ff := x.XHeaders[len(x.XHeaders)-1]
+ x.XHeaders = append(x.XHeaders, XHeader{})
+ ff := &x.XHeaders[len(x.XHeaders)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1730,13 +1726,13 @@ func (x *RequestMetaHeader) GetTtl() uint32 {
func (x *RequestMetaHeader) SetTtl(v uint32) {
x.Ttl = v
}
-func (x *RequestMetaHeader) GetXHeaders() []*XHeader {
+func (x *RequestMetaHeader) GetXHeaders() []XHeader {
if x != nil {
return x.XHeaders
}
return nil
}
-func (x *RequestMetaHeader) SetXHeaders(v []*XHeader) {
+func (x *RequestMetaHeader) SetXHeaders(v []XHeader) {
x.XHeaders = v
}
func (x *RequestMetaHeader) GetSessionToken() *SessionToken {
@@ -1884,11 +1880,11 @@ func (x *RequestMetaHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "xHeaders":
{
- var f *XHeader
- var list []*XHeader
+ var f XHeader
+ var list []XHeader
in.Delim('[')
for !in.IsDelim(']') {
- f = new(XHeader)
+ f = XHeader{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
@@ -1936,7 +1932,7 @@ type ResponseMetaHeader struct {
Version *grpc.Version `json:"version"`
Epoch uint64 `json:"epoch"`
Ttl uint32 `json:"ttl"`
- XHeaders []*XHeader `json:"xHeaders"`
+ XHeaders []XHeader `json:"xHeaders"`
Origin *ResponseMetaHeader `json:"origin"`
Status *grpc2.Status `json:"status"`
}
@@ -1959,7 +1955,7 @@ func (x *ResponseMetaHeader) StableSize() (size int) {
size += proto.UInt64Size(2, x.Epoch)
size += proto.UInt32Size(3, x.Ttl)
for i := range x.XHeaders {
- size += proto.NestedStructureSize(4, x.XHeaders[i])
+ size += proto.NestedStructureSizeUnchecked(4, &x.XHeaders[i])
}
size += proto.NestedStructureSize(5, x.Origin)
size += proto.NestedStructureSize(6, x.Status)
@@ -1989,9 +1985,7 @@ func (x *ResponseMetaHeader) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint32(3, x.Ttl)
}
for i := range x.XHeaders {
- if x.XHeaders[i] != nil {
- x.XHeaders[i].EmitProtobuf(mm.AppendMessage(4))
- }
+ x.XHeaders[i].EmitProtobuf(mm.AppendMessage(4))
}
if x.Origin != nil {
x.Origin.EmitProtobuf(mm.AppendMessage(5))
@@ -2036,8 +2030,8 @@ func (x *ResponseMetaHeader) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "XHeaders")
}
- x.XHeaders = append(x.XHeaders, new(XHeader))
- ff := x.XHeaders[len(x.XHeaders)-1]
+ x.XHeaders = append(x.XHeaders, XHeader{})
+ ff := &x.XHeaders[len(x.XHeaders)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -2090,13 +2084,13 @@ func (x *ResponseMetaHeader) GetTtl() uint32 {
func (x *ResponseMetaHeader) SetTtl(v uint32) {
x.Ttl = v
}
-func (x *ResponseMetaHeader) GetXHeaders() []*XHeader {
+func (x *ResponseMetaHeader) GetXHeaders() []XHeader {
if x != nil {
return x.XHeaders
}
return nil
}
-func (x *ResponseMetaHeader) SetXHeaders(v []*XHeader) {
+func (x *ResponseMetaHeader) SetXHeaders(v []XHeader) {
x.XHeaders = v
}
func (x *ResponseMetaHeader) GetOrigin() *ResponseMetaHeader {
@@ -2216,11 +2210,11 @@ func (x *ResponseMetaHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "xHeaders":
{
- var f *XHeader
- var list []*XHeader
+ var f XHeader
+ var list []XHeader
in.Delim('[')
for !in.IsDelim(']') {
- f = new(XHeader)
+ f = XHeader{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/status/convert.go b/status/convert.go
index 0743952..3c5b5bf 100644
--- a/status/convert.go
+++ b/status/convert.go
@@ -48,13 +48,13 @@ func (x *Status) ToGRPCMessage() grpc.Message {
m.SetCode(CodeToGRPC(x.code))
m.SetMessage(x.msg)
- var ds []*status.Status_Detail
+ var ds []status.Status_Detail
if ln := len(x.details); ln > 0 {
- ds = make([]*status.Status_Detail, 0, ln)
+ ds = make([]status.Status_Detail, 0, ln)
for i := 0; i < ln; i++ {
- ds = append(ds, x.details[i].ToGRPCMessage().(*status.Status_Detail))
+ ds = append(ds, *x.details[i].ToGRPCMessage().(*status.Status_Detail))
}
}
@@ -81,10 +81,8 @@ func (x *Status) FromGRPCMessage(m grpc.Message) error {
ds = make([]Detail, ln)
for i := 0; i < ln; i++ {
- if dsV2[i] != nil {
- if err := ds[i].FromGRPCMessage(dsV2[i]); err != nil {
- return err
- }
+ if err := ds[i].FromGRPCMessage(&dsV2[i]); err != nil {
+ return err
}
}
}
diff --git a/status/grpc/types_frostfs.pb.go b/status/grpc/types_frostfs.pb.go
index 5012491..29dfebe 100644
--- a/status/grpc/types_frostfs.pb.go
+++ b/status/grpc/types_frostfs.pb.go
@@ -429,9 +429,9 @@ func (x *Status_Detail) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type Status struct {
- Code uint32 `json:"code"`
- Message string `json:"message"`
- Details []*Status_Detail `json:"details"`
+ Code uint32 `json:"code"`
+ Message string `json:"message"`
+ Details []Status_Detail `json:"details"`
}
var (
@@ -451,7 +451,7 @@ func (x *Status) StableSize() (size int) {
size += proto.UInt32Size(1, x.Code)
size += proto.StringSize(2, x.Message)
for i := range x.Details {
- size += proto.NestedStructureSize(3, x.Details[i])
+ size += proto.NestedStructureSizeUnchecked(3, &x.Details[i])
}
return size
}
@@ -476,9 +476,7 @@ func (x *Status) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendString(2, x.Message)
}
for i := range x.Details {
- if x.Details[i] != nil {
- x.Details[i].EmitProtobuf(mm.AppendMessage(3))
- }
+ x.Details[i].EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -508,8 +506,8 @@ func (x *Status) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Details")
}
- x.Details = append(x.Details, new(Status_Detail))
- ff := x.Details[len(x.Details)-1]
+ x.Details = append(x.Details, Status_Detail{})
+ ff := &x.Details[len(x.Details)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -535,13 +533,13 @@ func (x *Status) GetMessage() string {
func (x *Status) SetMessage(v string) {
x.Message = v
}
-func (x *Status) GetDetails() []*Status_Detail {
+func (x *Status) GetDetails() []Status_Detail {
if x != nil {
return x.Details
}
return nil
}
-func (x *Status) SetDetails(v []*Status_Detail) {
+func (x *Status) SetDetails(v []Status_Detail) {
x.Details = v
}
@@ -621,11 +619,11 @@ func (x *Status) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "details":
{
- var f *Status_Detail
- var list []*Status_Detail
+ var f Status_Detail
+ var list []Status_Detail
in.Delim('[')
for !in.IsDelim(']') {
- f = new(Status_Detail)
+ f = Status_Detail{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/tombstone/grpc/types_frostfs.pb.go b/tombstone/grpc/types_frostfs.pb.go
index 8c2e83c..f7bc48c 100644
--- a/tombstone/grpc/types_frostfs.pb.go
+++ b/tombstone/grpc/types_frostfs.pb.go
@@ -15,9 +15,9 @@ import (
)
type Tombstone struct {
- ExpirationEpoch uint64 `json:"expirationEpoch"`
- SplitId []byte `json:"splitID"`
- Members []*grpc.ObjectID `json:"members"`
+ ExpirationEpoch uint64 `json:"expirationEpoch"`
+ SplitId []byte `json:"splitID"`
+ Members []grpc.ObjectID `json:"members"`
}
var (
@@ -37,7 +37,7 @@ func (x *Tombstone) StableSize() (size int) {
size += proto.UInt64Size(1, x.ExpirationEpoch)
size += proto.BytesSize(2, x.SplitId)
for i := range x.Members {
- size += proto.NestedStructureSize(3, x.Members[i])
+ size += proto.NestedStructureSizeUnchecked(3, &x.Members[i])
}
return size
}
@@ -62,9 +62,7 @@ func (x *Tombstone) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendBytes(2, x.SplitId)
}
for i := range x.Members {
- if x.Members[i] != nil {
- x.Members[i].EmitProtobuf(mm.AppendMessage(3))
- }
+ x.Members[i].EmitProtobuf(mm.AppendMessage(3))
}
}
@@ -94,8 +92,8 @@ func (x *Tombstone) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "Members")
}
- x.Members = append(x.Members, new(grpc.ObjectID))
- ff := x.Members[len(x.Members)-1]
+ x.Members = append(x.Members, grpc.ObjectID{})
+ ff := &x.Members[len(x.Members)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -121,13 +119,13 @@ func (x *Tombstone) GetSplitId() []byte {
func (x *Tombstone) SetSplitId(v []byte) {
x.SplitId = v
}
-func (x *Tombstone) GetMembers() []*grpc.ObjectID {
+func (x *Tombstone) GetMembers() []grpc.ObjectID {
if x != nil {
return x.Members
}
return nil
}
-func (x *Tombstone) SetMembers(v []*grpc.ObjectID) {
+func (x *Tombstone) SetMembers(v []grpc.ObjectID) {
x.Members = v
}
@@ -207,11 +205,11 @@ func (x *Tombstone) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "members":
{
- var f *grpc.ObjectID
- var list []*grpc.ObjectID
+ var f grpc.ObjectID
+ var list []grpc.ObjectID
in.Delim('[')
for !in.IsDelim(']') {
- f = new(grpc.ObjectID)
+ f = grpc.ObjectID{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/util/proto/marshal_test.go b/util/proto/marshal_test.go
index a848bb5..1cd7005 100644
--- a/util/proto/marshal_test.go
+++ b/util/proto/marshal_test.go
@@ -133,10 +133,10 @@ func randIntSlice[T protoInt](n int, includeZero bool) []T {
return r
}
-func uint32SliceToAux(s []uint32) []*generated.RepPrimitives_Aux {
- r := make([]*generated.RepPrimitives_Aux, len(s))
+func uint32SliceToAux(s []uint32) []generated.RepPrimitives_Aux {
+ r := make([]generated.RepPrimitives_Aux, len(s))
for i := range s {
- r[i] = &generated.RepPrimitives_Aux{s[i]}
+ r[i] = generated.RepPrimitives_Aux{InnerField: s[i]}
}
return r
}
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index f3b958f..97efa51 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -932,14 +932,14 @@ func (x *RepPrimitives_Aux) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
type RepPrimitives struct {
- FieldA [][]byte `json:"fieldA"`
- FieldB []string `json:"fieldB"`
- FieldC []int32 `json:"fieldC"`
- FieldD []uint32 `json:"fieldD"`
- FieldE []int64 `json:"fieldE"`
- FieldF []uint64 `json:"fieldF"`
- FieldFu []uint64 `json:"fieldFu"`
- FieldAux []*RepPrimitives_Aux `json:"fieldAux"`
+ FieldA [][]byte `json:"fieldA"`
+ FieldB []string `json:"fieldB"`
+ FieldC []int32 `json:"fieldC"`
+ FieldD []uint32 `json:"fieldD"`
+ FieldE []int64 `json:"fieldE"`
+ FieldF []uint64 `json:"fieldF"`
+ FieldFu []uint64 `json:"fieldFu"`
+ FieldAux []RepPrimitives_Aux `json:"fieldAux"`
}
var (
@@ -971,7 +971,7 @@ func (x *RepPrimitives) StableSize() (size int) {
size += protowire.SizeGroup(protowire.Number(7), protowire.SizeVarint(x.FieldFu[i]))
}
for i := range x.FieldAux {
- size += proto.NestedStructureSize(8, x.FieldAux[i])
+ size += proto.NestedStructureSizeUnchecked(8, &x.FieldAux[i])
}
return size
}
@@ -1011,9 +1011,7 @@ func (x *RepPrimitives) EmitProtobuf(mm *easyproto.MessageMarshaler) {
mm.AppendUint64(7, x.FieldFu[j])
}
for i := range x.FieldAux {
- if x.FieldAux[i] != nil {
- x.FieldAux[i].EmitProtobuf(mm.AppendMessage(8))
- }
+ x.FieldAux[i].EmitProtobuf(mm.AppendMessage(8))
}
}
@@ -1073,8 +1071,8 @@ func (x *RepPrimitives) UnmarshalProtobuf(src []byte) (err error) {
if !ok {
return fmt.Errorf("cannot unmarshal field %s", "FieldAux")
}
- x.FieldAux = append(x.FieldAux, new(RepPrimitives_Aux))
- ff := x.FieldAux[len(x.FieldAux)-1]
+ x.FieldAux = append(x.FieldAux, RepPrimitives_Aux{})
+ ff := &x.FieldAux[len(x.FieldAux)-1]
if err := ff.UnmarshalProtobuf(data); err != nil {
return fmt.Errorf("unmarshal: %w", err)
}
@@ -1145,13 +1143,13 @@ func (x *RepPrimitives) GetFieldFu() []uint64 {
func (x *RepPrimitives) SetFieldFu(v []uint64) {
x.FieldFu = v
}
-func (x *RepPrimitives) GetFieldAux() []*RepPrimitives_Aux {
+func (x *RepPrimitives) GetFieldAux() []RepPrimitives_Aux {
if x != nil {
return x.FieldAux
}
return nil
}
-func (x *RepPrimitives) SetFieldAux(v []*RepPrimitives_Aux) {
+func (x *RepPrimitives) SetFieldAux(v []RepPrimitives_Aux) {
x.FieldAux = v
}
@@ -1384,11 +1382,11 @@ func (x *RepPrimitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
}
case "fieldAux":
{
- var f *RepPrimitives_Aux
- var list []*RepPrimitives_Aux
+ var f RepPrimitives_Aux
+ var list []RepPrimitives_Aux
in.Delim('[')
for !in.IsDelim(']') {
- f = new(RepPrimitives_Aux)
+ f = RepPrimitives_Aux{}
f.UnmarshalEasyJSON(in)
list = append(list, f)
in.WantComma()
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
index 4ae24e7..f7cd284 100644
--- a/util/protogen/internalgengo/json.go
+++ b/util/protogen/internalgengo/json.go
@@ -117,7 +117,7 @@ func emitJSONFieldRead(g *protogen.GeneratedFile, f *protogen.Field, name string
template = "%s = in.Bytes()"
case protoreflect.MessageKind:
if f.Desc.IsList() {
- g.P("f = new(", fieldType(g, f)[3:], ")")
+ g.P("f = ", fieldType(g, f)[2:], "{}")
} else {
g.P("f = new(", fieldType(g, f)[1:], ")")
}
diff --git a/util/protogen/internalgengo/proto.go b/util/protogen/internalgengo/proto.go
index 8894cde..1467541 100644
--- a/util/protogen/internalgengo/proto.go
+++ b/util/protogen/internalgengo/proto.go
@@ -39,8 +39,8 @@ func emitFieldUnmarshal(g *protogen.GeneratedFile, f *protogen.Field) {
g.P("data, ok := fc.MessageData()")
g.P(`if !ok { return fmt.Errorf("cannot unmarshal field %s", "`, f.GoName, `") }`)
if f.Desc.IsList() {
- g.P(name, " = append(", name, ", new(", fieldType(g, f)[3:], "))")
- g.P("ff := ", name, "[len(", name, ")-1]")
+ g.P(name, " = append(", name, ", ", fieldType(g, f)[2:], "{})")
+ g.P("ff := &", name, "[len(", name, ")-1]")
name = "ff"
} else if f.Oneof != nil {
const tmp = "oneofField"
@@ -172,11 +172,12 @@ func emitMarshalRaw(g *protogen.GeneratedFile, f *protogen.Field, name string) {
defer g.P("}")
name += "[i]"
+ } else {
+ g.P("if ", notNil(name), " {")
+ defer g.P("}")
}
- g.P("if ", notNil(name), " {")
g.P(name, ".EmitProtobuf(mm.AppendMessage(", f.Desc.Number(), "))")
- g.P("}")
return
}
diff --git a/util/protogen/internalgengo/proto_field_type.go b/util/protogen/internalgengo/proto_field_type.go
index 09f6884..0096751 100644
--- a/util/protogen/internalgengo/proto_field_type.go
+++ b/util/protogen/internalgengo/proto_field_type.go
@@ -43,7 +43,10 @@ func fieldType(g *protogen.GeneratedFile, field *protogen.Field) structField {
case protoreflect.BytesKind:
typ = "[]byte"
case protoreflect.MessageKind:
- typ = structField(g.QualifiedGoIdent(field.Message.GoIdent)).PointerTo()
+ typ = structField(g.QualifiedGoIdent(field.Message.GoIdent))
+ if !field.Desc.IsList() {
+ typ = typ.PointerTo()
+ }
case protoreflect.GroupKind:
panic("unimplemented")
}
diff --git a/util/protogen/internalgengo/proto_stable_compat.go b/util/protogen/internalgengo/proto_stable_compat.go
index c27b9d8..3c4670c 100644
--- a/util/protogen/internalgengo/proto_stable_compat.go
+++ b/util/protogen/internalgengo/proto_stable_compat.go
@@ -72,7 +72,7 @@ func emitFieldSize(g *protogen.GeneratedFile, f *protogen.Field) {
case f.Desc.IsList() && (f.Desc.Kind() == protoreflect.MessageKind || f.Desc.Kind() == protoreflect.Uint64Kind && !f.Desc.IsPacked()):
g.P("for i := range ", name, "{")
if f.Desc.Kind() == protoreflect.MessageKind {
- g.P("size += ", protoPackage.Ident("NestedStructureSize"), "(", f.Desc.Number(), ", ", name, "[i])")
+ g.P("size += ", protoPackage.Ident("NestedStructureSizeUnchecked"), "(", f.Desc.Number(), ", &", name, "[i])")
} else {
if f.Desc.Kind() != protoreflect.Uint64Kind {
panic("only uint64 unpacked primitive is supported")
From 9c5e32a183576069b889f7e5d09af966c8623612 Mon Sep 17 00:00:00 2001
From: Aleksey Savchuk
Date: Mon, 26 Aug 2024 14:13:20 +0300
Subject: [PATCH 20/42] [#106] test: Generate correct data for tests
Some tests are using invalid data that do not meet the requirements of the
FrostFS protocol, e.g.
- Container/Object IDs aren't 32 bytes long
- Signature key and sign have invalid length
- Split IDs aren't valid UUIDv4
and etc.
Signed-off-by: Aleksey Savchuk
---
container/test/generate.go | 7 ++++++-
object/test/generate.go | 21 +++++++++++++++++----
refs/test/generate.go | 37 ++++++++++++++++++++++++++++---------
session/test/generate.go | 11 +++++++++--
tombstone/test/generate.go | 7 ++++++-
5 files changed, 66 insertions(+), 17 deletions(-)
diff --git a/container/test/generate.go b/container/test/generate.go
index b94347b..23ad3a1 100644
--- a/container/test/generate.go
+++ b/container/test/generate.go
@@ -1,6 +1,8 @@
package containertest
import (
+ "crypto/rand"
+
acltest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/test"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container"
netmaptest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/test"
@@ -36,8 +38,11 @@ func GenerateContainer(empty bool) *container.Container {
m := new(container.Container)
if !empty {
+ nonce := make([]byte, 16)
+ _, _ = rand.Read(nonce)
+
m.SetBasicACL(12)
- m.SetNonce([]byte{1, 2, 3})
+ m.SetNonce(nonce)
m.SetOwnerID(refstest.GenerateOwnerID(false))
m.SetAttributes(GenerateAttributes(false))
m.SetPlacementPolicy(netmaptest.GeneratePlacementPolicy(false))
diff --git a/object/test/generate.go b/object/test/generate.go
index 87ad64e..b4d3de5 100644
--- a/object/test/generate.go
+++ b/object/test/generate.go
@@ -1,6 +1,7 @@
package objecttest
import (
+ crand "crypto/rand"
"math/rand"
"time"
@@ -59,7 +60,10 @@ func generateSplitHeader(empty, withPar bool) *object.SplitHeader {
m := new(object.SplitHeader)
if !empty {
- m.SetSplitID([]byte{1, 3, 5})
+ id := make([]byte, 16)
+ _, _ = crand.Read(id)
+
+ m.SetSplitID(id)
m.SetParent(refstest.GenerateObjectID(false))
m.SetPrevious(refstest.GenerateObjectID(false))
m.SetChildren(refstest.GenerateObjectIDs(false))
@@ -91,7 +95,10 @@ func GenerateECHeader(empty bool) *object.ECHeader {
if !empty {
ech.Parent = refstest.GenerateObjectID(empty)
- ech.ParentSplitID = []byte{1, 2, 3}
+
+ ech.ParentSplitID = make([]byte, 16)
+ _, _ = crand.Read(ech.ParentSplitID)
+
ech.ParentSplitParentID = refstest.GenerateObjectID(empty)
ech.ParentAttributes = GenerateAttributes(empty)
ech.Index = 0
@@ -150,7 +157,10 @@ func GenerateSplitInfo(empty bool) *object.SplitInfo {
m := new(object.SplitInfo)
if !empty {
- m.SetSplitID([]byte("splitID"))
+ id := make([]byte, 16)
+ _, _ = crand.Read(id)
+
+ m.SetSplitID(id)
m.SetLastPart(refstest.GenerateObjectID(false))
m.SetLink(refstest.GenerateObjectID(false))
}
@@ -627,7 +637,10 @@ func GenerateGetRangeHashResponseBody(empty bool) *object.GetRangeHashResponseBo
if !empty {
m.SetType(678)
- m.SetHashList([][]byte{{1}, {2}})
+ m.SetHashList([][]byte{
+ refstest.GenerateChecksum(false).GetSum(),
+ refstest.GenerateChecksum(false).GetSum(),
+ })
}
return m
diff --git a/refs/test/generate.go b/refs/test/generate.go
index 6217a96..49619ef 100644
--- a/refs/test/generate.go
+++ b/refs/test/generate.go
@@ -1,7 +1,8 @@
package refstest
import (
- "math/rand"
+ crand "crypto/rand"
+ "crypto/sha256"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
)
@@ -21,7 +22,10 @@ func GenerateOwnerID(empty bool) *refs.OwnerID {
m := new(refs.OwnerID)
if !empty {
- m.SetValue([]byte{1, 2, 3})
+ id := make([]byte, 25)
+ _, _ = crand.Read(id)
+
+ m.SetValue(id)
}
return m
@@ -42,7 +46,10 @@ func GenerateObjectID(empty bool) *refs.ObjectID {
m := new(refs.ObjectID)
if !empty {
- m.SetValue([]byte{1, 2, 3})
+ id := make([]byte, sha256.Size)
+ _, _ = crand.Read(id)
+
+ m.SetValue(id)
}
return m
@@ -65,7 +72,10 @@ func GenerateContainerID(empty bool) *refs.ContainerID {
m := new(refs.ContainerID)
if !empty {
- m.SetValue([]byte{1, 2, 3})
+ id := make([]byte, sha256.Size)
+ _, _ = crand.Read(id)
+
+ m.SetValue(id)
}
return m
@@ -88,9 +98,15 @@ func GenerateSignature(empty bool) *refs.Signature {
m := new(refs.Signature)
if !empty {
- m.SetKey([]byte{1})
- m.SetSign([]byte{2})
- m.SetScheme(refs.SignatureScheme(rand.Int31() % 3))
+ key := make([]byte, 33)
+ _, _ = crand.Read(key)
+
+ sign := make([]byte, 65)
+ _, _ = crand.Read(sign)
+
+ m.SetScheme(refs.ECDSA_SHA512)
+ m.SetKey(key)
+ m.SetSign(sign)
}
return m
@@ -100,8 +116,11 @@ func GenerateChecksum(empty bool) *refs.Checksum {
m := new(refs.Checksum)
if !empty {
- m.SetType(1)
- m.SetSum([]byte{1, 2, 3})
+ cs := make([]byte, sha256.Size)
+ _, _ = crand.Read(cs)
+
+ m.SetType(refs.SHA256)
+ m.SetSum(cs)
}
return m
diff --git a/session/test/generate.go b/session/test/generate.go
index 561ec01..58084be 100644
--- a/session/test/generate.go
+++ b/session/test/generate.go
@@ -1,6 +1,7 @@
package sessiontest
import (
+ crand "crypto/rand"
"math/rand"
"time"
@@ -38,7 +39,10 @@ func GenerateCreateResponseBody(empty bool) *session.CreateResponseBody {
m := new(session.CreateResponseBody)
if !empty {
- m.SetID([]byte{1, 2, 3})
+ id := make([]byte, 16)
+ _, _ = crand.Read(id)
+
+ m.SetID(id)
m.SetSessionKey([]byte{4, 5, 6})
}
@@ -164,7 +168,10 @@ func GenerateSessionTokenBody(empty bool) *session.TokenBody {
m := new(session.TokenBody)
if !empty {
- m.SetID([]byte{1})
+ id := make([]byte, 16)
+ _, _ = crand.Read(id)
+
+ m.SetID(id)
m.SetSessionKey([]byte{2})
m.SetOwnerID(refstest.GenerateOwnerID(false))
m.SetLifetime(GenerateTokenLifetime(false))
diff --git a/tombstone/test/generate.go b/tombstone/test/generate.go
index 3caf528..1fab9eb 100644
--- a/tombstone/test/generate.go
+++ b/tombstone/test/generate.go
@@ -1,6 +1,8 @@
package tombstonetest
import (
+ "crypto/rand"
+
refstest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/test"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/tombstone"
)
@@ -9,8 +11,11 @@ func GenerateTombstone(empty bool) *tombstone.Tombstone {
m := new(tombstone.Tombstone)
if !empty {
+ id := make([]byte, 16)
+ _, _ = rand.Read(id)
+
m.SetExpirationEpoch(89)
- m.SetSplitID([]byte{3, 2, 1})
+ m.SetSplitID(id)
m.SetMembers(refstest.GenerateObjectIDs(false))
}
From c11f50efeccbc68d9c12e9688e739a4f3bc4f301 Mon Sep 17 00:00:00 2001
From: Aleksey Savchuk
Date: Mon, 2 Sep 2024 13:39:07 +0300
Subject: [PATCH 21/42] [#112] container: Remove GetExtendedACL
Signed-off-by: Aleksey Savchuk
---
container/convert.go | 174 ------
container/grpc/service_frostfs.pb.go | 779 -------------------------
container/grpc/service_frostfs_fuzz.go | 38 --
container/grpc/service_frostfs_test.go | 20 -
container/grpc/service_grpc.pb.go | 71 +--
container/marshal.go | 68 ---
container/message_test.go | 4 -
container/test/generate.go | 50 --
container/types.go | 103 ----
rpc/container.go | 16 -
signature/body.go | 4 -
11 files changed, 4 insertions(+), 1323 deletions(-)
diff --git a/container/convert.go b/container/convert.go
index b487f40..ebd4bcc 100644
--- a/container/convert.go
+++ b/container/convert.go
@@ -1,8 +1,6 @@
package container
import (
- "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl"
- aclGRPC "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
container "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container/grpc"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap"
netmapGRPC "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/grpc"
@@ -764,175 +762,3 @@ func (r *ListResponse) FromGRPCMessage(m grpc.Message) error {
return r.ResponseHeaders.FromMessage(v)
}
-
-func (r *GetExtendedACLRequestBody) ToGRPCMessage() grpc.Message {
- var m *container.GetExtendedACLRequest_Body
-
- if r != nil {
- m = new(container.GetExtendedACLRequest_Body)
-
- m.SetContainerId(r.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
- }
-
- return m
-}
-
-func (r *GetExtendedACLRequestBody) FromGRPCMessage(m grpc.Message) error {
- v, ok := m.(*container.GetExtendedACLRequest_Body)
- if !ok {
- return message.NewUnexpectedMessageType(m, v)
- }
-
- var err error
-
- cid := v.GetContainerId()
- if cid == nil {
- r.cid = nil
- } else {
- if r.cid == nil {
- r.cid = new(refs.ContainerID)
- }
-
- err = r.cid.FromGRPCMessage(cid)
- }
-
- return err
-}
-
-func (r *GetExtendedACLRequest) ToGRPCMessage() grpc.Message {
- var m *container.GetExtendedACLRequest
-
- if r != nil {
- m = new(container.GetExtendedACLRequest)
-
- m.SetBody(r.body.ToGRPCMessage().(*container.GetExtendedACLRequest_Body))
- r.RequestHeaders.ToMessage(m)
- }
-
- return m
-}
-
-func (r *GetExtendedACLRequest) FromGRPCMessage(m grpc.Message) error {
- v, ok := m.(*container.GetExtendedACLRequest)
- if !ok {
- return message.NewUnexpectedMessageType(m, v)
- }
-
- var err error
-
- body := v.GetBody()
- if body == nil {
- r.body = nil
- } else {
- if r.body == nil {
- r.body = new(GetExtendedACLRequestBody)
- }
-
- err = r.body.FromGRPCMessage(body)
- if err != nil {
- return err
- }
- }
-
- return r.RequestHeaders.FromMessage(v)
-}
-
-func (r *GetExtendedACLResponseBody) ToGRPCMessage() grpc.Message {
- var m *container.GetExtendedACLResponse_Body
-
- if r != nil {
- m = new(container.GetExtendedACLResponse_Body)
-
- m.SetEacl(r.eacl.ToGRPCMessage().(*aclGRPC.EACLTable))
- m.SetSignature(toSignatureRFC6979(r.sig))
- m.SetSessionToken(r.token.ToGRPCMessage().(*sessionGRPC.SessionToken))
- }
-
- return m
-}
-
-func (r *GetExtendedACLResponseBody) FromGRPCMessage(m grpc.Message) error {
- v, ok := m.(*container.GetExtendedACLResponse_Body)
- if !ok {
- return message.NewUnexpectedMessageType(m, v)
- }
-
- var err error
-
- eacl := v.GetEacl()
- if eacl == nil {
- r.eacl = nil
- } else {
- if r.eacl == nil {
- r.eacl = new(acl.Table)
- }
-
- err = r.eacl.FromGRPCMessage(eacl)
- if err != nil {
- return err
- }
- }
-
- sig := v.GetSignature()
- if sig == nil {
- r.sig = nil
- } else {
- if r.sig == nil {
- r.sig = new(refs.Signature)
- }
-
- r.sig.SetKey(sig.GetKey())
- r.sig.SetSign(sig.GetSign())
- }
-
- token := v.GetSessionToken()
- if token == nil {
- r.token = nil
- } else {
- if r.token == nil {
- r.token = new(session.Token)
- }
-
- err = r.token.FromGRPCMessage(token)
- }
-
- return err
-}
-
-func (r *GetExtendedACLResponse) ToGRPCMessage() grpc.Message {
- var m *container.GetExtendedACLResponse
-
- if r != nil {
- m = new(container.GetExtendedACLResponse)
-
- m.SetBody(r.body.ToGRPCMessage().(*container.GetExtendedACLResponse_Body))
- r.ResponseHeaders.ToMessage(m)
- }
-
- return m
-}
-
-func (r *GetExtendedACLResponse) FromGRPCMessage(m grpc.Message) error {
- v, ok := m.(*container.GetExtendedACLResponse)
- if !ok {
- return message.NewUnexpectedMessageType(m, v)
- }
-
- var err error
-
- body := v.GetBody()
- if body == nil {
- r.body = nil
- } else {
- if r.body == nil {
- r.body = new(GetExtendedACLResponseBody)
- }
-
- err = r.body.FromGRPCMessage(body)
- if err != nil {
- return err
- }
- }
-
- return r.ResponseHeaders.FromMessage(v)
-}
diff --git a/container/grpc/service_frostfs.pb.go b/container/grpc/service_frostfs.pb.go
index f38b0de..ffdc730 100644
--- a/container/grpc/service_frostfs.pb.go
+++ b/container/grpc/service_frostfs.pb.go
@@ -5,7 +5,6 @@ package container
import (
json "encoding/json"
fmt "fmt"
- grpc2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
pool "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
@@ -2966,781 +2965,3 @@ func (x *ListResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
in.Consumed()
}
}
-
-type GetExtendedACLRequest_Body struct {
- ContainerId *grpc.ContainerID `json:"containerId"`
-}
-
-var (
- _ encoding.ProtoMarshaler = (*GetExtendedACLRequest_Body)(nil)
- _ encoding.ProtoUnmarshaler = (*GetExtendedACLRequest_Body)(nil)
- _ json.Marshaler = (*GetExtendedACLRequest_Body)(nil)
- _ json.Unmarshaler = (*GetExtendedACLRequest_Body)(nil)
-)
-
-// StableSize returns the size of x in protobuf format.
-//
-// Structures with the same field values have the same binary size.
-func (x *GetExtendedACLRequest_Body) StableSize() (size int) {
- if x == nil {
- return 0
- }
- size += proto.NestedStructureSize(1, x.ContainerId)
- return size
-}
-
-// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
-func (x *GetExtendedACLRequest_Body) MarshalProtobuf(dst []byte) []byte {
- m := pool.MarshalerPool.Get()
- defer pool.MarshalerPool.Put(m)
- x.EmitProtobuf(m.MessageMarshaler())
- dst = m.Marshal(dst)
- return dst
-}
-
-func (x *GetExtendedACLRequest_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
- if x == nil {
- return
- }
- if x.ContainerId != nil {
- x.ContainerId.EmitProtobuf(mm.AppendMessage(1))
- }
-}
-
-// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
-func (x *GetExtendedACLRequest_Body) UnmarshalProtobuf(src []byte) (err error) {
- var fc easyproto.FieldContext
- for len(src) > 0 {
- src, err = fc.NextField(src)
- if err != nil {
- return fmt.Errorf("cannot read next field in %s", "GetExtendedACLRequest_Body")
- }
- switch fc.FieldNum {
- case 1: // ContainerId
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "ContainerId")
- }
- x.ContainerId = new(grpc.ContainerID)
- if err := x.ContainerId.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- }
- }
- return nil
-}
-func (x *GetExtendedACLRequest_Body) GetContainerId() *grpc.ContainerID {
- if x != nil {
- return x.ContainerId
- }
- return nil
-}
-func (x *GetExtendedACLRequest_Body) SetContainerId(v *grpc.ContainerID) {
- x.ContainerId = v
-}
-
-// MarshalJSON implements the json.Marshaler interface.
-func (x *GetExtendedACLRequest_Body) MarshalJSON() ([]byte, error) {
- w := jwriter.Writer{}
- x.MarshalEasyJSON(&w)
- return w.Buffer.BuildBytes(), w.Error
-}
-func (x *GetExtendedACLRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
- if x == nil {
- out.RawString("null")
- return
- }
- out.RawByte('{')
- {
- const prefix string = ",\"containerId\":"
- out.RawString(prefix[1:])
- x.ContainerId.MarshalEasyJSON(out)
- }
- out.RawByte('}')
-}
-
-// UnmarshalJSON implements the json.Unmarshaler interface.
-func (x *GetExtendedACLRequest_Body) UnmarshalJSON(data []byte) error {
- r := jlexer.Lexer{Data: data}
- x.UnmarshalEasyJSON(&r)
- return r.Error()
-}
-func (x *GetExtendedACLRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
- isTopLevel := in.IsStart()
- if in.IsNull() {
- if isTopLevel {
- in.Consumed()
- }
- in.Skip()
- return
- }
- in.Delim('{')
- for !in.IsDelim('}') {
- key := in.UnsafeFieldName(false)
- in.WantColon()
- if in.IsNull() {
- in.Skip()
- in.WantComma()
- continue
- }
- switch key {
- case "containerId":
- {
- var f *grpc.ContainerID
- f = new(grpc.ContainerID)
- f.UnmarshalEasyJSON(in)
- x.ContainerId = f
- }
- }
- in.WantComma()
- }
- in.Delim('}')
- if isTopLevel {
- in.Consumed()
- }
-}
-
-type GetExtendedACLRequest struct {
- Body *GetExtendedACLRequest_Body `json:"body"`
- MetaHeader *grpc1.RequestMetaHeader `json:"metaHeader"`
- VerifyHeader *grpc1.RequestVerificationHeader `json:"verifyHeader"`
-}
-
-var (
- _ encoding.ProtoMarshaler = (*GetExtendedACLRequest)(nil)
- _ encoding.ProtoUnmarshaler = (*GetExtendedACLRequest)(nil)
- _ json.Marshaler = (*GetExtendedACLRequest)(nil)
- _ json.Unmarshaler = (*GetExtendedACLRequest)(nil)
-)
-
-// StableSize returns the size of x in protobuf format.
-//
-// Structures with the same field values have the same binary size.
-func (x *GetExtendedACLRequest) StableSize() (size int) {
- if x == nil {
- return 0
- }
- size += proto.NestedStructureSize(1, x.Body)
- size += proto.NestedStructureSize(2, x.MetaHeader)
- size += proto.NestedStructureSize(3, x.VerifyHeader)
- return size
-}
-
-// ReadSignedData fills buf with signed data of x.
-// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
-//
-// Returns any error encountered which did not allow writing the data completely.
-// Otherwise, returns the buffer in which the data is written.
-//
-// Structures with the same field values have the same signed data.
-func (x *GetExtendedACLRequest) SignedDataSize() int {
- return x.GetBody().StableSize()
-}
-
-// SignedDataSize returns size of the request signed data in bytes.
-//
-// Structures with the same field values have the same signed data size.
-func (x *GetExtendedACLRequest) ReadSignedData(buf []byte) ([]byte, error) {
- return x.GetBody().MarshalProtobuf(buf), nil
-}
-
-// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
-func (x *GetExtendedACLRequest) MarshalProtobuf(dst []byte) []byte {
- m := pool.MarshalerPool.Get()
- defer pool.MarshalerPool.Put(m)
- x.EmitProtobuf(m.MessageMarshaler())
- dst = m.Marshal(dst)
- return dst
-}
-
-func (x *GetExtendedACLRequest) EmitProtobuf(mm *easyproto.MessageMarshaler) {
- if x == nil {
- return
- }
- if x.Body != nil {
- x.Body.EmitProtobuf(mm.AppendMessage(1))
- }
- if x.MetaHeader != nil {
- x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
- }
- if x.VerifyHeader != nil {
- x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
- }
-}
-
-// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
-func (x *GetExtendedACLRequest) UnmarshalProtobuf(src []byte) (err error) {
- var fc easyproto.FieldContext
- for len(src) > 0 {
- src, err = fc.NextField(src)
- if err != nil {
- return fmt.Errorf("cannot read next field in %s", "GetExtendedACLRequest")
- }
- switch fc.FieldNum {
- case 1: // Body
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "Body")
- }
- x.Body = new(GetExtendedACLRequest_Body)
- if err := x.Body.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- case 2: // MetaHeader
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
- }
- x.MetaHeader = new(grpc1.RequestMetaHeader)
- if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- case 3: // VerifyHeader
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
- }
- x.VerifyHeader = new(grpc1.RequestVerificationHeader)
- if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- }
- }
- return nil
-}
-func (x *GetExtendedACLRequest) GetBody() *GetExtendedACLRequest_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-func (x *GetExtendedACLRequest) SetBody(v *GetExtendedACLRequest_Body) {
- x.Body = v
-}
-func (x *GetExtendedACLRequest) GetMetaHeader() *grpc1.RequestMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-func (x *GetExtendedACLRequest) SetMetaHeader(v *grpc1.RequestMetaHeader) {
- x.MetaHeader = v
-}
-func (x *GetExtendedACLRequest) GetVerifyHeader() *grpc1.RequestVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-func (x *GetExtendedACLRequest) SetVerifyHeader(v *grpc1.RequestVerificationHeader) {
- x.VerifyHeader = v
-}
-
-// MarshalJSON implements the json.Marshaler interface.
-func (x *GetExtendedACLRequest) MarshalJSON() ([]byte, error) {
- w := jwriter.Writer{}
- x.MarshalEasyJSON(&w)
- return w.Buffer.BuildBytes(), w.Error
-}
-func (x *GetExtendedACLRequest) MarshalEasyJSON(out *jwriter.Writer) {
- if x == nil {
- out.RawString("null")
- return
- }
- out.RawByte('{')
- {
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
- }
- out.RawByte('}')
-}
-
-// UnmarshalJSON implements the json.Unmarshaler interface.
-func (x *GetExtendedACLRequest) UnmarshalJSON(data []byte) error {
- r := jlexer.Lexer{Data: data}
- x.UnmarshalEasyJSON(&r)
- return r.Error()
-}
-func (x *GetExtendedACLRequest) UnmarshalEasyJSON(in *jlexer.Lexer) {
- isTopLevel := in.IsStart()
- if in.IsNull() {
- if isTopLevel {
- in.Consumed()
- }
- in.Skip()
- return
- }
- in.Delim('{')
- for !in.IsDelim('}') {
- key := in.UnsafeFieldName(false)
- in.WantColon()
- if in.IsNull() {
- in.Skip()
- in.WantComma()
- continue
- }
- switch key {
- case "body":
- {
- var f *GetExtendedACLRequest_Body
- f = new(GetExtendedACLRequest_Body)
- f.UnmarshalEasyJSON(in)
- x.Body = f
- }
- case "metaHeader":
- {
- var f *grpc1.RequestMetaHeader
- f = new(grpc1.RequestMetaHeader)
- f.UnmarshalEasyJSON(in)
- x.MetaHeader = f
- }
- case "verifyHeader":
- {
- var f *grpc1.RequestVerificationHeader
- f = new(grpc1.RequestVerificationHeader)
- f.UnmarshalEasyJSON(in)
- x.VerifyHeader = f
- }
- }
- in.WantComma()
- }
- in.Delim('}')
- if isTopLevel {
- in.Consumed()
- }
-}
-
-type GetExtendedACLResponse_Body struct {
- Eacl *grpc2.EACLTable `json:"eacl"`
- Signature *grpc.SignatureRFC6979 `json:"signature"`
- SessionToken *grpc1.SessionToken `json:"sessionToken"`
-}
-
-var (
- _ encoding.ProtoMarshaler = (*GetExtendedACLResponse_Body)(nil)
- _ encoding.ProtoUnmarshaler = (*GetExtendedACLResponse_Body)(nil)
- _ json.Marshaler = (*GetExtendedACLResponse_Body)(nil)
- _ json.Unmarshaler = (*GetExtendedACLResponse_Body)(nil)
-)
-
-// StableSize returns the size of x in protobuf format.
-//
-// Structures with the same field values have the same binary size.
-func (x *GetExtendedACLResponse_Body) StableSize() (size int) {
- if x == nil {
- return 0
- }
- size += proto.NestedStructureSize(1, x.Eacl)
- size += proto.NestedStructureSize(2, x.Signature)
- size += proto.NestedStructureSize(3, x.SessionToken)
- return size
-}
-
-// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
-func (x *GetExtendedACLResponse_Body) MarshalProtobuf(dst []byte) []byte {
- m := pool.MarshalerPool.Get()
- defer pool.MarshalerPool.Put(m)
- x.EmitProtobuf(m.MessageMarshaler())
- dst = m.Marshal(dst)
- return dst
-}
-
-func (x *GetExtendedACLResponse_Body) EmitProtobuf(mm *easyproto.MessageMarshaler) {
- if x == nil {
- return
- }
- if x.Eacl != nil {
- x.Eacl.EmitProtobuf(mm.AppendMessage(1))
- }
- if x.Signature != nil {
- x.Signature.EmitProtobuf(mm.AppendMessage(2))
- }
- if x.SessionToken != nil {
- x.SessionToken.EmitProtobuf(mm.AppendMessage(3))
- }
-}
-
-// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
-func (x *GetExtendedACLResponse_Body) UnmarshalProtobuf(src []byte) (err error) {
- var fc easyproto.FieldContext
- for len(src) > 0 {
- src, err = fc.NextField(src)
- if err != nil {
- return fmt.Errorf("cannot read next field in %s", "GetExtendedACLResponse_Body")
- }
- switch fc.FieldNum {
- case 1: // Eacl
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "Eacl")
- }
- x.Eacl = new(grpc2.EACLTable)
- if err := x.Eacl.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- case 2: // Signature
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "Signature")
- }
- x.Signature = new(grpc.SignatureRFC6979)
- if err := x.Signature.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- case 3: // SessionToken
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "SessionToken")
- }
- x.SessionToken = new(grpc1.SessionToken)
- if err := x.SessionToken.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- }
- }
- return nil
-}
-func (x *GetExtendedACLResponse_Body) GetEacl() *grpc2.EACLTable {
- if x != nil {
- return x.Eacl
- }
- return nil
-}
-func (x *GetExtendedACLResponse_Body) SetEacl(v *grpc2.EACLTable) {
- x.Eacl = v
-}
-func (x *GetExtendedACLResponse_Body) GetSignature() *grpc.SignatureRFC6979 {
- if x != nil {
- return x.Signature
- }
- return nil
-}
-func (x *GetExtendedACLResponse_Body) SetSignature(v *grpc.SignatureRFC6979) {
- x.Signature = v
-}
-func (x *GetExtendedACLResponse_Body) GetSessionToken() *grpc1.SessionToken {
- if x != nil {
- return x.SessionToken
- }
- return nil
-}
-func (x *GetExtendedACLResponse_Body) SetSessionToken(v *grpc1.SessionToken) {
- x.SessionToken = v
-}
-
-// MarshalJSON implements the json.Marshaler interface.
-func (x *GetExtendedACLResponse_Body) MarshalJSON() ([]byte, error) {
- w := jwriter.Writer{}
- x.MarshalEasyJSON(&w)
- return w.Buffer.BuildBytes(), w.Error
-}
-func (x *GetExtendedACLResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
- if x == nil {
- out.RawString("null")
- return
- }
- out.RawByte('{')
- {
- const prefix string = ",\"eacl\":"
- out.RawString(prefix[1:])
- x.Eacl.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"sessionToken\":"
- out.RawString(prefix)
- x.SessionToken.MarshalEasyJSON(out)
- }
- out.RawByte('}')
-}
-
-// UnmarshalJSON implements the json.Unmarshaler interface.
-func (x *GetExtendedACLResponse_Body) UnmarshalJSON(data []byte) error {
- r := jlexer.Lexer{Data: data}
- x.UnmarshalEasyJSON(&r)
- return r.Error()
-}
-func (x *GetExtendedACLResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
- isTopLevel := in.IsStart()
- if in.IsNull() {
- if isTopLevel {
- in.Consumed()
- }
- in.Skip()
- return
- }
- in.Delim('{')
- for !in.IsDelim('}') {
- key := in.UnsafeFieldName(false)
- in.WantColon()
- if in.IsNull() {
- in.Skip()
- in.WantComma()
- continue
- }
- switch key {
- case "eacl":
- {
- var f *grpc2.EACLTable
- f = new(grpc2.EACLTable)
- f.UnmarshalEasyJSON(in)
- x.Eacl = f
- }
- case "signature":
- {
- var f *grpc.SignatureRFC6979
- f = new(grpc.SignatureRFC6979)
- f.UnmarshalEasyJSON(in)
- x.Signature = f
- }
- case "sessionToken":
- {
- var f *grpc1.SessionToken
- f = new(grpc1.SessionToken)
- f.UnmarshalEasyJSON(in)
- x.SessionToken = f
- }
- }
- in.WantComma()
- }
- in.Delim('}')
- if isTopLevel {
- in.Consumed()
- }
-}
-
-type GetExtendedACLResponse struct {
- Body *GetExtendedACLResponse_Body `json:"body"`
- MetaHeader *grpc1.ResponseMetaHeader `json:"metaHeader"`
- VerifyHeader *grpc1.ResponseVerificationHeader `json:"verifyHeader"`
-}
-
-var (
- _ encoding.ProtoMarshaler = (*GetExtendedACLResponse)(nil)
- _ encoding.ProtoUnmarshaler = (*GetExtendedACLResponse)(nil)
- _ json.Marshaler = (*GetExtendedACLResponse)(nil)
- _ json.Unmarshaler = (*GetExtendedACLResponse)(nil)
-)
-
-// StableSize returns the size of x in protobuf format.
-//
-// Structures with the same field values have the same binary size.
-func (x *GetExtendedACLResponse) StableSize() (size int) {
- if x == nil {
- return 0
- }
- size += proto.NestedStructureSize(1, x.Body)
- size += proto.NestedStructureSize(2, x.MetaHeader)
- size += proto.NestedStructureSize(3, x.VerifyHeader)
- return size
-}
-
-// ReadSignedData fills buf with signed data of x.
-// If buffer length is less than x.SignedDataSize(), new buffer is allocated.
-//
-// Returns any error encountered which did not allow writing the data completely.
-// Otherwise, returns the buffer in which the data is written.
-//
-// Structures with the same field values have the same signed data.
-func (x *GetExtendedACLResponse) SignedDataSize() int {
- return x.GetBody().StableSize()
-}
-
-// SignedDataSize returns size of the request signed data in bytes.
-//
-// Structures with the same field values have the same signed data size.
-func (x *GetExtendedACLResponse) ReadSignedData(buf []byte) ([]byte, error) {
- return x.GetBody().MarshalProtobuf(buf), nil
-}
-
-// MarshalProtobuf implements the encoding.ProtoMarshaler interface.
-func (x *GetExtendedACLResponse) MarshalProtobuf(dst []byte) []byte {
- m := pool.MarshalerPool.Get()
- defer pool.MarshalerPool.Put(m)
- x.EmitProtobuf(m.MessageMarshaler())
- dst = m.Marshal(dst)
- return dst
-}
-
-func (x *GetExtendedACLResponse) EmitProtobuf(mm *easyproto.MessageMarshaler) {
- if x == nil {
- return
- }
- if x.Body != nil {
- x.Body.EmitProtobuf(mm.AppendMessage(1))
- }
- if x.MetaHeader != nil {
- x.MetaHeader.EmitProtobuf(mm.AppendMessage(2))
- }
- if x.VerifyHeader != nil {
- x.VerifyHeader.EmitProtobuf(mm.AppendMessage(3))
- }
-}
-
-// UnmarshalProtobuf implements the encoding.ProtoUnmarshaler interface.
-func (x *GetExtendedACLResponse) UnmarshalProtobuf(src []byte) (err error) {
- var fc easyproto.FieldContext
- for len(src) > 0 {
- src, err = fc.NextField(src)
- if err != nil {
- return fmt.Errorf("cannot read next field in %s", "GetExtendedACLResponse")
- }
- switch fc.FieldNum {
- case 1: // Body
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "Body")
- }
- x.Body = new(GetExtendedACLResponse_Body)
- if err := x.Body.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- case 2: // MetaHeader
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "MetaHeader")
- }
- x.MetaHeader = new(grpc1.ResponseMetaHeader)
- if err := x.MetaHeader.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- case 3: // VerifyHeader
- data, ok := fc.MessageData()
- if !ok {
- return fmt.Errorf("cannot unmarshal field %s", "VerifyHeader")
- }
- x.VerifyHeader = new(grpc1.ResponseVerificationHeader)
- if err := x.VerifyHeader.UnmarshalProtobuf(data); err != nil {
- return fmt.Errorf("unmarshal: %w", err)
- }
- }
- }
- return nil
-}
-func (x *GetExtendedACLResponse) GetBody() *GetExtendedACLResponse_Body {
- if x != nil {
- return x.Body
- }
- return nil
-}
-func (x *GetExtendedACLResponse) SetBody(v *GetExtendedACLResponse_Body) {
- x.Body = v
-}
-func (x *GetExtendedACLResponse) GetMetaHeader() *grpc1.ResponseMetaHeader {
- if x != nil {
- return x.MetaHeader
- }
- return nil
-}
-func (x *GetExtendedACLResponse) SetMetaHeader(v *grpc1.ResponseMetaHeader) {
- x.MetaHeader = v
-}
-func (x *GetExtendedACLResponse) GetVerifyHeader() *grpc1.ResponseVerificationHeader {
- if x != nil {
- return x.VerifyHeader
- }
- return nil
-}
-func (x *GetExtendedACLResponse) SetVerifyHeader(v *grpc1.ResponseVerificationHeader) {
- x.VerifyHeader = v
-}
-
-// MarshalJSON implements the json.Marshaler interface.
-func (x *GetExtendedACLResponse) MarshalJSON() ([]byte, error) {
- w := jwriter.Writer{}
- x.MarshalEasyJSON(&w)
- return w.Buffer.BuildBytes(), w.Error
-}
-func (x *GetExtendedACLResponse) MarshalEasyJSON(out *jwriter.Writer) {
- if x == nil {
- out.RawString("null")
- return
- }
- out.RawByte('{')
- {
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
- }
- out.RawByte('}')
-}
-
-// UnmarshalJSON implements the json.Unmarshaler interface.
-func (x *GetExtendedACLResponse) UnmarshalJSON(data []byte) error {
- r := jlexer.Lexer{Data: data}
- x.UnmarshalEasyJSON(&r)
- return r.Error()
-}
-func (x *GetExtendedACLResponse) UnmarshalEasyJSON(in *jlexer.Lexer) {
- isTopLevel := in.IsStart()
- if in.IsNull() {
- if isTopLevel {
- in.Consumed()
- }
- in.Skip()
- return
- }
- in.Delim('{')
- for !in.IsDelim('}') {
- key := in.UnsafeFieldName(false)
- in.WantColon()
- if in.IsNull() {
- in.Skip()
- in.WantComma()
- continue
- }
- switch key {
- case "body":
- {
- var f *GetExtendedACLResponse_Body
- f = new(GetExtendedACLResponse_Body)
- f.UnmarshalEasyJSON(in)
- x.Body = f
- }
- case "metaHeader":
- {
- var f *grpc1.ResponseMetaHeader
- f = new(grpc1.ResponseMetaHeader)
- f.UnmarshalEasyJSON(in)
- x.MetaHeader = f
- }
- case "verifyHeader":
- {
- var f *grpc1.ResponseVerificationHeader
- f = new(grpc1.ResponseVerificationHeader)
- f.UnmarshalEasyJSON(in)
- x.VerifyHeader = f
- }
- }
- in.WantComma()
- }
- in.Delim('}')
- if isTopLevel {
- in.Consumed()
- }
-}
diff --git a/container/grpc/service_frostfs_fuzz.go b/container/grpc/service_frostfs_fuzz.go
index 496a2d6..7e6d6e6 100644
--- a/container/grpc/service_frostfs_fuzz.go
+++ b/container/grpc/service_frostfs_fuzz.go
@@ -157,41 +157,3 @@ func DoFuzzJSONListResponse(data []byte) int {
}
return 1
}
-func DoFuzzProtoGetExtendedACLRequest(data []byte) int {
- msg := new(GetExtendedACLRequest)
- if err := msg.UnmarshalProtobuf(data); err != nil {
- return 0
- }
- _ = msg.MarshalProtobuf(nil)
- return 1
-}
-func DoFuzzJSONGetExtendedACLRequest(data []byte) int {
- msg := new(GetExtendedACLRequest)
- if err := msg.UnmarshalJSON(data); err != nil {
- return 0
- }
- _, err := msg.MarshalJSON()
- if err != nil {
- panic(err)
- }
- return 1
-}
-func DoFuzzProtoGetExtendedACLResponse(data []byte) int {
- msg := new(GetExtendedACLResponse)
- if err := msg.UnmarshalProtobuf(data); err != nil {
- return 0
- }
- _ = msg.MarshalProtobuf(nil)
- return 1
-}
-func DoFuzzJSONGetExtendedACLResponse(data []byte) int {
- msg := new(GetExtendedACLResponse)
- if err := msg.UnmarshalJSON(data); err != nil {
- return 0
- }
- _, err := msg.MarshalJSON()
- if err != nil {
- panic(err)
- }
- return 1
-}
diff --git a/container/grpc/service_frostfs_test.go b/container/grpc/service_frostfs_test.go
index 05eb48a..804b89c 100644
--- a/container/grpc/service_frostfs_test.go
+++ b/container/grpc/service_frostfs_test.go
@@ -89,23 +89,3 @@ func FuzzJSONListResponse(f *testing.F) {
DoFuzzJSONListResponse(data)
})
}
-func FuzzProtoGetExtendedACLRequest(f *testing.F) {
- f.Fuzz(func(t *testing.T, data []byte) {
- DoFuzzProtoGetExtendedACLRequest(data)
- })
-}
-func FuzzJSONGetExtendedACLRequest(f *testing.F) {
- f.Fuzz(func(t *testing.T, data []byte) {
- DoFuzzJSONGetExtendedACLRequest(data)
- })
-}
-func FuzzProtoGetExtendedACLResponse(f *testing.F) {
- f.Fuzz(func(t *testing.T, data []byte) {
- DoFuzzProtoGetExtendedACLResponse(data)
- })
-}
-func FuzzJSONGetExtendedACLResponse(f *testing.F) {
- f.Fuzz(func(t *testing.T, data []byte) {
- DoFuzzJSONGetExtendedACLResponse(data)
- })
-}
diff --git a/container/grpc/service_grpc.pb.go b/container/grpc/service_grpc.pb.go
index 939a978..abb0fef 100644
--- a/container/grpc/service_grpc.pb.go
+++ b/container/grpc/service_grpc.pb.go
@@ -19,11 +19,10 @@ import (
const _ = grpc.SupportPackageIsVersion7
const (
- ContainerService_Put_FullMethodName = "/neo.fs.v2.container.ContainerService/Put"
- ContainerService_Delete_FullMethodName = "/neo.fs.v2.container.ContainerService/Delete"
- ContainerService_Get_FullMethodName = "/neo.fs.v2.container.ContainerService/Get"
- ContainerService_List_FullMethodName = "/neo.fs.v2.container.ContainerService/List"
- ContainerService_GetExtendedACL_FullMethodName = "/neo.fs.v2.container.ContainerService/GetExtendedACL"
+ ContainerService_Put_FullMethodName = "/neo.fs.v2.container.ContainerService/Put"
+ ContainerService_Delete_FullMethodName = "/neo.fs.v2.container.ContainerService/Delete"
+ ContainerService_Get_FullMethodName = "/neo.fs.v2.container.ContainerService/Get"
+ ContainerService_List_FullMethodName = "/neo.fs.v2.container.ContainerService/List"
)
// ContainerServiceClient is the client API for ContainerService service.
@@ -74,20 +73,6 @@ type ContainerServiceClient interface {
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
// container list access denied.
List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error)
- // Returns Extended ACL table and signature from `Container` smart contract
- // storage.
- //
- // Statuses:
- // - **OK** (0, SECTION_SUCCESS): \
- // container eACL has been successfully read;
- // - Common failures (SECTION_FAILURE_COMMON);
- // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
- // container not found;
- // - **EACL_NOT_FOUND** (3073, SECTION_CONTAINER): \
- // eACL table not found;
- // - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
- // access to container eACL is denied.
- GetExtendedACL(ctx context.Context, in *GetExtendedACLRequest, opts ...grpc.CallOption) (*GetExtendedACLResponse, error)
}
type containerServiceClient struct {
@@ -134,15 +119,6 @@ func (c *containerServiceClient) List(ctx context.Context, in *ListRequest, opts
return out, nil
}
-func (c *containerServiceClient) GetExtendedACL(ctx context.Context, in *GetExtendedACLRequest, opts ...grpc.CallOption) (*GetExtendedACLResponse, error) {
- out := new(GetExtendedACLResponse)
- err := c.cc.Invoke(ctx, ContainerService_GetExtendedACL_FullMethodName, in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
// ContainerServiceServer is the server API for ContainerService service.
// All implementations should embed UnimplementedContainerServiceServer
// for forward compatibility
@@ -191,20 +167,6 @@ type ContainerServiceServer interface {
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
// container list access denied.
List(context.Context, *ListRequest) (*ListResponse, error)
- // Returns Extended ACL table and signature from `Container` smart contract
- // storage.
- //
- // Statuses:
- // - **OK** (0, SECTION_SUCCESS): \
- // container eACL has been successfully read;
- // - Common failures (SECTION_FAILURE_COMMON);
- // - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
- // container not found;
- // - **EACL_NOT_FOUND** (3073, SECTION_CONTAINER): \
- // eACL table not found;
- // - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
- // access to container eACL is denied.
- GetExtendedACL(context.Context, *GetExtendedACLRequest) (*GetExtendedACLResponse, error)
}
// UnimplementedContainerServiceServer should be embedded to have forward compatible implementations.
@@ -223,9 +185,6 @@ func (UnimplementedContainerServiceServer) Get(context.Context, *GetRequest) (*G
func (UnimplementedContainerServiceServer) List(context.Context, *ListRequest) (*ListResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
}
-func (UnimplementedContainerServiceServer) GetExtendedACL(context.Context, *GetExtendedACLRequest) (*GetExtendedACLResponse, error) {
- return nil, status.Errorf(codes.Unimplemented, "method GetExtendedACL not implemented")
-}
// UnsafeContainerServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to ContainerServiceServer will
@@ -310,24 +269,6 @@ func _ContainerService_List_Handler(srv interface{}, ctx context.Context, dec fu
return interceptor(ctx, in, info, handler)
}
-func _ContainerService_GetExtendedACL_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(GetExtendedACLRequest)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(ContainerServiceServer).GetExtendedACL(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: ContainerService_GetExtendedACL_FullMethodName,
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(ContainerServiceServer).GetExtendedACL(ctx, req.(*GetExtendedACLRequest))
- }
- return interceptor(ctx, in, info, handler)
-}
-
// ContainerService_ServiceDesc is the grpc.ServiceDesc for ContainerService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@@ -351,10 +292,6 @@ var ContainerService_ServiceDesc = grpc.ServiceDesc{
MethodName: "List",
Handler: _ContainerService_List_Handler,
},
- {
- MethodName: "GetExtendedACL",
- Handler: _ContainerService_GetExtendedACL_Handler,
- },
},
Streams: []grpc.StreamDesc{},
Metadata: "container/grpc/service.proto",
diff --git a/container/marshal.go b/container/marshal.go
index ff17150..7c9b8ef 100644
--- a/container/marshal.go
+++ b/container/marshal.go
@@ -34,12 +34,6 @@ const (
listReqBodyOwnerField = 1
listRespBodyIDsField = 1
-
- getEACLReqBodyIDField = 1
-
- getEACLRespBodyTableField = 1
- getEACLRespBodySignatureField = 2
- getEACLRespBodyTokenField = 3
)
func (a *Attribute) StableMarshal(buf []byte) []byte {
@@ -349,65 +343,3 @@ func (r *ListResponseBody) StableSize() (size int) {
func (r *ListResponseBody) Unmarshal(data []byte) error {
return message.Unmarshal(r, data, new(container.ListResponse_Body))
}
-
-func (r *GetExtendedACLRequestBody) StableMarshal(buf []byte) []byte {
- if r == nil {
- return []byte{}
- }
-
- if buf == nil {
- buf = make([]byte, r.StableSize())
- }
-
- protoutil.NestedStructureMarshal(getEACLReqBodyIDField, buf, r.cid)
-
- return buf
-}
-
-func (r *GetExtendedACLRequestBody) StableSize() (size int) {
- if r == nil {
- return 0
- }
-
- size += protoutil.NestedStructureSize(getEACLReqBodyIDField, r.cid)
-
- return size
-}
-
-func (r *GetExtendedACLRequestBody) Unmarshal(data []byte) error {
- return message.Unmarshal(r, data, new(container.GetExtendedACLRequest_Body))
-}
-
-func (r *GetExtendedACLResponseBody) StableMarshal(buf []byte) []byte {
- if r == nil {
- return []byte{}
- }
-
- if buf == nil {
- buf = make([]byte, r.StableSize())
- }
-
- var offset int
-
- offset += protoutil.NestedStructureMarshal(getEACLRespBodyTableField, buf[offset:], r.eacl)
- offset += protoutil.NestedStructureMarshal(getEACLRespBodySignatureField, buf[offset:], r.sig)
- protoutil.NestedStructureMarshal(getEACLRespBodyTokenField, buf[offset:], r.token)
-
- return buf
-}
-
-func (r *GetExtendedACLResponseBody) StableSize() (size int) {
- if r == nil {
- return 0
- }
-
- size += protoutil.NestedStructureSize(getEACLRespBodyTableField, r.eacl)
- size += protoutil.NestedStructureSize(getEACLRespBodySignatureField, r.sig)
- size += protoutil.NestedStructureSize(getEACLRespBodyTokenField, r.token)
-
- return size
-}
-
-func (r *GetExtendedACLResponseBody) Unmarshal(data []byte) error {
- return message.Unmarshal(r, data, new(container.GetExtendedACLResponse_Body))
-}
diff --git a/container/message_test.go b/container/message_test.go
index 6558e25..da99331 100644
--- a/container/message_test.go
+++ b/container/message_test.go
@@ -32,9 +32,5 @@ func TestMessageConvert(t *testing.T) {
func(empty bool) message.Message { return containertest.GenerateGetRequest(empty) },
func(empty bool) message.Message { return containertest.GenerateGetResponseBody(empty) },
func(empty bool) message.Message { return containertest.GenerateGetResponse(empty) },
- func(empty bool) message.Message { return containertest.GenerateGetExtendedACLRequestBody(empty) },
- func(empty bool) message.Message { return containertest.GenerateGetExtendedACLRequest(empty) },
- func(empty bool) message.Message { return containertest.GenerateGetExtendedACLResponseBody(empty) },
- func(empty bool) message.Message { return containertest.GenerateGetExtendedACLResponse(empty) },
)
}
diff --git a/container/test/generate.go b/container/test/generate.go
index 23ad3a1..fb5c9e6 100644
--- a/container/test/generate.go
+++ b/container/test/generate.go
@@ -3,7 +3,6 @@ package containertest
import (
"crypto/rand"
- acltest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/test"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container"
netmaptest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/test"
refstest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/test"
@@ -239,52 +238,3 @@ func GenerateListResponse(empty bool) *container.ListResponse {
return m
}
-
-func GenerateGetExtendedACLRequestBody(empty bool) *container.GetExtendedACLRequestBody {
- m := new(container.GetExtendedACLRequestBody)
-
- if !empty {
- m.SetContainerID(refstest.GenerateContainerID(false))
- }
-
- return m
-}
-
-func GenerateGetExtendedACLRequest(empty bool) *container.GetExtendedACLRequest {
- m := new(container.GetExtendedACLRequest)
-
- if !empty {
- m.SetBody(GenerateGetExtendedACLRequestBody(false))
- }
-
- m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty))
- m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty))
-
- return m
-}
-
-func GenerateGetExtendedACLResponseBody(empty bool) *container.GetExtendedACLResponseBody {
- m := new(container.GetExtendedACLResponseBody)
-
- if !empty {
- m.SetEACL(acltest.GenerateTable(false))
- }
-
- m.SetSignature(refstest.GenerateSignature(empty))
- m.SetSessionToken(sessiontest.GenerateSessionToken(empty))
-
- return m
-}
-
-func GenerateGetExtendedACLResponse(empty bool) *container.GetExtendedACLResponse {
- m := new(container.GetExtendedACLResponse)
-
- if !empty {
- m.SetBody(GenerateGetExtendedACLResponseBody(false))
- }
-
- m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty))
- m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
-
- return m
-}
diff --git a/container/types.go b/container/types.go
index 3a9e915..6adc57b 100644
--- a/container/types.go
+++ b/container/types.go
@@ -1,7 +1,6 @@
package container
import (
- "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session"
@@ -110,30 +109,6 @@ type ListResponse struct {
session.ResponseHeaders
}
-type GetExtendedACLRequestBody struct {
- cid *refs.ContainerID
-}
-
-type GetExtendedACLRequest struct {
- body *GetExtendedACLRequestBody
-
- session.RequestHeaders
-}
-
-type GetExtendedACLResponseBody struct {
- eacl *acl.Table
-
- sig *refs.Signature
-
- token *session.Token
-}
-
-type GetExtendedACLResponse struct {
- body *GetExtendedACLResponseBody
-
- session.ResponseHeaders
-}
-
func (a *Attribute) GetKey() string {
if a != nil {
return a.key
@@ -469,81 +444,3 @@ func (r *ListResponse) GetBody() *ListResponseBody {
func (r *ListResponse) SetBody(v *ListResponseBody) {
r.body = v
}
-
-func (r *GetExtendedACLRequestBody) GetContainerID() *refs.ContainerID {
- if r != nil {
- return r.cid
- }
-
- return nil
-}
-
-func (r *GetExtendedACLRequestBody) SetContainerID(v *refs.ContainerID) {
- r.cid = v
-}
-
-func (r *GetExtendedACLRequest) GetBody() *GetExtendedACLRequestBody {
- if r != nil {
- return r.body
- }
-
- return nil
-}
-
-func (r *GetExtendedACLRequest) SetBody(v *GetExtendedACLRequestBody) {
- r.body = v
-}
-
-func (r *GetExtendedACLResponseBody) GetEACL() *acl.Table {
- if r != nil {
- return r.eacl
- }
-
- return nil
-}
-
-func (r *GetExtendedACLResponseBody) SetEACL(v *acl.Table) {
- r.eacl = v
-}
-
-func (r *GetExtendedACLResponseBody) GetSignature() *refs.Signature {
- if r != nil {
- return r.sig
- }
-
- return nil
-}
-
-func (r *GetExtendedACLResponseBody) SetSignature(v *refs.Signature) {
- // TODO: (neofs-api-go#381) avoid this hack (e.g. create refs.SignatureRFC6979 type)
- v.SetScheme(0)
- r.sig = v
-}
-
-// GetSessionToken returns token of the session within which requested
-// eACL table was set.
-func (r *GetExtendedACLResponseBody) GetSessionToken() *session.Token {
- if r != nil {
- return r.token
- }
-
- return nil
-}
-
-// SetSessionToken sets token of the session within which requested
-// eACL table was set.
-func (r *GetExtendedACLResponseBody) SetSessionToken(v *session.Token) {
- r.token = v
-}
-
-func (r *GetExtendedACLResponse) GetBody() *GetExtendedACLResponseBody {
- if r != nil {
- return r.body
- }
-
- return nil
-}
-
-func (r *GetExtendedACLResponse) SetBody(v *GetExtendedACLResponseBody) {
- r.body = v
-}
diff --git a/rpc/container.go b/rpc/container.go
index 39213f6..b1d4a68 100644
--- a/rpc/container.go
+++ b/rpc/container.go
@@ -80,19 +80,3 @@ func ListContainers(
return resp, nil
}
-
-// GetEACL executes ContainerService.GetExtendedACL RPC.
-func GetEACL(
- cli *client.Client,
- req *container.GetExtendedACLRequest,
- opts ...client.CallOption,
-) (*container.GetExtendedACLResponse, error) {
- resp := new(container.GetExtendedACLResponse)
-
- err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceContainer, rpcContainerGetEACL), req, resp, opts...)
- if err != nil {
- return nil, err
- }
-
- return resp, nil
-}
diff --git a/signature/body.go b/signature/body.go
index 4b43b84..b1a5904 100644
--- a/signature/body.go
+++ b/signature/body.go
@@ -46,10 +46,6 @@ func serviceMessageBody(req any) stableMarshaler {
return v.GetBody()
case *container.ListResponse:
return v.GetBody()
- case *container.GetExtendedACLRequest:
- return v.GetBody()
- case *container.GetExtendedACLResponse:
- return v.GetBody()
/* Object */
case *object.PutRequest:
From 7d71556eee2d8a1b3efc3e3e0083a5edb1dda798 Mon Sep 17 00:00:00 2001
From: Ekaterina Lebedeva
Date: Wed, 4 Sep 2024 12:45:32 +0300
Subject: [PATCH 22/42] [#113] pre-commit: Update golangci-lint to v1.60.3
Signed-off-by: Ekaterina Lebedeva
---
.pre-commit-config.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index a64cbaa..d20db47 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -37,6 +37,6 @@ repos:
language: system
- repo: https://github.com/golangci/golangci-lint
- rev: v1.56.2
+ rev: v1.60.3
hooks:
- id: golangci-lint
From bd588fa2e5d1c2d398f1f602692b867dcca154a1 Mon Sep 17 00:00:00 2001
From: Ekaterina Lebedeva
Date: Wed, 4 Sep 2024 15:44:59 +0300
Subject: [PATCH 23/42] [#113] go.mod: Use range over int
Since Go 1.22 a `for` statement with a `range` clause is able
to iterate through integer values from zero to an upper limit.
gopatch script:
@@
var i, e expression
@@
-for i := 0; i <= e - 1; i++ {
+for i := range e {
...
}
@@
var i, e expression
@@
-for i := 0; i <= e; i++ {
+for i := range e + 1 {
...
}
@@
var i, e expression
@@
-for i := 0; i < e; i++ {
+for i := range e {
...
}
Signed-off-by: Ekaterina Lebedeva
---
acl/bench_test.go | 4 ++--
netmap/convert.go | 4 ++--
object/bench_test.go | 4 ++--
refs/bench_test.go | 6 +++---
signature/sign_test.go | 4 ++--
status/convert.go | 4 ++--
6 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/acl/bench_test.go b/acl/bench_test.go
index 8d6352b..85dbf7d 100644
--- a/acl/bench_test.go
+++ b/acl/bench_test.go
@@ -32,7 +32,7 @@ func BenchmarkTable_ToGRPCMessage(b *testing.B) {
b.Run("to grpc message", func(b *testing.B) {
b.ReportAllocs()
- for i := 0; i < b.N; i++ {
+ for range b.N {
raw := tb.ToGRPCMessage()
if len(tb.GetRecords()) != len(raw.(*aclGrpc.EACLTable).Records) {
b.FailNow()
@@ -41,7 +41,7 @@ func BenchmarkTable_ToGRPCMessage(b *testing.B) {
})
b.Run("from grpc message", func(b *testing.B) {
b.ReportAllocs()
- for i := 0; i < b.N; i++ {
+ for range b.N {
tb := new(acl.Table)
if tb.FromGRPCMessage(raw) != nil {
b.FailNow()
diff --git a/netmap/convert.go b/netmap/convert.go
index 659b798..bae309f 100644
--- a/netmap/convert.go
+++ b/netmap/convert.go
@@ -525,7 +525,7 @@ func (x *NetworkConfig) ToGRPCMessage() grpc.Message {
if ln := len(x.ps); ln > 0 {
ps = make([]netmap.NetworkConfig_Parameter, 0, ln)
- for i := 0; i < ln; i++ {
+ for i := range ln {
ps = append(ps, *x.ps[i].ToGRPCMessage().(*netmap.NetworkConfig_Parameter))
}
}
@@ -552,7 +552,7 @@ func (x *NetworkConfig) FromGRPCMessage(m grpc.Message) error {
ps = make([]NetworkParameter, ln)
- for i := 0; i < ln; i++ {
+ for i := range ln {
if err := ps[i].FromGRPCMessage(&psV2[i]); err != nil {
return err
}
diff --git a/object/bench_test.go b/object/bench_test.go
index 90fab73..b29b1d1 100644
--- a/object/bench_test.go
+++ b/object/bench_test.go
@@ -26,7 +26,7 @@ func BenchmarkAttributesMarshal(b *testing.B) {
b.Run("marshal", func(b *testing.B) {
b.ReportAllocs()
- for i := 0; i < b.N; i++ {
+ for range b.N {
res := AttributesToGRPC(attrs)
if len(res) != len(raw) {
b.FailNow()
@@ -35,7 +35,7 @@ func BenchmarkAttributesMarshal(b *testing.B) {
})
b.Run("unmarshal", func(b *testing.B) {
b.ReportAllocs()
- for i := 0; i < b.N; i++ {
+ for range b.N {
res, err := AttributesFromGRPC(raw)
if err != nil || len(res) != len(raw) {
b.FailNow()
diff --git a/refs/bench_test.go b/refs/bench_test.go
index b24e674..40784c6 100644
--- a/refs/bench_test.go
+++ b/refs/bench_test.go
@@ -24,7 +24,7 @@ func benchmarkObjectIDSlice(b *testing.B, size int) {
b.Run("to grpc message", func(b *testing.B) {
b.ReportAllocs()
- for i := 0; i < b.N; i++ {
+ for range b.N {
raw := ObjectIDListToGRPCMessage(ids)
if len(raw) != len(ids) {
b.FailNow()
@@ -33,7 +33,7 @@ func benchmarkObjectIDSlice(b *testing.B, size int) {
})
b.Run("from grpc message", func(b *testing.B) {
b.ReportAllocs()
- for i := 0; i < b.N; i++ {
+ for range b.N {
ids, err := ObjectIDListFromGRPCMessage(raw)
if err != nil || len(raw) != len(ids) {
b.FailNow()
@@ -42,7 +42,7 @@ func benchmarkObjectIDSlice(b *testing.B, size int) {
})
b.Run("marshal", func(b *testing.B) {
b.ReportAllocs()
- for i := 0; i < b.N; i++ {
+ for range b.N {
buf := make([]byte, ObjectIDNestedListSize(1, ids))
n := ObjectIDNestedListMarshal(1, buf, ids)
if n != len(buf) {
diff --git a/signature/sign_test.go b/signature/sign_test.go
index c013525..b606c27 100644
--- a/signature/sign_test.go
+++ b/signature/sign_test.go
@@ -77,7 +77,7 @@ func BenchmarkSignRequest(b *testing.B) {
b.ResetTimer()
b.ReportAllocs()
- for i := 0; i < b.N; i++ {
+ for range b.N {
b.StopTimer()
dec := new(accounting.Decimal)
dec.SetValue(100)
@@ -103,7 +103,7 @@ func BenchmarkVerifyRequest(b *testing.B) {
b.ResetTimer()
b.ReportAllocs()
- for i := 0; i < b.N; i++ {
+ for range b.N {
b.StopTimer()
dec := new(accounting.Decimal)
dec.SetValue(100)
diff --git a/status/convert.go b/status/convert.go
index 3c5b5bf..6b34084 100644
--- a/status/convert.go
+++ b/status/convert.go
@@ -53,7 +53,7 @@ func (x *Status) ToGRPCMessage() grpc.Message {
if ln := len(x.details); ln > 0 {
ds = make([]status.Status_Detail, 0, ln)
- for i := 0; i < ln; i++ {
+ for i := range ln {
ds = append(ds, *x.details[i].ToGRPCMessage().(*status.Status_Detail))
}
}
@@ -80,7 +80,7 @@ func (x *Status) FromGRPCMessage(m grpc.Message) error {
ds = make([]Detail, ln)
- for i := 0; i < ln; i++ {
+ for i := range ln {
if err := ds[i].FromGRPCMessage(&dsV2[i]); err != nil {
return err
}
From 9c0007fb1d787b42d00e40ead6fb67f1c12128b4 Mon Sep 17 00:00:00 2001
From: Airat Arifullin
Date: Fri, 6 Sep 2024 11:39:23 +0300
Subject: [PATCH 24/42] [#115] apemanager: Fix type getters
* Add type instance check for nil to avoid panic by
accessing fields.
Signed-off-by: Airat Arifullin
---
acl/types.go | 8 +++++++
ape/types.go | 8 +++++++
apemanager/types.go | 52 +++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 68 insertions(+)
diff --git a/acl/types.go b/acl/types.go
index b42528b..960d8c9 100644
--- a/acl/types.go
+++ b/acl/types.go
@@ -330,10 +330,18 @@ func (bt *BearerTokenBody) SetEACL(v *Table) {
}
func (t *APEOverride) GetTarget() *ape.ChainTarget {
+ if t == nil {
+ return nil
+ }
+
return t.target
}
func (t *APEOverride) GetChains() []*ape.Chain {
+ if t == nil {
+ return nil
+ }
+
return t.chains
}
diff --git a/ape/types.go b/ape/types.go
index 935a5ea..467a441 100644
--- a/ape/types.go
+++ b/ape/types.go
@@ -53,6 +53,10 @@ func (c *Chain) SetKind(kind chainKind) {
}
func (c *Chain) GetKind() chainKind {
+ if c == nil {
+ return nil
+ }
+
return c.kind
}
@@ -67,5 +71,9 @@ func (c *ChainRaw) SetRaw(raw []byte) {
}
func (c *ChainRaw) GetRaw() []byte {
+ if c == nil {
+ return nil
+ }
+
return c.Raw
}
diff --git a/apemanager/types.go b/apemanager/types.go
index 21edf85..b6c3912 100644
--- a/apemanager/types.go
+++ b/apemanager/types.go
@@ -16,6 +16,10 @@ func (r *AddChainRequest) SetBody(body *AddChainRequestBody) {
}
func (r *AddChainRequest) GetBody() *AddChainRequestBody {
+ if r == nil {
+ return nil
+ }
+
return r.body
}
@@ -30,6 +34,10 @@ func (rb *AddChainRequestBody) SetTarget(target *ape.ChainTarget) {
}
func (rb *AddChainRequestBody) GetTarget() *ape.ChainTarget {
+ if rb == nil {
+ return nil
+ }
+
return rb.target
}
@@ -38,6 +46,10 @@ func (rb *AddChainRequestBody) SetChain(chain *ape.Chain) {
}
func (rb *AddChainRequestBody) GetChain() *ape.Chain {
+ if rb == nil {
+ return nil
+ }
+
return rb.chain
}
@@ -52,6 +64,10 @@ func (r *AddChainResponse) SetBody(body *AddChainResponseBody) {
}
func (r *AddChainResponse) GetBody() *AddChainResponseBody {
+ if r == nil {
+ return nil
+ }
+
return r.body
}
@@ -64,6 +80,10 @@ func (rb *AddChainResponseBody) SetChainID(chainID []byte) {
}
func (rb *AddChainResponseBody) GetChainID() []byte {
+ if rb == nil {
+ return nil
+ }
+
return rb.chainID
}
@@ -78,6 +98,10 @@ func (r *RemoveChainRequest) SetBody(body *RemoveChainRequestBody) {
}
func (r *RemoveChainRequest) GetBody() *RemoveChainRequestBody {
+ if r == nil {
+ return nil
+ }
+
return r.body
}
@@ -92,6 +116,10 @@ func (rb *RemoveChainRequestBody) SetTarget(target *ape.ChainTarget) {
}
func (rb *RemoveChainRequestBody) GetTarget() *ape.ChainTarget {
+ if rb == nil {
+ return nil
+ }
+
return rb.target
}
@@ -100,6 +128,10 @@ func (rb *RemoveChainRequestBody) SetChainID(chainID []byte) {
}
func (rb *RemoveChainRequestBody) GetChainID() []byte {
+ if rb == nil {
+ return nil
+ }
+
return rb.chainID
}
@@ -116,6 +148,10 @@ func (r *RemoveChainResponse) SetBody(body *RemoveChainResponseBody) {
}
func (r *RemoveChainResponse) GetBody() *RemoveChainResponseBody {
+ if r == nil {
+ return nil
+ }
+
return r.body
}
@@ -130,6 +166,10 @@ func (r *ListChainsRequest) SetBody(body *ListChainsRequestBody) {
}
func (r *ListChainsRequest) GetBody() *ListChainsRequestBody {
+ if r == nil {
+ return nil
+ }
+
return r.body
}
@@ -142,6 +182,10 @@ func (rb *ListChainsRequestBody) SetTarget(target *ape.ChainTarget) {
}
func (rb *ListChainsRequestBody) GetTarget() *ape.ChainTarget {
+ if rb == nil {
+ return nil
+ }
+
return rb.target
}
@@ -156,6 +200,10 @@ func (r *ListChainsResponse) SetBody(body *ListChainsResponseBody) {
}
func (r *ListChainsResponse) GetBody() *ListChainsResponseBody {
+ if r == nil {
+ return nil
+ }
+
return r.body
}
@@ -170,5 +218,9 @@ func (r *ListChainsResponseBody) SetChains(chains []*ape.Chain) {
}
func (r *ListChainsResponseBody) GetChains() []*ape.Chain {
+ if r == nil {
+ return nil
+ }
+
return r.chains
}
From 0484647aaecdc04485f12d80a8ff31123b89fe23 Mon Sep 17 00:00:00 2001
From: Airat Arifullin
Date: Fri, 6 Sep 2024 12:13:18 +0300
Subject: [PATCH 25/42] [#115] netmap: Fix type getters
* Add type instance check for nil to avoid panic by
accessing fields.
Signed-off-by: Airat Arifullin
---
netmap/types.go | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/netmap/types.go b/netmap/types.go
index 1fcdc6e..7821385 100644
--- a/netmap/types.go
+++ b/netmap/types.go
@@ -335,6 +335,10 @@ func (p *PlacementPolicy) SetContainerBackupFactor(backupFactor uint32) {
}
func (p *PlacementPolicy) GetReplicas() []Replica {
+ if p == nil {
+ return nil
+ }
+
return p.replicas
}
From c49c482ba6601d8c14334e48db70f462f549fe77 Mon Sep 17 00:00:00 2001
From: Vitaliy Potyarkin
Date: Wed, 11 Sep 2024 13:05:54 +0300
Subject: [PATCH 26/42] [#116] Update obsolete URLs
Signed-off-by: Vitaliy Potyarkin
---
CHANGELOG.md | 2 +-
CONTRIBUTING.md | 10 +++++-----
README.md | 14 ++++++--------
3 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 77bf5a2..5baefc3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -47,4 +47,4 @@ Initial public release.
This project is a fork of [NeoFS](https://github.com/nspcc-dev/neofs-api-go) from version v2.14.0.
To see CHANGELOG for older versions, refer to https://github.com/nspcc-dev/neofs-api-go/blob/master/CHANGELOG.md.
-[Unreleased]: https://github.com/TrueCloudLab/compare/v2.15.0...master
+[Unreleased]: https://git.frostfs.info/TrueCloudLab/frostfs-api-go/compare/v2.16.0...master
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index baa7725..dd360b5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,8 +3,8 @@
First, thank you for contributing! We love and encourage pull requests from
everyone. Please follow the guidelines:
-- Check the open [issues](https://github.com/TrueCloudLab/frostfs-api-go/issues) and
- [pull requests](https://github.com/TrueCloudLab/frostfs-api-go/pulls) for existing
+- Check the open [issues](https://git.frostfs.info/TrueCloudLab/frostfs-api-go/issues) and
+ [pull requests](https://git.frostfs.info/TrueCloudLab/frostfs-api-go/pulls) for existing
discussions.
- Open an issue first, to discuss a new feature or enhancement.
@@ -26,18 +26,18 @@ send a pull request. We encourage pull requests to discuss code changes. Here
are the steps in details:
### Set up your GitHub Repository
-Fork [FrostFS node upstream](https://github.com/TrueCloudLab/frostfs-api-go/fork) source
+Fork [FrostFS node upstream](https://git.frostfs.info/TrueCloudLab/frostfs-api-go/fork) source
repository to your own personal repository. Copy the URL of your fork (you will
need it for the `git clone` command below).
```sh
-$ git clone https://github.com/TrueCloudLab/frostfs-api-go
+$ git clone https://git.frostfs.info/TrueCloudLab/frostfs-api-go
```
### Set up git remote as ``upstream``
```sh
$ cd frostfs-api-go
-$ git remote add upstream https://github.com/TrueCloudLab/frostfs-api-go
+$ git remote add upstream https://git.frostfs.info/TrueCloudLab/frostfs-api-go
$ git fetch upstream
$ git merge upstream/master
...
diff --git a/README.md b/README.md
index 73f06e3..a6e7b6f 100644
--- a/README.md
+++ b/README.md
@@ -6,22 +6,20 @@
---
-
-[](https://codecov.io/gh/TrueCloudLab/frostfs-api-go)
-[](https://goreportcard.com/report/github.com/TrueCloudLab/frostfs-api-go)
-[](https://github.com/TrueCloudLab/frostfs-api-go)
-
+
+[](https://goreportcard.com/report/git.frostfs.info/TrueCloudLab/frostfs-api-go)
+[](https://git.frostfs.info/TrueCloudLab/frostfs-api-go)
# Overview
-Go implementation of recent [FrostFS API](https://github.com/TrueCloudLab/frostfs-api)
-versions. For a more high-level SDK see [FrostFS SDK](https://github.com/TrueCloudLab/frostfs-sdk-go).
+Go implementation of recent [FrostFS API](https://git.frostfs.info/TrueCloudLab/frostfs-api)
+versions. For a more high-level SDK see [FrostFS SDK](https://git.frostfs.info/TrueCloudLab/frostfs-sdk-go).
## Frostfs-Api compatibility
|frostfs-api-go version|supported frostfs-api versions|
|:------------------:|:--------------------------:|
-|v2.14.x|[v2.14.0](https://github.com/TrueCloudLab/frostfs-api/releases/tag/v2.14.0)|
+|v2.14.x|[v2.14.0](https://git.frostfs.info/TrueCloudLab/frostfs-api/releases/tag/v2.14.0)|
## Contributing
From c9782cf3ef716d676a1e849e28a9b497cab82502 Mon Sep 17 00:00:00 2001
From: Dmitrii Stepanov
Date: Fri, 13 Sep 2024 17:18:19 +0300
Subject: [PATCH 27/42] [#117] go.mod: Upgrade grpc to v1.66.2
Signed-off-by: Dmitrii Stepanov
---
go.mod | 14 +++++++-------
go.sum | 28 ++++++++++++++--------------
2 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/go.mod b/go.mod
index a241dd5..9672cb4 100644
--- a/go.mod
+++ b/go.mod
@@ -7,9 +7,9 @@ require (
github.com/VictoriaMetrics/easyproto v0.1.4
github.com/mailru/easyjson v0.7.7
github.com/stretchr/testify v1.8.3
- golang.org/x/sync v0.6.0
- google.golang.org/grpc v1.63.2
- google.golang.org/protobuf v1.33.0
+ golang.org/x/sync v0.7.0
+ google.golang.org/grpc v1.66.2
+ google.golang.org/protobuf v1.34.1
)
require (
@@ -19,10 +19,10 @@ require (
github.com/kr/pretty v0.1.0 // indirect
github.com/mr-tron/base58 v1.2.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- golang.org/x/net v0.21.0 // indirect
- golang.org/x/sys v0.17.0 // indirect
- golang.org/x/text v0.14.0 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de // indirect
+ golang.org/x/net v0.26.0 // indirect
+ golang.org/x/sys v0.21.0 // indirect
+ golang.org/x/text v0.16.0 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
diff --git a/go.sum b/go.sum
index 83963fe..4bae273 100644
--- a/go.sum
+++ b/go.sum
@@ -26,20 +26,20 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY=
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
-golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
-golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
-golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
-golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
-golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
-golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de h1:cZGRis4/ot9uVm639a+rHCUaG0JJHEsdyzSQTMX+suY=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY=
-google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
-google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
-google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
-google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
+golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
+golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
+golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
+golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
+golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
+golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0=
+google.golang.org/grpc v1.66.2 h1:3QdXkuq3Bkh7w+ywLdLvM56cmGvQHUMZpiCzt6Rqaoo=
+google.golang.org/grpc v1.66.2/go.mod h1:s3/l6xSSCURdVfAnL+TqCNMyTDAGN6+lZeVxnZR128Y=
+google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
+google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
From 13fa0da3741e6f79fe2b4bef2c6a0778a389699b Mon Sep 17 00:00:00 2001
From: Dmitrii Stepanov
Date: Fri, 13 Sep 2024 17:18:53 +0300
Subject: [PATCH 28/42] [#117] rpc: Allow to specify custom gRPC dialer
After grpc upgrade there is no DialContext call.
So connection is not actually established after created.
Signed-off-by: Dmitrii Stepanov
---
rpc/client/call_options.go | 13 ++++++++++++-
rpc/client/connect.go | 20 +++++++++++++-------
rpc/client/init.go | 2 +-
rpc/client/options.go | 1 -
4 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/rpc/client/call_options.go b/rpc/client/call_options.go
index 8134e46..4fe8791 100644
--- a/rpc/client/call_options.go
+++ b/rpc/client/call_options.go
@@ -2,13 +2,16 @@ package client
import (
"context"
+
+ "google.golang.org/grpc"
)
// CallOption is a messaging session option within Protobuf RPC.
type CallOption func(*callParameters)
type callParameters struct {
- ctx context.Context // nolint:containedctx
+ ctx context.Context // nolint:containedctx
+ dialer func(context.Context, grpc.ClientConnInterface) error
}
func defaultCallParameters() *callParameters {
@@ -27,3 +30,11 @@ func WithContext(ctx context.Context) CallOption {
prm.ctx = ctx
}
}
+
+// WithDialer returns option to specify grpc dialer. If passed, it will be
+// called after the connection is successfully created.
+func WithDialer(dialer func(context.Context, grpc.ClientConnInterface) error) CallOption {
+ return func(prm *callParameters) {
+ prm.dialer = dialer
+ }
+}
diff --git a/rpc/client/connect.go b/rpc/client/connect.go
index 29f4189..e22e0a6 100644
--- a/rpc/client/connect.go
+++ b/rpc/client/connect.go
@@ -12,7 +12,7 @@ import (
var errInvalidEndpoint = errors.New("invalid endpoint options")
-func (c *Client) openGRPCConn(ctx context.Context) error {
+func (c *Client) openGRPCConn(ctx context.Context, dialer func(ctx context.Context, cc grpcstd.ClientConnInterface) error) error {
if c.conn != nil {
return nil
}
@@ -21,15 +21,21 @@ func (c *Client) openGRPCConn(ctx context.Context) error {
return errInvalidEndpoint
}
- dialCtx, cancel := context.WithTimeout(ctx, c.dialTimeout)
var err error
- c.conn, err = grpcstd.DialContext(dialCtx, c.addr, c.grpcDialOpts...)
-
- cancel()
-
+ c.conn, err = grpcstd.NewClient(c.addr, c.grpcDialOpts...)
if err != nil {
- return fmt.Errorf("gRPC dial: %w", err)
+ return fmt.Errorf("gRPC new client: %w", err)
+ }
+
+ if dialer != nil {
+ ctx, cancel := context.WithTimeout(ctx, c.dialTimeout)
+ defer cancel()
+
+ if err := dialer(ctx, c.conn); err != nil {
+ _ = c.conn.Close()
+ return fmt.Errorf("gRPC dial: %w", err)
+ }
}
return nil
diff --git a/rpc/client/init.go b/rpc/client/init.go
index 60ccda9..be8d066 100644
--- a/rpc/client/init.go
+++ b/rpc/client/init.go
@@ -46,7 +46,7 @@ func (c *Client) Init(info common.CallMethodInfo, opts ...CallOption) (MessageRe
opt(prm)
}
- if err := c.openGRPCConn(prm.ctx); err != nil {
+ if err := c.openGRPCConn(prm.ctx, prm.dialer); err != nil {
return nil, err
}
diff --git a/rpc/client/options.go b/rpc/client/options.go
index 22358a3..5711cd4 100644
--- a/rpc/client/options.go
+++ b/rpc/client/options.go
@@ -37,7 +37,6 @@ func (c *cfg) initDefault() {
c.dialTimeout = defaultDialTimeout
c.rwTimeout = defaultRWTimeout
c.grpcDialOpts = []grpc.DialOption{
- grpc.WithBlock(),
grpc.WithTransportCredentials(insecure.NewCredentials()),
}
}
From c3dbbc5eab70dd429e191e081294c13d4b51fa3b Mon Sep 17 00:00:00 2001
From: Aleksey Savchuk
Date: Tue, 24 Sep 2024 14:34:21 +0300
Subject: [PATCH 29/42] [#118] status: Support INVALID_ARGUMENT status
Signed-off-by: Aleksey Savchuk
---
status/status.go | 2 ++
1 file changed, 2 insertions(+)
diff --git a/status/status.go b/status/status.go
index c1b5272..53d361e 100644
--- a/status/status.go
+++ b/status/status.go
@@ -63,6 +63,8 @@ const (
SignatureVerificationFail
// NodeUnderMaintenance is a local Code value for NODE_UNDER_MAINTENANCE status.
NodeUnderMaintenance
+ // InvalidArgument is a local Code value for INVALID_ARGUMENT status.
+ InvalidArgument
)
const (
From 287e98ad670b29d849576e9f3204a6b42e91ea0c Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 1 Oct 2024 09:38:57 +0300
Subject: [PATCH 30/42] [#120] proto/test: Add protojson compatibility test
It is failing, thus is skipped.
But implement it now to make it easier to see it failing.
Signed-off-by: Evgenii Stratonikov
---
util/proto/marshal_test.go | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/util/proto/marshal_test.go b/util/proto/marshal_test.go
index 1cd7005..98422fc 100644
--- a/util/proto/marshal_test.go
+++ b/util/proto/marshal_test.go
@@ -76,6 +76,13 @@ func TestStableMarshalSingle(t *testing.T) {
var actual test.Primitives
require.NoError(t, protojson.Unmarshal(r, &actual))
+ t.Run("protojson compatibility", func(t *testing.T) {
+ t.Skip()
+ data, err := protojson.Marshal(&actual)
+ require.NoError(t, err)
+ require.JSONEq(t, string(data), string(r))
+ })
+
var actualFrostfs generated.Primitives
require.NoError(t, actualFrostfs.UnmarshalJSON(r))
require.Equal(t, tc.input, &actualFrostfs)
From f812b1ae5bd602000da17feeb0f8d5afead4a531 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 1 Oct 2024 13:52:57 +0300
Subject: [PATCH 31/42] [#120] Regenerate proto files
Signed-off-by: Evgenii Stratonikov
---
accounting/grpc/service_grpc.pb.go | 4 +--
netmap/grpc/service_grpc.pb.go | 8 +++---
object/grpc/service_grpc.pb.go | 44 ++++++++++++++++++------------
3 files changed, 32 insertions(+), 24 deletions(-)
diff --git a/accounting/grpc/service_grpc.pb.go b/accounting/grpc/service_grpc.pb.go
index 63207fe..87eb56b 100644
--- a/accounting/grpc/service_grpc.pb.go
+++ b/accounting/grpc/service_grpc.pb.go
@@ -26,7 +26,7 @@ const (
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type AccountingServiceClient interface {
- // Returns the amount of funds in GAS token for the requested NeoFS account.
+ // Returns the amount of funds in GAS token for the requested FrostFS account.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
@@ -56,7 +56,7 @@ func (c *accountingServiceClient) Balance(ctx context.Context, in *BalanceReques
// All implementations should embed UnimplementedAccountingServiceServer
// for forward compatibility
type AccountingServiceServer interface {
- // Returns the amount of funds in GAS token for the requested NeoFS account.
+ // Returns the amount of funds in GAS token for the requested FrostFS account.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
diff --git a/netmap/grpc/service_grpc.pb.go b/netmap/grpc/service_grpc.pb.go
index 7881cd6..9ad7fef 100644
--- a/netmap/grpc/service_grpc.pb.go
+++ b/netmap/grpc/service_grpc.pb.go
@@ -40,14 +40,14 @@ type NetmapServiceClient interface {
// information about the server has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON).
LocalNodeInfo(ctx context.Context, in *LocalNodeInfoRequest, opts ...grpc.CallOption) (*LocalNodeInfoResponse, error)
- // Read recent information about the NeoFS network.
+ // Read recent information about the FrostFS network.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// information about the current network state has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON).
NetworkInfo(ctx context.Context, in *NetworkInfoRequest, opts ...grpc.CallOption) (*NetworkInfoResponse, error)
- // Returns network map snapshot of the current NeoFS epoch.
+ // Returns network map snapshot of the current FrostFS epoch.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
@@ -107,14 +107,14 @@ type NetmapServiceServer interface {
// information about the server has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON).
LocalNodeInfo(context.Context, *LocalNodeInfoRequest) (*LocalNodeInfoResponse, error)
- // Read recent information about the NeoFS network.
+ // Read recent information about the FrostFS network.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
// information about the current network state has been successfully read;
// - Common failures (SECTION_FAILURE_COMMON).
NetworkInfo(context.Context, *NetworkInfoRequest) (*NetworkInfoResponse, error)
- // Returns network map snapshot of the current NeoFS epoch.
+ // Returns network map snapshot of the current FrostFS epoch.
//
// Statuses:
// - **OK** (0, SECTION_SUCCESS):
diff --git a/object/grpc/service_grpc.pb.go b/object/grpc/service_grpc.pb.go
index 687df99..abc1c71 100644
--- a/object/grpc/service_grpc.pb.go
+++ b/object/grpc/service_grpc.pb.go
@@ -170,7 +170,7 @@ type ObjectServiceClient interface {
// provided session token has expired.
Head(ctx context.Context, in *HeadRequest, opts ...grpc.CallOption) (*HeadResponse, error)
// Search objects in container. Search query allows to match by Object
- // Header's filed values. Please see the corresponding NeoFS Technical
+ // Header's filed values. Please see the corresponding FrostFS Technical
// Specification section for more details.
//
// Extended headers can change `Search` behaviour:
@@ -301,16 +301,20 @@ type ObjectServiceClient interface {
// provided session token has expired.
PutSingle(ctx context.Context, in *PutSingleRequest, opts ...grpc.CallOption) (*PutSingleResponse, error)
// Patch the object. Request uses gRPC stream. First message must set
- // the address of the object that is going to get patched. If the object's attributes
- // are patched, then these attrubutes must be set only within the first stream message.
+ // the address of the object that is going to get patched. If the object's
+ // attributes are patched, then these attrubutes must be set only within the
+ // first stream message.
//
- // If the patch request is performed by NOT the object's owner but if the actor has the permission
- // to perform the patch, then `OwnerID` of the object is changed. In this case the object's owner
- // loses the object's ownership after the patch request is successfully done.
+ // If the patch request is performed by NOT the object's owner but if the
+ // actor has the permission to perform the patch, then `OwnerID` of the object
+ // is changed. In this case the object's owner loses the object's ownership
+ // after the patch request is successfully done.
//
- // As objects are content-addressable the patching causes new object ID generation for the patched object.
- // This object id is set witihn `PatchResponse`. But the object id may remain unchanged in such cases:
- // 1. The chunk of the applying patch contains the same value as the object's payload within the same range;
+ // As objects are content-addressable the patching causes new object ID
+ // generation for the patched object. This object id is set witihn
+ // `PatchResponse`. But the object id may remain unchanged in such cases:
+ // 1. The chunk of the applying patch contains the same value as the object's
+ // payload within the same range;
// 2. The patch that reverts the changes applied by preceding patch;
// 3. The application of the same patches for the object a few times.
//
@@ -694,7 +698,7 @@ type ObjectServiceServer interface {
// provided session token has expired.
Head(context.Context, *HeadRequest) (*HeadResponse, error)
// Search objects in container. Search query allows to match by Object
- // Header's filed values. Please see the corresponding NeoFS Technical
+ // Header's filed values. Please see the corresponding FrostFS Technical
// Specification section for more details.
//
// Extended headers can change `Search` behaviour:
@@ -825,16 +829,20 @@ type ObjectServiceServer interface {
// provided session token has expired.
PutSingle(context.Context, *PutSingleRequest) (*PutSingleResponse, error)
// Patch the object. Request uses gRPC stream. First message must set
- // the address of the object that is going to get patched. If the object's attributes
- // are patched, then these attrubutes must be set only within the first stream message.
+ // the address of the object that is going to get patched. If the object's
+ // attributes are patched, then these attrubutes must be set only within the
+ // first stream message.
//
- // If the patch request is performed by NOT the object's owner but if the actor has the permission
- // to perform the patch, then `OwnerID` of the object is changed. In this case the object's owner
- // loses the object's ownership after the patch request is successfully done.
+ // If the patch request is performed by NOT the object's owner but if the
+ // actor has the permission to perform the patch, then `OwnerID` of the object
+ // is changed. In this case the object's owner loses the object's ownership
+ // after the patch request is successfully done.
//
- // As objects are content-addressable the patching causes new object ID generation for the patched object.
- // This object id is set witihn `PatchResponse`. But the object id may remain unchanged in such cases:
- // 1. The chunk of the applying patch contains the same value as the object's payload within the same range;
+ // As objects are content-addressable the patching causes new object ID
+ // generation for the patched object. This object id is set witihn
+ // `PatchResponse`. But the object id may remain unchanged in such cases:
+ // 1. The chunk of the applying patch contains the same value as the object's
+ // payload within the same range;
// 2. The patch that reverts the changes applied by preceding patch;
// 3. The application of the same patches for the object a few times.
//
From 805da79319a4b84b5d2a8a0c6f2234ff37f55acd Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 1 Oct 2024 09:42:40 +0300
Subject: [PATCH 32/42] [#120] protogen: Marshal enum as string
Be compatible with protojson.
Signed-off-by: Evgenii Stratonikov
---
acl/grpc/types_frostfs.pb.go | 35 +++++++++++++++++++----
ape/grpc/types_frostfs.pb.go | 7 ++++-
netmap/grpc/types_frostfs.pb.go | 21 ++++++++++++--
object/grpc/service_frostfs.pb.go | 21 ++++++++++++--
object/grpc/types_frostfs.pb.go | 14 +++++++--
refs/grpc/types_frostfs.pb.go | 14 +++++++--
session/grpc/types_frostfs.pb.go | 14 +++++++--
util/proto/test/custom/test_frostfs.pb.go | 7 ++++-
util/protogen/internalgengo/json.go | 8 +++++-
9 files changed, 121 insertions(+), 20 deletions(-)
diff --git a/acl/grpc/types_frostfs.pb.go b/acl/grpc/types_frostfs.pb.go
index 2b116bd..b055167 100644
--- a/acl/grpc/types_frostfs.pb.go
+++ b/acl/grpc/types_frostfs.pb.go
@@ -356,12 +356,22 @@ func (x *EACLRecord_Filter) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"headerType\":"
out.RawString(prefix[1:])
- out.Int32(int32(x.HeaderType))
+ v := int32(x.HeaderType)
+ if vv, ok := HeaderType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"matchType\":"
out.RawString(prefix)
- out.Int32(int32(x.MatchType))
+ v := int32(x.MatchType)
+ if vv, ok := MatchType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"key\":"
@@ -570,7 +580,12 @@ func (x *EACLRecord_Target) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"role\":"
out.RawString(prefix[1:])
- out.Int32(int32(x.Role))
+ v := int32(x.Role)
+ if vv, ok := Role_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"keys\":"
@@ -812,12 +827,22 @@ func (x *EACLRecord) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"operation\":"
out.RawString(prefix[1:])
- out.Int32(int32(x.Operation))
+ v := int32(x.Operation)
+ if vv, ok := Operation_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"action\":"
out.RawString(prefix)
- out.Int32(int32(x.Action))
+ v := int32(x.Action)
+ if vv, ok := Action_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"filters\":"
diff --git a/ape/grpc/types_frostfs.pb.go b/ape/grpc/types_frostfs.pb.go
index 216415b..e19d9f6 100644
--- a/ape/grpc/types_frostfs.pb.go
+++ b/ape/grpc/types_frostfs.pb.go
@@ -159,7 +159,12 @@ func (x *ChainTarget) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"type\":"
out.RawString(prefix[1:])
- out.Int32(int32(x.Type))
+ v := int32(x.Type)
+ if vv, ok := TargetType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"name\":"
diff --git a/netmap/grpc/types_frostfs.pb.go b/netmap/grpc/types_frostfs.pb.go
index e7597ea..43af103 100644
--- a/netmap/grpc/types_frostfs.pb.go
+++ b/netmap/grpc/types_frostfs.pb.go
@@ -288,7 +288,12 @@ func (x *Filter) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"op\":"
out.RawString(prefix)
- out.Int32(int32(x.Op))
+ v := int32(x.Op)
+ if vv, ok := Operation_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"value\":"
@@ -572,7 +577,12 @@ func (x *Selector) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"clause\":"
out.RawString(prefix)
- out.Int32(int32(x.Clause))
+ v := int32(x.Clause)
+ if vv, ok := Clause_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"attribute\":"
@@ -1627,7 +1637,12 @@ func (x *NodeInfo) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"state\":"
out.RawString(prefix)
- out.Int32(int32(x.State))
+ v := int32(x.State)
+ if vv, ok := NodeInfo_State_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
out.RawByte('}')
}
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
index dea1b5b..188d032 100644
--- a/object/grpc/service_frostfs.pb.go
+++ b/object/grpc/service_frostfs.pb.go
@@ -4117,7 +4117,12 @@ func (x *SearchRequest_Body_Filter) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"matchType\":"
out.RawString(prefix[1:])
- out.Int32(int32(x.MatchType))
+ v := int32(x.MatchType)
+ if vv, ok := MatchType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"key\":"
@@ -6246,7 +6251,12 @@ func (x *GetRangeHashRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"type\":"
out.RawString(prefix)
- out.Int32(int32(x.Type))
+ v := int32(x.Type)
+ if vv, ok := grpc.ChecksumType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
out.RawByte('}')
}
@@ -6659,7 +6669,12 @@ func (x *GetRangeHashResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"type\":"
out.RawString(prefix[1:])
- out.Int32(int32(x.Type))
+ v := int32(x.Type)
+ if vv, ok := grpc.ChecksumType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"hashList\":"
diff --git a/object/grpc/types_frostfs.pb.go b/object/grpc/types_frostfs.pb.go
index 4233417..9fc2769 100644
--- a/object/grpc/types_frostfs.pb.go
+++ b/object/grpc/types_frostfs.pb.go
@@ -323,7 +323,12 @@ func (x *ShortHeader) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"objectType\":"
out.RawString(prefix)
- out.Int32(int32(x.ObjectType))
+ v := int32(x.ObjectType)
+ if vv, ok := ObjectType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"payloadLength\":"
@@ -1659,7 +1664,12 @@ func (x *Header) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"objectType\":"
out.RawString(prefix)
- out.Int32(int32(x.ObjectType))
+ v := int32(x.ObjectType)
+ if vv, ok := ObjectType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"homomorphicHash\":"
diff --git a/refs/grpc/types_frostfs.pb.go b/refs/grpc/types_frostfs.pb.go
index 35febe9..5f35eba 100644
--- a/refs/grpc/types_frostfs.pb.go
+++ b/refs/grpc/types_frostfs.pb.go
@@ -933,7 +933,12 @@ func (x *Signature) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"scheme\":"
out.RawString(prefix)
- out.Int32(int32(x.Scheme))
+ v := int32(x.Scheme)
+ if vv, ok := SignatureScheme_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
out.RawByte('}')
}
@@ -1270,7 +1275,12 @@ func (x *Checksum) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"type\":"
out.RawString(prefix[1:])
- out.Int32(int32(x.Type))
+ v := int32(x.Type)
+ if vv, ok := ChecksumType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"sum\":"
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
index 41ff5d9..c92ab28 100644
--- a/session/grpc/types_frostfs.pb.go
+++ b/session/grpc/types_frostfs.pb.go
@@ -362,7 +362,12 @@ func (x *ObjectSessionContext) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"verb\":"
out.RawString(prefix[1:])
- out.Int32(int32(x.Verb))
+ v := int32(x.Verb)
+ if vv, ok := ObjectSessionContext_Verb_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"target\":"
@@ -600,7 +605,12 @@ func (x *ContainerSessionContext) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"verb\":"
out.RawString(prefix[1:])
- out.Int32(int32(x.Verb))
+ v := int32(x.Verb)
+ if vv, ok := ContainerSessionContext_Verb_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
{
const prefix string = ",\"wildcard\":"
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index 97efa51..005d6d1 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -614,7 +614,12 @@ func (x *Primitives) MarshalEasyJSON(out *jwriter.Writer) {
{
const prefix string = ",\"fieldH\":"
out.RawString(prefix)
- out.Int32(int32(x.FieldH))
+ v := int32(x.FieldH)
+ if vv, ok := Primitives_SomeEnum_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
switch xx := x.FieldM.(type) {
case *Primitives_FieldMa:
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
index f7cd284..95a06d5 100644
--- a/util/protogen/internalgengo/json.go
+++ b/util/protogen/internalgengo/json.go
@@ -195,7 +195,13 @@ func emitJSONFieldWrite(g *protogen.GeneratedFile, f *protogen.Field, name strin
case protoreflect.BoolKind:
template = "out.Bool(%s)"
case protoreflect.EnumKind:
- template = "out.Int32(int32(%s))"
+ enumType := fieldType(g, f).String()
+ template = `v := int32(%s)
+ if vv, ok := ` + enumType + `_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }`
case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:
template = "out.Int32(%s)"
case protoreflect.Uint32Kind, protoreflect.Fixed32Kind:
From eeb754c327dec8e9007bb9154ab215f91240d5ec Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 1 Oct 2024 09:53:38 +0300
Subject: [PATCH 33/42] [#120] protogen: Omit empty fields from JSON output
Signed-off-by: Evgenii Stratonikov
---
accounting/grpc/service_frostfs.pb.go | 108 +-
accounting/grpc/types_frostfs.pb.go | 27 +-
acl/grpc/types_frostfs.pb.go | 433 ++++--
ape/grpc/types_frostfs.pb.go | 49 +-
apemanager/grpc/service_frostfs.pb.go | 344 ++++-
container/grpc/service_frostfs.pb.go | 478 +++++--
container/grpc/types_frostfs.pb.go | 130 +-
lock/grpc/types_frostfs.pb.go | 22 +-
netmap/grpc/service_frostfs.pb.go | 295 +++-
netmap/grpc/types_frostfs.pb.go | 603 +++++---
object/grpc/service_frostfs.pb.go | 1592 ++++++++++++++++-----
object/grpc/types_frostfs.pb.go | 749 +++++++---
refs/grpc/types_frostfs.pb.go | 206 ++-
session/grpc/service_frostfs.pb.go | 134 +-
session/grpc/types_frostfs.pb.go | 621 ++++++--
status/grpc/types_frostfs.pb.go | 83 +-
tombstone/grpc/types_frostfs.pb.go | 56 +-
util/proto/test/custom/test_frostfs.pb.go | 388 +++--
util/protogen/internalgengo/json.go | 31 +-
19 files changed, 4717 insertions(+), 1632 deletions(-)
diff --git a/accounting/grpc/service_frostfs.pb.go b/accounting/grpc/service_frostfs.pb.go
index b70fd27..4f11303 100644
--- a/accounting/grpc/service_frostfs.pb.go
+++ b/accounting/grpc/service_frostfs.pb.go
@@ -98,11 +98,19 @@ func (x *BalanceRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"ownerId\":"
- out.RawString(prefix[1:])
- x.OwnerId.MarshalEasyJSON(out)
+ if x.OwnerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerId\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -295,21 +303,43 @@ func (x *BalanceRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -452,11 +482,19 @@ func (x *BalanceResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"balance\":"
- out.RawString(prefix[1:])
- x.Balance.MarshalEasyJSON(out)
+ if x.Balance != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"balance\":"
+ out.RawString(prefix)
+ x.Balance.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -649,21 +687,43 @@ func (x *BalanceResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/accounting/grpc/types_frostfs.pb.go b/accounting/grpc/types_frostfs.pb.go
index 182705e..0ae770b 100644
--- a/accounting/grpc/types_frostfs.pb.go
+++ b/accounting/grpc/types_frostfs.pb.go
@@ -113,16 +113,31 @@ func (x *Decimal) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"value\":"
- out.RawString(prefix[1:])
- out.Int64(x.Value)
+ if x.Value != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.Int64(x.Value)
+ }
}
{
- const prefix string = ",\"precision\":"
- out.RawString(prefix)
- out.Uint32(x.Precision)
+ if x.Precision != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"precision\":"
+ out.RawString(prefix)
+ out.Uint32(x.Precision)
+ }
}
out.RawByte('}')
}
diff --git a/acl/grpc/types_frostfs.pb.go b/acl/grpc/types_frostfs.pb.go
index b055167..57e1682 100644
--- a/acl/grpc/types_frostfs.pb.go
+++ b/acl/grpc/types_frostfs.pb.go
@@ -352,36 +352,65 @@ func (x *EACLRecord_Filter) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"headerType\":"
- out.RawString(prefix[1:])
- v := int32(x.HeaderType)
- if vv, ok := HeaderType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.HeaderType != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"headerType\":"
+ out.RawString(prefix)
+ v := int32(x.HeaderType)
+ if vv, ok := HeaderType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
{
- const prefix string = ",\"matchType\":"
- out.RawString(prefix)
- v := int32(x.MatchType)
- if vv, ok := MatchType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.MatchType != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"matchType\":"
+ out.RawString(prefix)
+ v := int32(x.MatchType)
+ if vv, ok := MatchType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
{
- const prefix string = ",\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
+ if len(x.Key) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
}
{
- const prefix string = ",\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
}
out.RawByte('}')
}
@@ -576,28 +605,43 @@ func (x *EACLRecord_Target) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"role\":"
- out.RawString(prefix[1:])
- v := int32(x.Role)
- if vv, ok := Role_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.Role != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"role\":"
+ out.RawString(prefix)
+ v := int32(x.Role)
+ if vv, ok := Role_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
{
- const prefix string = ",\"keys\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Keys {
- if i != 0 {
+ if len(x.Keys) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Base64Bytes(x.Keys[i])
+ const prefix string = "\"keys\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Keys {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Base64Bytes(x.Keys[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -823,50 +867,79 @@ func (x *EACLRecord) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"operation\":"
- out.RawString(prefix[1:])
- v := int32(x.Operation)
- if vv, ok := Operation_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
- }
- {
- const prefix string = ",\"action\":"
- out.RawString(prefix)
- v := int32(x.Action)
- if vv, ok := Action_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
- }
- {
- const prefix string = ",\"filters\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Filters {
- if i != 0 {
+ if x.Operation != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"operation\":"
+ out.RawString(prefix)
+ v := int32(x.Operation)
+ if vv, ok := Operation_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
- x.Filters[i].MarshalEasyJSON(out)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"targets\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Targets {
- if i != 0 {
+ if x.Action != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"action\":"
+ out.RawString(prefix)
+ v := int32(x.Action)
+ if vv, ok := Action_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
- x.Targets[i].MarshalEasyJSON(out)
}
- out.RawByte(']')
+ }
+ {
+ if len(x.Filters) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ }
+ {
+ if len(x.Targets) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"targets\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Targets {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Targets[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
}
out.RawByte('}')
}
@@ -1109,28 +1182,50 @@ func (x *EACLTable) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"version\":"
- out.RawString(prefix[1:])
- x.Version.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"containerID\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"records\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Records {
- if i != 0 {
+ if x.Version != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Records[i].MarshalEasyJSON(out)
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.ContainerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if len(x.Records) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"records\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Records {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Records[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -1317,21 +1412,43 @@ func (x *BearerToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"exp\":"
- out.RawString(prefix[1:])
- out.Uint64(x.Exp)
+ if x.Exp != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"exp\":"
+ out.RawString(prefix)
+ out.Uint64(x.Exp)
+ }
}
{
- const prefix string = ",\"nbf\":"
- out.RawString(prefix)
- out.Uint64(x.Nbf)
+ if x.Nbf != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"nbf\":"
+ out.RawString(prefix)
+ out.Uint64(x.Nbf)
+ }
}
{
- const prefix string = ",\"iat\":"
- out.RawString(prefix)
- out.Uint64(x.Iat)
+ if x.Iat != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"iat\":"
+ out.RawString(prefix)
+ out.Uint64(x.Iat)
+ }
}
out.RawByte('}')
}
@@ -1497,23 +1614,38 @@ func (x *BearerToken_Body_APEOverride) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"target\":"
- out.RawString(prefix[1:])
- x.Target.MarshalEasyJSON(out)
+ if x.Target != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"chains\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Chains {
- if i != 0 {
+ if len(x.Chains) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Chains[i].MarshalEasyJSON(out)
+ const prefix string = "\"chains\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Chains {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Chains[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -1745,31 +1877,67 @@ func (x *BearerToken_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"eaclTable\":"
- out.RawString(prefix[1:])
- x.EaclTable.MarshalEasyJSON(out)
+ if x.EaclTable != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"eaclTable\":"
+ out.RawString(prefix)
+ x.EaclTable.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if x.OwnerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"lifetime\":"
- out.RawString(prefix)
- x.Lifetime.MarshalEasyJSON(out)
+ if x.Lifetime != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"lifetime\":"
+ out.RawString(prefix)
+ x.Lifetime.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"allowImpersonate\":"
- out.RawString(prefix)
- out.Bool(x.AllowImpersonate)
+ if x.AllowImpersonate {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"allowImpersonate\":"
+ out.RawString(prefix)
+ out.Bool(x.AllowImpersonate)
+ }
}
{
- const prefix string = ",\"apeOverride\":"
- out.RawString(prefix)
- x.ApeOverride.MarshalEasyJSON(out)
+ if x.ApeOverride != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"apeOverride\":"
+ out.RawString(prefix)
+ x.ApeOverride.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1948,16 +2116,31 @@ func (x *BearerToken) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if x.Signature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/ape/grpc/types_frostfs.pb.go b/ape/grpc/types_frostfs.pb.go
index e19d9f6..7967e13 100644
--- a/ape/grpc/types_frostfs.pb.go
+++ b/ape/grpc/types_frostfs.pb.go
@@ -155,21 +155,36 @@ func (x *ChainTarget) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"type\":"
- out.RawString(prefix[1:])
- v := int32(x.Type)
- if vv, ok := TargetType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.Type != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"type\":"
+ out.RawString(prefix)
+ v := int32(x.Type)
+ if vv, ok := TargetType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
{
- const prefix string = ",\"name\":"
- out.RawString(prefix)
- out.String(x.Name)
+ if len(x.Name) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"name\":"
+ out.RawString(prefix)
+ out.String(x.Name)
+ }
}
out.RawByte('}')
}
@@ -338,13 +353,21 @@ func (x *Chain) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
switch xx := x.Kind.(type) {
case *Chain_Raw:
{
- const prefix string = ",\"raw\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(xx.Raw)
+ if len(xx.Raw) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"raw\":"
+ out.RawString(prefix)
+ out.Base64Bytes(xx.Raw)
+ }
}
}
out.RawByte('}')
diff --git a/apemanager/grpc/service_frostfs.pb.go b/apemanager/grpc/service_frostfs.pb.go
index 99abeb2..2a30850 100644
--- a/apemanager/grpc/service_frostfs.pb.go
+++ b/apemanager/grpc/service_frostfs.pb.go
@@ -121,16 +121,31 @@ func (x *AddChainRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"target\":"
- out.RawString(prefix[1:])
- x.Target.MarshalEasyJSON(out)
+ if x.Target != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"chain\":"
- out.RawString(prefix)
- x.Chain.MarshalEasyJSON(out)
+ if x.Chain != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chain\":"
+ out.RawString(prefix)
+ x.Chain.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -330,21 +345,43 @@ func (x *AddChainRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -484,11 +521,19 @@ func (x *AddChainResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"chainId\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.ChainId)
+ if len(x.ChainId) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chainId\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.ChainId)
+ }
}
out.RawByte('}')
}
@@ -680,21 +725,43 @@ func (x *AddChainResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -857,16 +924,31 @@ func (x *RemoveChainRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"target\":"
- out.RawString(prefix[1:])
- x.Target.MarshalEasyJSON(out)
+ if x.Target != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"chainId\":"
- out.RawString(prefix)
- out.Base64Bytes(x.ChainId)
+ if len(x.ChainId) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chainId\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.ChainId)
+ }
}
out.RawByte('}')
}
@@ -1065,21 +1147,43 @@ func (x *RemoveChainRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1381,21 +1485,43 @@ func (x *RemoveChainResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1538,11 +1664,19 @@ func (x *ListChainsRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"target\":"
- out.RawString(prefix[1:])
- x.Target.MarshalEasyJSON(out)
+ if x.Target != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1735,21 +1869,43 @@ func (x *ListChainsRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1895,18 +2051,26 @@ func (x *ListChainsResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"chains\":"
- out.RawString(prefix[1:])
- out.RawByte('[')
- for i := range x.Chains {
- if i != 0 {
+ if len(x.Chains) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Chains[i].MarshalEasyJSON(out)
+ const prefix string = "\"chains\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Chains {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Chains[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -2106,21 +2270,43 @@ func (x *ListChainsResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/container/grpc/service_frostfs.pb.go b/container/grpc/service_frostfs.pb.go
index ffdc730..4ccb595 100644
--- a/container/grpc/service_frostfs.pb.go
+++ b/container/grpc/service_frostfs.pb.go
@@ -121,16 +121,31 @@ func (x *PutRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"container\":"
- out.RawString(prefix[1:])
- x.Container.MarshalEasyJSON(out)
+ if x.Container != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"container\":"
+ out.RawString(prefix)
+ x.Container.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if x.Signature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -330,21 +345,43 @@ func (x *PutRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -487,11 +524,19 @@ func (x *PutResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"containerId\":"
- out.RawString(prefix[1:])
- x.ContainerId.MarshalEasyJSON(out)
+ if x.ContainerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"containerId\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -684,21 +729,43 @@ func (x *PutResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -864,16 +931,31 @@ func (x *DeleteRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"containerId\":"
- out.RawString(prefix[1:])
- x.ContainerId.MarshalEasyJSON(out)
+ if x.ContainerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"containerId\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if x.Signature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1073,21 +1155,43 @@ func (x *DeleteRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1389,21 +1493,43 @@ func (x *DeleteResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1546,11 +1672,19 @@ func (x *GetRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"containerId\":"
- out.RawString(prefix[1:])
- x.ContainerId.MarshalEasyJSON(out)
+ if x.ContainerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"containerId\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1743,21 +1877,43 @@ func (x *GetRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1946,21 +2102,43 @@ func (x *GetResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"container\":"
- out.RawString(prefix[1:])
- x.Container.MarshalEasyJSON(out)
+ if x.Container != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"container\":"
+ out.RawString(prefix)
+ x.Container.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if x.Signature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"sessionToken\":"
- out.RawString(prefix)
- x.SessionToken.MarshalEasyJSON(out)
+ if x.SessionToken != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2167,21 +2345,43 @@ func (x *GetResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2324,11 +2524,19 @@ func (x *ListRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"ownerId\":"
- out.RawString(prefix[1:])
- x.OwnerId.MarshalEasyJSON(out)
+ if x.OwnerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerId\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2521,21 +2729,43 @@ func (x *ListRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2681,18 +2911,26 @@ func (x *ListResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"containerIds\":"
- out.RawString(prefix[1:])
- out.RawByte('[')
- for i := range x.ContainerIds {
- if i != 0 {
+ if len(x.ContainerIds) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.ContainerIds[i].MarshalEasyJSON(out)
+ const prefix string = "\"containerIds\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.ContainerIds {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.ContainerIds[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -2892,21 +3130,43 @@ func (x *ListResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/container/grpc/types_frostfs.pb.go b/container/grpc/types_frostfs.pb.go
index 3010eb0..9db07ed 100644
--- a/container/grpc/types_frostfs.pb.go
+++ b/container/grpc/types_frostfs.pb.go
@@ -115,16 +115,31 @@ func (x *Container_Attribute) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"key\":"
- out.RawString(prefix[1:])
- out.String(x.Key)
+ if len(x.Key) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
}
{
- const prefix string = ",\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
}
out.RawByte('}')
}
@@ -370,43 +385,86 @@ func (x *Container) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"version\":"
- out.RawString(prefix[1:])
- x.Version.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"nonce\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Nonce)
- }
- {
- const prefix string = ",\"basicACL\":"
- out.RawString(prefix)
- out.Uint32(x.BasicAcl)
- }
- {
- const prefix string = ",\"attributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Attributes {
- if i != 0 {
+ if x.Version != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Attributes[i].MarshalEasyJSON(out)
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"placementPolicy\":"
- out.RawString(prefix)
- x.PlacementPolicy.MarshalEasyJSON(out)
+ if x.OwnerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if len(x.Nonce) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"nonce\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Nonce)
+ }
+ }
+ {
+ if x.BasicAcl != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"basicACL\":"
+ out.RawString(prefix)
+ out.Uint32(x.BasicAcl)
+ }
+ }
+ {
+ if len(x.Attributes) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"attributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Attributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Attributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ }
+ {
+ if x.PlacementPolicy != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"placementPolicy\":"
+ out.RawString(prefix)
+ x.PlacementPolicy.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/lock/grpc/types_frostfs.pb.go b/lock/grpc/types_frostfs.pb.go
index 58be895..33f22c5 100644
--- a/lock/grpc/types_frostfs.pb.go
+++ b/lock/grpc/types_frostfs.pb.go
@@ -100,18 +100,26 @@ func (x *Lock) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"members\":"
- out.RawString(prefix[1:])
- out.RawByte('[')
- for i := range x.Members {
- if i != 0 {
+ if len(x.Members) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Members[i].MarshalEasyJSON(out)
+ const prefix string = "\"members\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Members {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Members[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/netmap/grpc/service_frostfs.pb.go b/netmap/grpc/service_frostfs.pb.go
index 3d62855..4d53031 100644
--- a/netmap/grpc/service_frostfs.pb.go
+++ b/netmap/grpc/service_frostfs.pb.go
@@ -257,21 +257,43 @@ func (x *LocalNodeInfoRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -437,16 +459,31 @@ func (x *LocalNodeInfoResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"version\":"
- out.RawString(prefix[1:])
- x.Version.MarshalEasyJSON(out)
+ if x.Version != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"nodeInfo\":"
- out.RawString(prefix)
- x.NodeInfo.MarshalEasyJSON(out)
+ if x.NodeInfo != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"nodeInfo\":"
+ out.RawString(prefix)
+ x.NodeInfo.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -646,21 +683,43 @@ func (x *LocalNodeInfoResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -962,21 +1021,43 @@ func (x *NetworkInfoRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1119,11 +1200,19 @@ func (x *NetworkInfoResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"networkInfo\":"
- out.RawString(prefix[1:])
- x.NetworkInfo.MarshalEasyJSON(out)
+ if x.NetworkInfo != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"networkInfo\":"
+ out.RawString(prefix)
+ x.NetworkInfo.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1316,21 +1405,43 @@ func (x *NetworkInfoResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1632,21 +1743,43 @@ func (x *NetmapSnapshotRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1789,11 +1922,19 @@ func (x *NetmapSnapshotResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"netmap\":"
- out.RawString(prefix[1:])
- x.Netmap.MarshalEasyJSON(out)
+ if x.Netmap != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"netmap\":"
+ out.RawString(prefix)
+ x.Netmap.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1986,21 +2127,43 @@ func (x *NetmapSnapshotResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/netmap/grpc/types_frostfs.pb.go b/netmap/grpc/types_frostfs.pb.go
index 43af103..d082910 100644
--- a/netmap/grpc/types_frostfs.pb.go
+++ b/netmap/grpc/types_frostfs.pb.go
@@ -274,43 +274,79 @@ func (x *Filter) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"name\":"
- out.RawString(prefix[1:])
- out.String(x.Name)
- }
- {
- const prefix string = ",\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
- }
- {
- const prefix string = ",\"op\":"
- out.RawString(prefix)
- v := int32(x.Op)
- if vv, ok := Operation_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
- }
- {
- const prefix string = ",\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
- }
- {
- const prefix string = ",\"filters\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Filters {
- if i != 0 {
+ if len(x.Name) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Filters[i].MarshalEasyJSON(out)
+ const prefix string = "\"name\":"
+ out.RawString(prefix)
+ out.String(x.Name)
+ }
+ }
+ {
+ if len(x.Key) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
+ }
+ {
+ if x.Op != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"op\":"
+ out.RawString(prefix)
+ v := int32(x.Op)
+ if vv, ok := Operation_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
+ }
+ }
+ {
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
+ }
+ {
+ if len(x.Filters) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -563,36 +599,72 @@ func (x *Selector) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"name\":"
- out.RawString(prefix[1:])
- out.String(x.Name)
- }
- {
- const prefix string = ",\"count\":"
- out.RawString(prefix)
- out.Uint32(x.Count)
- }
- {
- const prefix string = ",\"clause\":"
- out.RawString(prefix)
- v := int32(x.Clause)
- if vv, ok := Clause_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if len(x.Name) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"name\":"
+ out.RawString(prefix)
+ out.String(x.Name)
}
}
{
- const prefix string = ",\"attribute\":"
- out.RawString(prefix)
- out.String(x.Attribute)
+ if x.Count != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"count\":"
+ out.RawString(prefix)
+ out.Uint32(x.Count)
+ }
}
{
- const prefix string = ",\"filter\":"
- out.RawString(prefix)
- out.String(x.Filter)
+ if x.Clause != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"clause\":"
+ out.RawString(prefix)
+ v := int32(x.Clause)
+ if vv, ok := Clause_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
+ }
+ }
+ {
+ if len(x.Attribute) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"attribute\":"
+ out.RawString(prefix)
+ out.String(x.Attribute)
+ }
+ }
+ {
+ if len(x.Filter) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"filter\":"
+ out.RawString(prefix)
+ out.String(x.Filter)
+ }
}
out.RawByte('}')
}
@@ -817,26 +889,55 @@ func (x *Replica) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"count\":"
- out.RawString(prefix[1:])
- out.Uint32(x.Count)
+ if x.Count != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"count\":"
+ out.RawString(prefix)
+ out.Uint32(x.Count)
+ }
}
{
- const prefix string = ",\"selector\":"
- out.RawString(prefix)
- out.String(x.Selector)
+ if len(x.Selector) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"selector\":"
+ out.RawString(prefix)
+ out.String(x.Selector)
+ }
}
{
- const prefix string = ",\"ecDataCount\":"
- out.RawString(prefix)
- out.Uint32(x.EcDataCount)
+ if x.EcDataCount != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ecDataCount\":"
+ out.RawString(prefix)
+ out.Uint32(x.EcDataCount)
+ }
}
{
- const prefix string = ",\"ecParityCount\":"
- out.RawString(prefix)
- out.Uint32(x.EcParityCount)
+ if x.EcParityCount != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ecParityCount\":"
+ out.RawString(prefix)
+ out.Uint32(x.EcParityCount)
+ }
}
out.RawByte('}')
}
@@ -1077,52 +1178,88 @@ func (x *PlacementPolicy) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"replicas\":"
- out.RawString(prefix[1:])
- out.RawByte('[')
- for i := range x.Replicas {
- if i != 0 {
+ if len(x.Replicas) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Replicas[i].MarshalEasyJSON(out)
+ const prefix string = "\"replicas\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Replicas {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Replicas[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"containerBackupFactor\":"
- out.RawString(prefix)
- out.Uint32(x.ContainerBackupFactor)
- }
- {
- const prefix string = ",\"selectors\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Selectors {
- if i != 0 {
+ if x.ContainerBackupFactor != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Selectors[i].MarshalEasyJSON(out)
+ const prefix string = "\"containerBackupFactor\":"
+ out.RawString(prefix)
+ out.Uint32(x.ContainerBackupFactor)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"filters\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Filters {
- if i != 0 {
+ if len(x.Selectors) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Filters[i].MarshalEasyJSON(out)
+ const prefix string = "\"selectors\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Selectors {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Selectors[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"unique\":"
- out.RawString(prefix)
- out.Bool(x.Unique)
+ if len(x.Filters) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ }
+ {
+ if x.Unique {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"unique\":"
+ out.RawString(prefix)
+ out.Bool(x.Unique)
+ }
}
out.RawByte('}')
}
@@ -1373,28 +1510,50 @@ func (x *NodeInfo_Attribute) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"key\":"
- out.RawString(prefix[1:])
- out.String(x.Key)
- }
- {
- const prefix string = ",\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
- }
- {
- const prefix string = ",\"parents\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Parents {
- if i != 0 {
+ if len(x.Key) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.String(x.Parents[i])
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
+ }
+ {
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
+ }
+ {
+ if len(x.Parents) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"parents\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Parents {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.String(x.Parents[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -1604,44 +1763,73 @@ func (x *NodeInfo) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"publicKey\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.PublicKey)
- }
- {
- const prefix string = ",\"addresses\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Addresses {
- if i != 0 {
+ if len(x.PublicKey) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.String(x.Addresses[i])
+ const prefix string = "\"publicKey\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.PublicKey)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"attributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Attributes {
- if i != 0 {
+ if len(x.Addresses) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Attributes[i].MarshalEasyJSON(out)
+ const prefix string = "\"addresses\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Addresses {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.String(x.Addresses[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"state\":"
- out.RawString(prefix)
- v := int32(x.State)
- if vv, ok := NodeInfo_State_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if len(x.Attributes) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"attributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Attributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Attributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ }
+ {
+ if x.State != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"state\":"
+ out.RawString(prefix)
+ v := int32(x.State)
+ if vv, ok := NodeInfo_State_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
out.RawByte('}')
@@ -1842,23 +2030,38 @@ func (x *Netmap) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"epoch\":"
- out.RawString(prefix[1:])
- out.Uint64(x.Epoch)
+ if x.Epoch != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"epoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.Epoch)
+ }
}
{
- const prefix string = ",\"nodes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Nodes {
- if i != 0 {
+ if len(x.Nodes) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Nodes[i].MarshalEasyJSON(out)
+ const prefix string = "\"nodes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Nodes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Nodes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -2017,16 +2220,31 @@ func (x *NetworkConfig_Parameter) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"key\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.Key)
+ if len(x.Key) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Key)
+ }
}
{
- const prefix string = ",\"value\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Value)
+ }
}
out.RawByte('}')
}
@@ -2163,18 +2381,26 @@ func (x *NetworkConfig) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"parameters\":"
- out.RawString(prefix[1:])
- out.RawByte('[')
- for i := range x.Parameters {
- if i != 0 {
+ if len(x.Parameters) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Parameters[i].MarshalEasyJSON(out)
+ const prefix string = "\"parameters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Parameters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Parameters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -2370,26 +2596,55 @@ func (x *NetworkInfo) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"currentEpoch\":"
- out.RawString(prefix[1:])
- out.Uint64(x.CurrentEpoch)
+ if x.CurrentEpoch != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"currentEpoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.CurrentEpoch)
+ }
}
{
- const prefix string = ",\"magicNumber\":"
- out.RawString(prefix)
- out.Uint64(x.MagicNumber)
+ if x.MagicNumber != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"magicNumber\":"
+ out.RawString(prefix)
+ out.Uint64(x.MagicNumber)
+ }
}
{
- const prefix string = ",\"msPerBlock\":"
- out.RawString(prefix)
- out.Int64(x.MsPerBlock)
+ if x.MsPerBlock != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"msPerBlock\":"
+ out.RawString(prefix)
+ out.Int64(x.MsPerBlock)
+ }
}
{
- const prefix string = ",\"networkConfig\":"
- out.RawString(prefix)
- x.NetworkConfig.MarshalEasyJSON(out)
+ if x.NetworkConfig != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"networkConfig\":"
+ out.RawString(prefix)
+ x.NetworkConfig.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
index 188d032..2434bd3 100644
--- a/object/grpc/service_frostfs.pb.go
+++ b/object/grpc/service_frostfs.pb.go
@@ -119,16 +119,31 @@ func (x *GetRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"address\":"
- out.RawString(prefix[1:])
- x.Address.MarshalEasyJSON(out)
+ if x.Address != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"raw\":"
- out.RawString(prefix)
- out.Bool(x.Raw)
+ if x.Raw {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"raw\":"
+ out.RawString(prefix)
+ out.Bool(x.Raw)
+ }
}
out.RawByte('}')
}
@@ -327,21 +342,43 @@ func (x *GetRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -530,21 +567,43 @@ func (x *GetResponse_Body_Init) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"objectId\":"
- out.RawString(prefix[1:])
- x.ObjectId.MarshalEasyJSON(out)
+ if x.ObjectId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"objectId\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if x.Signature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"header\":"
- out.RawString(prefix)
- x.Header.MarshalEasyJSON(out)
+ if x.Header != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -787,31 +846,60 @@ func (x *GetResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
switch xx := x.ObjectPart.(type) {
case *GetResponse_Body_Init_:
{
- const prefix string = ",\"init\":"
- out.RawString(prefix[1:])
- xx.Init.MarshalEasyJSON(out)
+ if xx.Init != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"init\":"
+ out.RawString(prefix)
+ xx.Init.MarshalEasyJSON(out)
+ }
}
case *GetResponse_Body_Chunk:
{
- const prefix string = ",\"chunk\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(xx.Chunk)
+ if len(xx.Chunk) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chunk\":"
+ out.RawString(prefix)
+ out.Base64Bytes(xx.Chunk)
+ }
}
case *GetResponse_Body_SplitInfo:
{
- const prefix string = ",\"splitInfo\":"
- out.RawString(prefix[1:])
- xx.SplitInfo.MarshalEasyJSON(out)
+ if xx.SplitInfo != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"splitInfo\":"
+ out.RawString(prefix)
+ xx.SplitInfo.MarshalEasyJSON(out)
+ }
}
case *GetResponse_Body_EcInfo:
{
- const prefix string = ",\"ecInfo\":"
- out.RawString(prefix[1:])
- xx.EcInfo.MarshalEasyJSON(out)
+ if xx.EcInfo != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ecInfo\":"
+ out.RawString(prefix)
+ xx.EcInfo.MarshalEasyJSON(out)
+ }
}
}
out.RawByte('}')
@@ -1061,21 +1149,43 @@ func (x *GetResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1286,33 +1396,62 @@ func (x *PutRequest_Body_Init) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"objectId\":"
- out.RawString(prefix[1:])
- x.ObjectId.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"header\":"
- out.RawString(prefix)
- x.Header.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"copiesNumber\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.CopiesNumber {
- if i != 0 {
+ if x.ObjectId != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Uint32(x.CopiesNumber[i])
+ const prefix string = "\"objectId\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.Signature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.Header != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if len(x.CopiesNumber) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"copiesNumber\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.CopiesNumber {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint32(x.CopiesNumber[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -1514,19 +1653,34 @@ func (x *PutRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
switch xx := x.ObjectPart.(type) {
case *PutRequest_Body_Init_:
{
- const prefix string = ",\"init\":"
- out.RawString(prefix[1:])
- xx.Init.MarshalEasyJSON(out)
+ if xx.Init != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"init\":"
+ out.RawString(prefix)
+ xx.Init.MarshalEasyJSON(out)
+ }
}
case *PutRequest_Body_Chunk:
{
- const prefix string = ",\"chunk\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(xx.Chunk)
+ if len(xx.Chunk) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chunk\":"
+ out.RawString(prefix)
+ out.Base64Bytes(xx.Chunk)
+ }
}
}
out.RawByte('}')
@@ -1746,21 +1900,43 @@ func (x *PutRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1903,11 +2079,19 @@ func (x *PutResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"objectId\":"
- out.RawString(prefix[1:])
- x.ObjectId.MarshalEasyJSON(out)
+ if x.ObjectId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"objectId\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2100,21 +2284,43 @@ func (x *PutResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2257,11 +2463,19 @@ func (x *DeleteRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"address\":"
- out.RawString(prefix[1:])
- x.Address.MarshalEasyJSON(out)
+ if x.Address != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2454,21 +2668,43 @@ func (x *DeleteRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2611,11 +2847,19 @@ func (x *DeleteResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"tombstone\":"
- out.RawString(prefix[1:])
- x.Tombstone.MarshalEasyJSON(out)
+ if x.Tombstone != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"tombstone\":"
+ out.RawString(prefix)
+ x.Tombstone.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2808,21 +3052,43 @@ func (x *DeleteResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -3005,21 +3271,43 @@ func (x *HeadRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"address\":"
- out.RawString(prefix[1:])
- x.Address.MarshalEasyJSON(out)
+ if x.Address != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"mainOnly\":"
- out.RawString(prefix)
- out.Bool(x.MainOnly)
+ if x.MainOnly {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"mainOnly\":"
+ out.RawString(prefix)
+ out.Bool(x.MainOnly)
+ }
}
{
- const prefix string = ",\"raw\":"
- out.RawString(prefix)
- out.Bool(x.Raw)
+ if x.Raw {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"raw\":"
+ out.RawString(prefix)
+ out.Bool(x.Raw)
+ }
}
out.RawByte('}')
}
@@ -3224,21 +3512,43 @@ func (x *HeadRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -3404,16 +3714,31 @@ func (x *HeaderWithSignature) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"header\":"
- out.RawString(prefix[1:])
- x.Header.MarshalEasyJSON(out)
+ if x.Header != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if x.Signature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -3644,31 +3969,60 @@ func (x *HeadResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
switch xx := x.Head.(type) {
case *HeadResponse_Body_Header:
{
- const prefix string = ",\"header\":"
- out.RawString(prefix[1:])
- xx.Header.MarshalEasyJSON(out)
+ if xx.Header != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ xx.Header.MarshalEasyJSON(out)
+ }
}
case *HeadResponse_Body_ShortHeader:
{
- const prefix string = ",\"shortHeader\":"
- out.RawString(prefix[1:])
- xx.ShortHeader.MarshalEasyJSON(out)
+ if xx.ShortHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"shortHeader\":"
+ out.RawString(prefix)
+ xx.ShortHeader.MarshalEasyJSON(out)
+ }
}
case *HeadResponse_Body_SplitInfo:
{
- const prefix string = ",\"splitInfo\":"
- out.RawString(prefix[1:])
- xx.SplitInfo.MarshalEasyJSON(out)
+ if xx.SplitInfo != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"splitInfo\":"
+ out.RawString(prefix)
+ xx.SplitInfo.MarshalEasyJSON(out)
+ }
}
case *HeadResponse_Body_EcInfo:
{
- const prefix string = ",\"ecInfo\":"
- out.RawString(prefix[1:])
- xx.EcInfo.MarshalEasyJSON(out)
+ if xx.EcInfo != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ecInfo\":"
+ out.RawString(prefix)
+ xx.EcInfo.MarshalEasyJSON(out)
+ }
}
}
out.RawByte('}')
@@ -3919,21 +4273,43 @@ func (x *HeadResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -4113,26 +4489,48 @@ func (x *SearchRequest_Body_Filter) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"matchType\":"
- out.RawString(prefix[1:])
- v := int32(x.MatchType)
- if vv, ok := MatchType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.MatchType != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"matchType\":"
+ out.RawString(prefix)
+ v := int32(x.MatchType)
+ if vv, ok := MatchType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
{
- const prefix string = ",\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
+ if len(x.Key) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
}
{
- const prefix string = ",\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
}
out.RawByte('}')
}
@@ -4334,28 +4732,50 @@ func (x *SearchRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"containerId\":"
- out.RawString(prefix[1:])
- x.ContainerId.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"version\":"
- out.RawString(prefix)
- out.Uint32(x.Version)
- }
- {
- const prefix string = ",\"filters\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Filters {
- if i != 0 {
+ if x.ContainerId != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Filters[i].MarshalEasyJSON(out)
+ const prefix string = "\"containerId\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.Version != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ out.Uint32(x.Version)
+ }
+ }
+ {
+ if len(x.Filters) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -4568,21 +4988,43 @@ func (x *SearchRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -4728,18 +5170,26 @@ func (x *SearchResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"idList\":"
- out.RawString(prefix[1:])
- out.RawByte('[')
- for i := range x.IdList {
- if i != 0 {
+ if len(x.IdList) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.IdList[i].MarshalEasyJSON(out)
+ const prefix string = "\"idList\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.IdList {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.IdList[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -4939,21 +5389,43 @@ func (x *SearchResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -5113,16 +5585,31 @@ func (x *Range) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"offset\":"
- out.RawString(prefix[1:])
- out.Uint64(x.Offset)
+ if x.Offset != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"offset\":"
+ out.RawString(prefix)
+ out.Uint64(x.Offset)
+ }
}
{
- const prefix string = ",\"length\":"
- out.RawString(prefix)
- out.Uint64(x.Length)
+ if x.Length != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"length\":"
+ out.RawString(prefix)
+ out.Uint64(x.Length)
+ }
}
out.RawByte('}')
}
@@ -5299,21 +5786,43 @@ func (x *GetRangeRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"address\":"
- out.RawString(prefix[1:])
- x.Address.MarshalEasyJSON(out)
+ if x.Address != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"range\":"
- out.RawString(prefix)
- x.Range.MarshalEasyJSON(out)
+ if x.Range != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"range\":"
+ out.RawString(prefix)
+ x.Range.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"raw\":"
- out.RawString(prefix)
- out.Bool(x.Raw)
+ if x.Raw {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"raw\":"
+ out.RawString(prefix)
+ out.Bool(x.Raw)
+ }
}
out.RawByte('}')
}
@@ -5519,21 +6028,43 @@ func (x *GetRangeRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -5749,25 +6280,47 @@ func (x *GetRangeResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
switch xx := x.RangePart.(type) {
case *GetRangeResponse_Body_Chunk:
{
- const prefix string = ",\"chunk\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(xx.Chunk)
+ if len(xx.Chunk) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chunk\":"
+ out.RawString(prefix)
+ out.Base64Bytes(xx.Chunk)
+ }
}
case *GetRangeResponse_Body_SplitInfo:
{
- const prefix string = ",\"splitInfo\":"
- out.RawString(prefix[1:])
- xx.SplitInfo.MarshalEasyJSON(out)
+ if xx.SplitInfo != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"splitInfo\":"
+ out.RawString(prefix)
+ xx.SplitInfo.MarshalEasyJSON(out)
+ }
}
case *GetRangeResponse_Body_EcInfo:
{
- const prefix string = ",\"ecInfo\":"
- out.RawString(prefix[1:])
- xx.EcInfo.MarshalEasyJSON(out)
+ if xx.EcInfo != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ecInfo\":"
+ out.RawString(prefix)
+ xx.EcInfo.MarshalEasyJSON(out)
+ }
}
}
out.RawByte('}')
@@ -6002,21 +6555,43 @@ func (x *GetRangeResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -6225,37 +6800,66 @@ func (x *GetRangeHashRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"address\":"
- out.RawString(prefix[1:])
- x.Address.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"ranges\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Ranges {
- if i != 0 {
+ if x.Address != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Ranges[i].MarshalEasyJSON(out)
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"salt\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Salt)
+ if len(x.Ranges) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ranges\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Ranges {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Ranges[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
}
{
- const prefix string = ",\"type\":"
- out.RawString(prefix)
- v := int32(x.Type)
- if vv, ok := grpc.ChecksumType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if len(x.Salt) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"salt\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Salt)
+ }
+ }
+ {
+ if x.Type != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"type\":"
+ out.RawString(prefix)
+ v := int32(x.Type)
+ if vv, ok := grpc.ChecksumType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
out.RawByte('}')
@@ -6491,21 +7095,43 @@ func (x *GetRangeHashRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -6665,28 +7291,43 @@ func (x *GetRangeHashResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"type\":"
- out.RawString(prefix[1:])
- v := int32(x.Type)
- if vv, ok := grpc.ChecksumType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.Type != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"type\":"
+ out.RawString(prefix)
+ v := int32(x.Type)
+ if vv, ok := grpc.ChecksumType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
{
- const prefix string = ",\"hashList\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.HashList {
- if i != 0 {
+ if len(x.HashList) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Base64Bytes(x.HashList[i])
+ const prefix string = "\"hashList\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.HashList {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Base64Bytes(x.HashList[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -6907,21 +7548,43 @@ func (x *GetRangeHashResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -7086,23 +7749,38 @@ func (x *PutSingleRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"object\":"
- out.RawString(prefix[1:])
- x.Object.MarshalEasyJSON(out)
+ if x.Object != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"object\":"
+ out.RawString(prefix)
+ x.Object.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"copiesNumber\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.CopiesNumber {
- if i != 0 {
+ if len(x.CopiesNumber) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Uint32(x.CopiesNumber[i])
+ const prefix string = "\"copiesNumber\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.CopiesNumber {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint32(x.CopiesNumber[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -7308,21 +7986,43 @@ func (x *PutSingleRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -7624,21 +8324,43 @@ func (x *PutSingleResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -7801,16 +8523,31 @@ func (x *PatchRequest_Body_Patch) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"sourceRange\":"
- out.RawString(prefix[1:])
- x.SourceRange.MarshalEasyJSON(out)
+ if x.SourceRange != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sourceRange\":"
+ out.RawString(prefix)
+ x.SourceRange.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"chunk\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Chunk)
+ if len(x.Chunk) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chunk\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Chunk)
+ }
}
out.RawByte('}')
}
@@ -8014,33 +8751,62 @@ func (x *PatchRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"address\":"
- out.RawString(prefix[1:])
- x.Address.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"newAttributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.NewAttributes {
- if i != 0 {
+ if x.Address != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.NewAttributes[i].MarshalEasyJSON(out)
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"replaceAttributes\":"
- out.RawString(prefix)
- out.Bool(x.ReplaceAttributes)
+ if len(x.NewAttributes) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"newAttributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.NewAttributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.NewAttributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
}
{
- const prefix string = ",\"patch\":"
- out.RawString(prefix)
- x.Patch.MarshalEasyJSON(out)
+ if x.ReplaceAttributes {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"replaceAttributes\":"
+ out.RawString(prefix)
+ out.Bool(x.ReplaceAttributes)
+ }
+ }
+ {
+ if x.Patch != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"patch\":"
+ out.RawString(prefix)
+ x.Patch.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -8260,21 +9026,43 @@ func (x *PatchRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -8417,11 +9205,19 @@ func (x *PatchResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"objectId\":"
- out.RawString(prefix[1:])
- x.ObjectId.MarshalEasyJSON(out)
+ if x.ObjectId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"objectId\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -8614,21 +9410,43 @@ func (x *PatchResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/object/grpc/types_frostfs.pb.go b/object/grpc/types_frostfs.pb.go
index 9fc2769..5b1eb2c 100644
--- a/object/grpc/types_frostfs.pb.go
+++ b/object/grpc/types_frostfs.pb.go
@@ -304,46 +304,96 @@ func (x *ShortHeader) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"version\":"
- out.RawString(prefix[1:])
- x.Version.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"creationEpoch\":"
- out.RawString(prefix)
- out.Uint64(x.CreationEpoch)
- }
- {
- const prefix string = ",\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"objectType\":"
- out.RawString(prefix)
- v := int32(x.ObjectType)
- if vv, ok := ObjectType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.Version != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
}
{
- const prefix string = ",\"payloadLength\":"
- out.RawString(prefix)
- out.Uint64(x.PayloadLength)
+ if x.CreationEpoch != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"creationEpoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.CreationEpoch)
+ }
}
{
- const prefix string = ",\"payloadHash\":"
- out.RawString(prefix)
- x.PayloadHash.MarshalEasyJSON(out)
+ if x.OwnerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"homomorphicHash\":"
- out.RawString(prefix)
- x.HomomorphicHash.MarshalEasyJSON(out)
+ if x.ObjectType != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"objectType\":"
+ out.RawString(prefix)
+ v := int32(x.ObjectType)
+ if vv, ok := ObjectType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
+ }
+ }
+ {
+ if x.PayloadLength != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"payloadLength\":"
+ out.RawString(prefix)
+ out.Uint64(x.PayloadLength)
+ }
+ }
+ {
+ if x.PayloadHash != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"payloadHash\":"
+ out.RawString(prefix)
+ x.PayloadHash.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.HomomorphicHash != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"homomorphicHash\":"
+ out.RawString(prefix)
+ x.HomomorphicHash.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -544,16 +594,31 @@ func (x *Header_Attribute) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"key\":"
- out.RawString(prefix[1:])
- out.String(x.Key)
+ if len(x.Key) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
}
{
- const prefix string = ",\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
}
out.RawByte('}')
}
@@ -802,43 +867,86 @@ func (x *Header_Split) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"parent\":"
- out.RawString(prefix[1:])
- x.Parent.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"previous\":"
- out.RawString(prefix)
- x.Previous.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"parentSignature\":"
- out.RawString(prefix)
- x.ParentSignature.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"parentHeader\":"
- out.RawString(prefix)
- x.ParentHeader.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"children\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Children {
- if i != 0 {
+ if x.Parent != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Children[i].MarshalEasyJSON(out)
+ const prefix string = "\"parent\":"
+ out.RawString(prefix)
+ x.Parent.MarshalEasyJSON(out)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"splitID\":"
- out.RawString(prefix)
- out.Base64Bytes(x.SplitId)
+ if x.Previous != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"previous\":"
+ out.RawString(prefix)
+ x.Previous.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.ParentSignature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"parentSignature\":"
+ out.RawString(prefix)
+ x.ParentSignature.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.ParentHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"parentHeader\":"
+ out.RawString(prefix)
+ x.ParentHeader.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if len(x.Children) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"children\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Children {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Children[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ }
+ {
+ if len(x.SplitId) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"splitID\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.SplitId)
+ }
}
out.RawByte('}')
}
@@ -1157,53 +1265,110 @@ func (x *Header_EC) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"parent\":"
- out.RawString(prefix[1:])
- x.Parent.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"index\":"
- out.RawString(prefix)
- out.Uint32(x.Index)
- }
- {
- const prefix string = ",\"total\":"
- out.RawString(prefix)
- out.Uint32(x.Total)
- }
- {
- const prefix string = ",\"headerLength\":"
- out.RawString(prefix)
- out.Uint32(x.HeaderLength)
- }
- {
- const prefix string = ",\"header\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Header)
- }
- {
- const prefix string = ",\"parentSplitID\":"
- out.RawString(prefix)
- out.Base64Bytes(x.ParentSplitId)
- }
- {
- const prefix string = ",\"parentSplitParentID\":"
- out.RawString(prefix)
- x.ParentSplitParentId.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"parentAttributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.ParentAttributes {
- if i != 0 {
+ if x.Parent != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.ParentAttributes[i].MarshalEasyJSON(out)
+ const prefix string = "\"parent\":"
+ out.RawString(prefix)
+ x.Parent.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.Index != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"index\":"
+ out.RawString(prefix)
+ out.Uint32(x.Index)
+ }
+ }
+ {
+ if x.Total != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"total\":"
+ out.RawString(prefix)
+ out.Uint32(x.Total)
+ }
+ }
+ {
+ if x.HeaderLength != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"headerLength\":"
+ out.RawString(prefix)
+ out.Uint32(x.HeaderLength)
+ }
+ }
+ {
+ if len(x.Header) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Header)
+ }
+ }
+ {
+ if len(x.ParentSplitId) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"parentSplitID\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.ParentSplitId)
+ }
+ }
+ {
+ if x.ParentSplitParentId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"parentSplitParentID\":"
+ out.RawString(prefix)
+ x.ParentSplitParentId.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if len(x.ParentAttributes) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"parentAttributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.ParentAttributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.ParentAttributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -1630,78 +1795,163 @@ func (x *Header) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"version\":"
- out.RawString(prefix[1:])
- x.Version.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"containerID\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"creationEpoch\":"
- out.RawString(prefix)
- out.Uint64(x.CreationEpoch)
- }
- {
- const prefix string = ",\"payloadLength\":"
- out.RawString(prefix)
- out.Uint64(x.PayloadLength)
- }
- {
- const prefix string = ",\"payloadHash\":"
- out.RawString(prefix)
- x.PayloadHash.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"objectType\":"
- out.RawString(prefix)
- v := int32(x.ObjectType)
- if vv, ok := ObjectType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
- }
- {
- const prefix string = ",\"homomorphicHash\":"
- out.RawString(prefix)
- x.HomomorphicHash.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"sessionToken\":"
- out.RawString(prefix)
- x.SessionToken.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"attributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Attributes {
- if i != 0 {
+ if x.Version != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Attributes[i].MarshalEasyJSON(out)
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"split\":"
- out.RawString(prefix)
- x.Split.MarshalEasyJSON(out)
+ if x.ContainerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"ec\":"
- out.RawString(prefix)
- x.Ec.MarshalEasyJSON(out)
+ if x.OwnerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.CreationEpoch != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"creationEpoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.CreationEpoch)
+ }
+ }
+ {
+ if x.PayloadLength != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"payloadLength\":"
+ out.RawString(prefix)
+ out.Uint64(x.PayloadLength)
+ }
+ }
+ {
+ if x.PayloadHash != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"payloadHash\":"
+ out.RawString(prefix)
+ x.PayloadHash.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.ObjectType != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"objectType\":"
+ out.RawString(prefix)
+ v := int32(x.ObjectType)
+ if vv, ok := ObjectType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
+ }
+ }
+ {
+ if x.HomomorphicHash != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"homomorphicHash\":"
+ out.RawString(prefix)
+ x.HomomorphicHash.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.SessionToken != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if len(x.Attributes) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"attributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Attributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Attributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ }
+ {
+ if x.Split != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"split\":"
+ out.RawString(prefix)
+ x.Split.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.Ec != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ec\":"
+ out.RawString(prefix)
+ x.Ec.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1993,26 +2243,55 @@ func (x *Object) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"objectID\":"
- out.RawString(prefix[1:])
- x.ObjectId.MarshalEasyJSON(out)
+ if x.ObjectId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"objectID\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if x.Signature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"header\":"
- out.RawString(prefix)
- x.Header.MarshalEasyJSON(out)
+ if x.Header != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"payload\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Payload)
+ if len(x.Payload) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"payload\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Payload)
+ }
}
out.RawByte('}')
}
@@ -2204,21 +2483,43 @@ func (x *SplitInfo) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"splitId\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.SplitId)
+ if len(x.SplitId) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"splitId\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.SplitId)
+ }
}
{
- const prefix string = ",\"lastPart\":"
- out.RawString(prefix)
- x.LastPart.MarshalEasyJSON(out)
+ if x.LastPart != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"lastPart\":"
+ out.RawString(prefix)
+ x.LastPart.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"link\":"
- out.RawString(prefix)
- x.Link.MarshalEasyJSON(out)
+ if x.Link != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"link\":"
+ out.RawString(prefix)
+ x.Link.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2400,21 +2701,43 @@ func (x *ECInfo_Chunk) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"id\":"
- out.RawString(prefix[1:])
- x.Id.MarshalEasyJSON(out)
+ if x.Id != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"id\":"
+ out.RawString(prefix)
+ x.Id.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"index\":"
- out.RawString(prefix)
- out.Uint32(x.Index)
+ if x.Index != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"index\":"
+ out.RawString(prefix)
+ out.Uint32(x.Index)
+ }
}
{
- const prefix string = ",\"total\":"
- out.RawString(prefix)
- out.Uint32(x.Total)
+ if x.Total != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"total\":"
+ out.RawString(prefix)
+ out.Uint32(x.Total)
+ }
}
out.RawByte('}')
}
@@ -2558,18 +2881,26 @@ func (x *ECInfo) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"chunks\":"
- out.RawString(prefix[1:])
- out.RawByte('[')
- for i := range x.Chunks {
- if i != 0 {
+ if len(x.Chunks) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Chunks[i].MarshalEasyJSON(out)
+ const prefix string = "\"chunks\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Chunks {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Chunks[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/refs/grpc/types_frostfs.pb.go b/refs/grpc/types_frostfs.pb.go
index 5f35eba..869620f 100644
--- a/refs/grpc/types_frostfs.pb.go
+++ b/refs/grpc/types_frostfs.pb.go
@@ -190,16 +190,31 @@ func (x *Address) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"containerID\":"
- out.RawString(prefix[1:])
- x.ContainerId.MarshalEasyJSON(out)
+ if x.ContainerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"objectID\":"
- out.RawString(prefix)
- x.ObjectId.MarshalEasyJSON(out)
+ if x.ObjectId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"objectID\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -332,11 +347,19 @@ func (x *ObjectID) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"value\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Value)
+ }
}
out.RawByte('}')
}
@@ -461,11 +484,19 @@ func (x *ContainerID) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"value\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Value)
+ }
}
out.RawByte('}')
}
@@ -590,11 +621,19 @@ func (x *OwnerID) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"value\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Value)
+ }
}
out.RawByte('}')
}
@@ -739,16 +778,31 @@ func (x *Version) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"major\":"
- out.RawString(prefix[1:])
- out.Uint32(x.Major)
+ if x.Major != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"major\":"
+ out.RawString(prefix)
+ out.Uint32(x.Major)
+ }
}
{
- const prefix string = ",\"minor\":"
- out.RawString(prefix)
- out.Uint32(x.Minor)
+ if x.Minor != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"minor\":"
+ out.RawString(prefix)
+ out.Uint32(x.Minor)
+ }
}
out.RawByte('}')
}
@@ -919,25 +973,47 @@ func (x *Signature) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"key\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.Key)
+ if len(x.Key) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Key)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Sign)
+ if len(x.Sign) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Sign)
+ }
}
{
- const prefix string = ",\"scheme\":"
- out.RawString(prefix)
- v := int32(x.Scheme)
- if vv, ok := SignatureScheme_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.Scheme != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"scheme\":"
+ out.RawString(prefix)
+ v := int32(x.Scheme)
+ if vv, ok := SignatureScheme_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
out.RawByte('}')
@@ -1111,16 +1187,31 @@ func (x *SignatureRFC6979) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"key\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.Key)
+ if len(x.Key) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Key)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Sign)
+ if len(x.Sign) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Sign)
+ }
}
out.RawByte('}')
}
@@ -1271,21 +1362,36 @@ func (x *Checksum) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"type\":"
- out.RawString(prefix[1:])
- v := int32(x.Type)
- if vv, ok := ChecksumType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.Type != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"type\":"
+ out.RawString(prefix)
+ v := int32(x.Type)
+ if vv, ok := ChecksumType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
{
- const prefix string = ",\"sum\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Sum)
+ if len(x.Sum) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sum\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Sum)
+ }
}
out.RawByte('}')
}
diff --git a/session/grpc/service_frostfs.pb.go b/session/grpc/service_frostfs.pb.go
index aa42ee8..a3f0111 100644
--- a/session/grpc/service_frostfs.pb.go
+++ b/session/grpc/service_frostfs.pb.go
@@ -117,16 +117,31 @@ func (x *CreateRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"ownerId\":"
- out.RawString(prefix[1:])
- x.OwnerId.MarshalEasyJSON(out)
+ if x.OwnerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerId\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"expiration\":"
- out.RawString(prefix)
- out.Uint64(x.Expiration)
+ if x.Expiration != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"expiration\":"
+ out.RawString(prefix)
+ out.Uint64(x.Expiration)
+ }
}
out.RawByte('}')
}
@@ -325,21 +340,43 @@ func (x *CreateRequest) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -499,16 +536,31 @@ func (x *CreateResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"id\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.Id)
+ if len(x.Id) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"id\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Id)
+ }
}
{
- const prefix string = ",\"sessionKey\":"
- out.RawString(prefix)
- out.Base64Bytes(x.SessionKey)
+ if len(x.SessionKey) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sessionKey\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.SessionKey)
+ }
}
out.RawByte('}')
}
@@ -706,21 +758,43 @@ func (x *CreateResponse) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if x.MetaHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if x.VerifyHeader != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
index c92ab28..58807fe 100644
--- a/session/grpc/types_frostfs.pb.go
+++ b/session/grpc/types_frostfs.pb.go
@@ -179,23 +179,38 @@ func (x *ObjectSessionContext_Target) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"container\":"
- out.RawString(prefix[1:])
- x.Container.MarshalEasyJSON(out)
+ if x.Container != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"container\":"
+ out.RawString(prefix)
+ x.Container.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"objects\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Objects {
- if i != 0 {
+ if len(x.Objects) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Objects[i].MarshalEasyJSON(out)
+ const prefix string = "\"objects\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Objects {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Objects[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
@@ -358,21 +373,36 @@ func (x *ObjectSessionContext) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"verb\":"
- out.RawString(prefix[1:])
- v := int32(x.Verb)
- if vv, ok := ObjectSessionContext_Verb_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.Verb != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verb\":"
+ out.RawString(prefix)
+ v := int32(x.Verb)
+ if vv, ok := ObjectSessionContext_Verb_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
{
- const prefix string = ",\"target\":"
- out.RawString(prefix)
- x.Target.MarshalEasyJSON(out)
+ if x.Target != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -601,26 +631,48 @@ func (x *ContainerSessionContext) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"verb\":"
- out.RawString(prefix[1:])
- v := int32(x.Verb)
- if vv, ok := ContainerSessionContext_Verb_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.Verb != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verb\":"
+ out.RawString(prefix)
+ v := int32(x.Verb)
+ if vv, ok := ContainerSessionContext_Verb_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
{
- const prefix string = ",\"wildcard\":"
- out.RawString(prefix)
- out.Bool(x.Wildcard)
+ if x.Wildcard {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"wildcard\":"
+ out.RawString(prefix)
+ out.Bool(x.Wildcard)
+ }
}
{
- const prefix string = ",\"containerID\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
+ if x.ContainerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -814,21 +866,43 @@ func (x *SessionToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"exp\":"
- out.RawString(prefix[1:])
- out.Uint64(x.Exp)
+ if x.Exp != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"exp\":"
+ out.RawString(prefix)
+ out.Uint64(x.Exp)
+ }
}
{
- const prefix string = ",\"nbf\":"
- out.RawString(prefix)
- out.Uint64(x.Nbf)
+ if x.Nbf != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"nbf\":"
+ out.RawString(prefix)
+ out.Uint64(x.Nbf)
+ }
}
{
- const prefix string = ",\"iat\":"
- out.RawString(prefix)
- out.Uint64(x.Iat)
+ if x.Iat != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"iat\":"
+ out.RawString(prefix)
+ out.Uint64(x.Iat)
+ }
}
out.RawByte('}')
}
@@ -1095,39 +1169,82 @@ func (x *SessionToken_Body) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"id\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.Id)
+ if len(x.Id) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"id\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Id)
+ }
}
{
- const prefix string = ",\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if x.OwnerId != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"lifetime\":"
- out.RawString(prefix)
- x.Lifetime.MarshalEasyJSON(out)
+ if x.Lifetime != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"lifetime\":"
+ out.RawString(prefix)
+ x.Lifetime.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"sessionKey\":"
- out.RawString(prefix)
- out.Base64Bytes(x.SessionKey)
+ if len(x.SessionKey) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sessionKey\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.SessionKey)
+ }
}
switch xx := x.Context.(type) {
case *SessionToken_Body_Object:
{
- const prefix string = ",\"object\":"
- out.RawString(prefix)
- xx.Object.MarshalEasyJSON(out)
+ if xx.Object != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"object\":"
+ out.RawString(prefix)
+ xx.Object.MarshalEasyJSON(out)
+ }
}
case *SessionToken_Body_Container:
{
- const prefix string = ",\"container\":"
- out.RawString(prefix)
- xx.Container.MarshalEasyJSON(out)
+ if xx.Container != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"container\":"
+ out.RawString(prefix)
+ xx.Container.MarshalEasyJSON(out)
+ }
}
}
out.RawByte('}')
@@ -1333,16 +1450,31 @@ func (x *SessionToken) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"body\":"
- out.RawString(prefix[1:])
- x.Body.MarshalEasyJSON(out)
+ if x.Body != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if x.Signature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -1495,16 +1627,31 @@ func (x *XHeader) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"key\":"
- out.RawString(prefix[1:])
- out.String(x.Key)
+ if len(x.Key) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
}
{
- const prefix string = ",\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
+ }
}
out.RawByte('}')
}
@@ -1793,53 +1940,110 @@ func (x *RequestMetaHeader) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"version\":"
- out.RawString(prefix[1:])
- x.Version.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"epoch\":"
- out.RawString(prefix)
- out.Uint64(x.Epoch)
- }
- {
- const prefix string = ",\"ttl\":"
- out.RawString(prefix)
- out.Uint32(x.Ttl)
- }
- {
- const prefix string = ",\"xHeaders\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.XHeaders {
- if i != 0 {
+ if x.Version != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.XHeaders[i].MarshalEasyJSON(out)
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"sessionToken\":"
- out.RawString(prefix)
- x.SessionToken.MarshalEasyJSON(out)
+ if x.Epoch != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"epoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.Epoch)
+ }
}
{
- const prefix string = ",\"bearerToken\":"
- out.RawString(prefix)
- x.BearerToken.MarshalEasyJSON(out)
+ if x.Ttl != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ttl\":"
+ out.RawString(prefix)
+ out.Uint32(x.Ttl)
+ }
}
{
- const prefix string = ",\"origin\":"
- out.RawString(prefix)
- x.Origin.MarshalEasyJSON(out)
+ if len(x.XHeaders) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"xHeaders\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.XHeaders {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.XHeaders[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
}
{
- const prefix string = ",\"magicNumber\":"
- out.RawString(prefix)
- out.Uint64(x.MagicNumber)
+ if x.SessionToken != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.BearerToken != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"bearerToken\":"
+ out.RawString(prefix)
+ x.BearerToken.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.Origin != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.MagicNumber != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"magicNumber\":"
+ out.RawString(prefix)
+ out.Uint64(x.MagicNumber)
+ }
}
out.RawByte('}')
}
@@ -2133,43 +2337,86 @@ func (x *ResponseMetaHeader) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"version\":"
- out.RawString(prefix[1:])
- x.Version.MarshalEasyJSON(out)
- }
- {
- const prefix string = ",\"epoch\":"
- out.RawString(prefix)
- out.Uint64(x.Epoch)
- }
- {
- const prefix string = ",\"ttl\":"
- out.RawString(prefix)
- out.Uint32(x.Ttl)
- }
- {
- const prefix string = ",\"xHeaders\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.XHeaders {
- if i != 0 {
+ if x.Version != nil {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.XHeaders[i].MarshalEasyJSON(out)
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
- out.RawByte(']')
}
{
- const prefix string = ",\"origin\":"
- out.RawString(prefix)
- x.Origin.MarshalEasyJSON(out)
+ if x.Epoch != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"epoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.Epoch)
+ }
}
{
- const prefix string = ",\"status\":"
- out.RawString(prefix)
- x.Status.MarshalEasyJSON(out)
+ if x.Ttl != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ttl\":"
+ out.RawString(prefix)
+ out.Uint32(x.Ttl)
+ }
+ }
+ {
+ if len(x.XHeaders) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"xHeaders\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.XHeaders {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.XHeaders[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
+ }
+ }
+ {
+ if x.Origin != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
+ }
+ }
+ {
+ if x.Status != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"status\":"
+ out.RawString(prefix)
+ x.Status.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2407,26 +2654,55 @@ func (x *RequestVerificationHeader) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"bodySignature\":"
- out.RawString(prefix[1:])
- x.BodySignature.MarshalEasyJSON(out)
+ if x.BodySignature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"bodySignature\":"
+ out.RawString(prefix)
+ x.BodySignature.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaSignature\":"
- out.RawString(prefix)
- x.MetaSignature.MarshalEasyJSON(out)
+ if x.MetaSignature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaSignature\":"
+ out.RawString(prefix)
+ x.MetaSignature.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"originSignature\":"
- out.RawString(prefix)
- x.OriginSignature.MarshalEasyJSON(out)
+ if x.OriginSignature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"originSignature\":"
+ out.RawString(prefix)
+ x.OriginSignature.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"origin\":"
- out.RawString(prefix)
- x.Origin.MarshalEasyJSON(out)
+ if x.Origin != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
@@ -2645,26 +2921,55 @@ func (x *ResponseVerificationHeader) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"bodySignature\":"
- out.RawString(prefix[1:])
- x.BodySignature.MarshalEasyJSON(out)
+ if x.BodySignature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"bodySignature\":"
+ out.RawString(prefix)
+ x.BodySignature.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"metaSignature\":"
- out.RawString(prefix)
- x.MetaSignature.MarshalEasyJSON(out)
+ if x.MetaSignature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"metaSignature\":"
+ out.RawString(prefix)
+ x.MetaSignature.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"originSignature\":"
- out.RawString(prefix)
- x.OriginSignature.MarshalEasyJSON(out)
+ if x.OriginSignature != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"originSignature\":"
+ out.RawString(prefix)
+ x.OriginSignature.MarshalEasyJSON(out)
+ }
}
{
- const prefix string = ",\"origin\":"
- out.RawString(prefix)
- x.Origin.MarshalEasyJSON(out)
+ if x.Origin != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
+ }
}
out.RawByte('}')
}
diff --git a/status/grpc/types_frostfs.pb.go b/status/grpc/types_frostfs.pb.go
index 29dfebe..7581dbe 100644
--- a/status/grpc/types_frostfs.pb.go
+++ b/status/grpc/types_frostfs.pb.go
@@ -368,16 +368,31 @@ func (x *Status_Detail) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"id\":"
- out.RawString(prefix[1:])
- out.Uint32(x.Id)
+ if x.Id != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"id\":"
+ out.RawString(prefix)
+ out.Uint32(x.Id)
+ }
}
{
- const prefix string = ",\"value\":"
- out.RawString(prefix)
- out.Base64Bytes(x.Value)
+ if len(x.Value) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.Value)
+ }
}
out.RawByte('}')
}
@@ -554,28 +569,50 @@ func (x *Status) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"code\":"
- out.RawString(prefix[1:])
- out.Uint32(x.Code)
- }
- {
- const prefix string = ",\"message\":"
- out.RawString(prefix)
- out.String(x.Message)
- }
- {
- const prefix string = ",\"details\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Details {
- if i != 0 {
+ if x.Code != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Details[i].MarshalEasyJSON(out)
+ const prefix string = "\"code\":"
+ out.RawString(prefix)
+ out.Uint32(x.Code)
+ }
+ }
+ {
+ if len(x.Message) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"message\":"
+ out.RawString(prefix)
+ out.String(x.Message)
+ }
+ }
+ {
+ if len(x.Details) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"details\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Details {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Details[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/tombstone/grpc/types_frostfs.pb.go b/tombstone/grpc/types_frostfs.pb.go
index f7bc48c..79afdfc 100644
--- a/tombstone/grpc/types_frostfs.pb.go
+++ b/tombstone/grpc/types_frostfs.pb.go
@@ -140,28 +140,50 @@ func (x *Tombstone) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"expirationEpoch\":"
- out.RawString(prefix[1:])
- out.Uint64(x.ExpirationEpoch)
- }
- {
- const prefix string = ",\"splitID\":"
- out.RawString(prefix)
- out.Base64Bytes(x.SplitId)
- }
- {
- const prefix string = ",\"members\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Members {
- if i != 0 {
+ if x.ExpirationEpoch != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.Members[i].MarshalEasyJSON(out)
+ const prefix string = "\"expirationEpoch\":"
+ out.RawString(prefix)
+ out.Uint64(x.ExpirationEpoch)
+ }
+ }
+ {
+ if len(x.SplitId) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"splitID\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.SplitId)
+ }
+ }
+ {
+ if len(x.Members) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"members\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Members {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Members[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index 005d6d1..03f3ece 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -130,11 +130,19 @@ func (x *Primitives_Aux) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"innerField\":"
- out.RawString(prefix[1:])
- out.Uint32(x.InnerField)
+ if x.InnerField != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"innerField\":"
+ out.RawString(prefix)
+ out.Uint32(x.InnerField)
+ }
}
out.RawByte('}')
}
@@ -560,85 +568,184 @@ func (x *Primitives) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"fieldA\":"
- out.RawString(prefix[1:])
- out.Base64Bytes(x.FieldA)
+ if len(x.FieldA) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldA\":"
+ out.RawString(prefix)
+ out.Base64Bytes(x.FieldA)
+ }
}
{
- const prefix string = ",\"fieldB\":"
- out.RawString(prefix)
- out.String(x.FieldB)
+ if len(x.FieldB) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldB\":"
+ out.RawString(prefix)
+ out.String(x.FieldB)
+ }
}
{
- const prefix string = ",\"fieldC\":"
- out.RawString(prefix)
- out.Bool(x.FieldC)
+ if x.FieldC {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldC\":"
+ out.RawString(prefix)
+ out.Bool(x.FieldC)
+ }
}
{
- const prefix string = ",\"fieldD\":"
- out.RawString(prefix)
- out.Int32(x.FieldD)
+ if x.FieldD != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldD\":"
+ out.RawString(prefix)
+ out.Int32(x.FieldD)
+ }
}
{
- const prefix string = ",\"fieldE\":"
- out.RawString(prefix)
- out.Uint32(x.FieldE)
+ if x.FieldE != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldE\":"
+ out.RawString(prefix)
+ out.Uint32(x.FieldE)
+ }
}
{
- const prefix string = ",\"fieldF\":"
- out.RawString(prefix)
- out.Int64(x.FieldF)
+ if x.FieldF != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldF\":"
+ out.RawString(prefix)
+ out.Int64(x.FieldF)
+ }
}
{
- const prefix string = ",\"fieldG\":"
- out.RawString(prefix)
- out.Uint64(x.FieldG)
+ if x.FieldG != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldG\":"
+ out.RawString(prefix)
+ out.Uint64(x.FieldG)
+ }
}
{
- const prefix string = ",\"fieldI\":"
- out.RawString(prefix)
- out.Uint64(x.FieldI)
+ if x.FieldI != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldI\":"
+ out.RawString(prefix)
+ out.Uint64(x.FieldI)
+ }
}
{
- const prefix string = ",\"fieldJ\":"
- out.RawString(prefix)
- out.Float64(x.FieldJ)
+ if x.FieldJ != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldJ\":"
+ out.RawString(prefix)
+ out.Float64(x.FieldJ)
+ }
}
{
- const prefix string = ",\"fieldK\":"
- out.RawString(prefix)
- out.Uint32(x.FieldK)
+ if x.FieldK != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldK\":"
+ out.RawString(prefix)
+ out.Uint32(x.FieldK)
+ }
}
{
- const prefix string = ",\"fieldH\":"
- out.RawString(prefix)
- v := int32(x.FieldH)
- if vv, ok := Primitives_SomeEnum_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
+ if x.FieldH != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldH\":"
+ out.RawString(prefix)
+ v := int32(x.FieldH)
+ if vv, ok := Primitives_SomeEnum_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
+ }
}
}
switch xx := x.FieldM.(type) {
case *Primitives_FieldMa:
{
- const prefix string = ",\"fieldMa\":"
- out.RawString(prefix)
- out.Base64Bytes(xx.FieldMa)
+ if len(xx.FieldMa) != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldMa\":"
+ out.RawString(prefix)
+ out.Base64Bytes(xx.FieldMa)
+ }
}
case *Primitives_FieldMe:
{
- const prefix string = ",\"fieldMe\":"
- out.RawString(prefix)
- out.Uint32(xx.FieldMe)
+ if xx.FieldMe != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldMe\":"
+ out.RawString(prefix)
+ out.Uint32(xx.FieldMe)
+ }
}
case *Primitives_FieldAux:
{
- const prefix string = ",\"fieldAux\":"
- out.RawString(prefix)
- xx.FieldAux.MarshalEasyJSON(out)
+ if xx.FieldAux != nil {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldAux\":"
+ out.RawString(prefix)
+ xx.FieldAux.MarshalEasyJSON(out)
+ }
}
}
out.RawByte('}')
@@ -887,11 +994,19 @@ func (x *RepPrimitives_Aux) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"innerField\":"
- out.RawString(prefix[1:])
- out.Uint32(x.InnerField)
+ if x.InnerField != 0 {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"innerField\":"
+ out.RawString(prefix)
+ out.Uint32(x.InnerField)
+ }
}
out.RawByte('}')
}
@@ -1169,102 +1284,159 @@ func (x *RepPrimitives) MarshalEasyJSON(out *jwriter.Writer) {
out.RawString("null")
return
}
+ first := true
out.RawByte('{')
{
- const prefix string = ",\"fieldA\":"
- out.RawString(prefix[1:])
- out.RawByte('[')
- for i := range x.FieldA {
- if i != 0 {
+ if len(x.FieldA) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Base64Bytes(x.FieldA[i])
+ const prefix string = "\"fieldA\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldA {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Base64Bytes(x.FieldA[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"fieldB\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldB {
- if i != 0 {
+ if len(x.FieldB) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.String(x.FieldB[i])
+ const prefix string = "\"fieldB\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldB {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.String(x.FieldB[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"fieldC\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldC {
- if i != 0 {
+ if len(x.FieldC) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Int32(x.FieldC[i])
+ const prefix string = "\"fieldC\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldC {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Int32(x.FieldC[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"fieldD\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldD {
- if i != 0 {
+ if len(x.FieldD) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Uint32(x.FieldD[i])
+ const prefix string = "\"fieldD\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldD {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint32(x.FieldD[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"fieldE\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldE {
- if i != 0 {
+ if len(x.FieldE) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Int64(x.FieldE[i])
+ const prefix string = "\"fieldE\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldE {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Int64(x.FieldE[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"fieldF\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldF {
- if i != 0 {
+ if len(x.FieldF) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Uint64(x.FieldF[i])
+ const prefix string = "\"fieldF\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldF {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint64(x.FieldF[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"fieldFu\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldFu {
- if i != 0 {
+ if len(x.FieldFu) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- out.Uint64(x.FieldFu[i])
+ const prefix string = "\"fieldFu\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldFu {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint64(x.FieldFu[i])
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
{
- const prefix string = ",\"fieldAux\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldAux {
- if i != 0 {
+ if len(x.FieldAux) != 0 {
+ if !first {
out.RawByte(',')
+ } else {
+ first = false
}
- x.FieldAux[i].MarshalEasyJSON(out)
+ const prefix string = "\"fieldAux\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldAux {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.FieldAux[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
- out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
index 95a06d5..ec70155 100644
--- a/util/protogen/internalgengo/json.go
+++ b/util/protogen/internalgengo/json.go
@@ -147,8 +147,11 @@ func emitJSONMarshal(g *protogen.GeneratedFile, msg *protogen.Message) {
g.P("func (x *", msg.GoIdent.GoName, ") MarshalEasyJSON(out *", jwriterPackage.Ident("Writer"), ") {")
g.P(`if x == nil { out.RawString("null"); return }`)
+ if len(msg.Fields) != 0 {
+ g.P("first := true")
+ }
g.P("out.RawByte('{')")
- for i, f := range msg.Fields {
+ for _, f := range msg.Fields {
if f.Oneof != nil {
if f.Oneof.Fields[0] != f {
continue
@@ -157,29 +160,35 @@ func emitJSONMarshal(g *protogen.GeneratedFile, msg *protogen.Message) {
g.P("switch xx := x.", f.Oneof.GoName, ".(type) {")
for _, ff := range f.Oneof.Fields {
g.P("case *", ff.GoIdent, ":")
- emitJSONFieldWrite(g, ff, "xx", i == 0)
+ emitJSONFieldWrite(g, ff, "xx")
}
g.P("}")
continue
}
- emitJSONFieldWrite(g, f, "x", i == 0)
+ emitJSONFieldWrite(g, f, "x")
}
g.P("out.RawByte('}')")
g.P("}")
}
-func emitJSONFieldWrite(g *protogen.GeneratedFile, f *protogen.Field, name string, first bool) {
+func emitJSONFieldWrite(g *protogen.GeneratedFile, f *protogen.Field, name string) {
g.P("{")
defer g.P("}")
- g.P("const prefix string = ", `",\"`, fieldJSONName(f), `\":"`)
- if first {
- g.P("out.RawString(prefix[1:])")
- } else {
- g.P("out.RawString(prefix)")
- }
-
selector := name + "." + f.GoName
+
+ isNotDefault := notNil
+ if f.Desc.IsList() {
+ isNotDefault = notEmpty
+ } else if f.Desc.Kind() != protoreflect.MessageKind {
+ _, isNotDefault = easyprotoKindInfo(f.Desc.Kind())
+ }
+ g.P("if ", isNotDefault(selector), "{")
+ defer g.P("}")
+
+ g.P("if !first { out.RawByte(','); } else { first = false; }")
+ g.P("const prefix string = ", `"\"`, fieldJSONName(f), `\":"`)
+ g.P("out.RawString(prefix)")
if f.Desc.IsList() {
selector += "[i]"
g.P("out.RawByte('[')")
From d94b9c6d0d6030e551a58ae260d943290fd8e38e Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 1 Oct 2024 13:50:27 +0300
Subject: [PATCH 34/42] [#120] protogen: Unmarshal stringified integers from
JSON
Signed-off-by: Evgenii Stratonikov
---
accounting/grpc/types_frostfs.pb.go | 21 +++-
acl/grpc/types_frostfs.pb.go | 30 ++++-
container/grpc/types_frostfs.pb.go | 11 +-
netmap/grpc/types_frostfs.pb.go | 90 ++++++++++++--
object/grpc/service_frostfs.pb.go | 50 +++++++-
object/grpc/types_frostfs.pb.go | 90 ++++++++++++--
refs/grpc/types_frostfs.pb.go | 20 +++-
session/grpc/service_frostfs.pb.go | 11 +-
session/grpc/types_frostfs.pb.go | 80 +++++++++++--
status/grpc/types_frostfs.pb.go | 20 +++-
tombstone/grpc/types_frostfs.pb.go | 11 +-
util/proto/test/custom/test_frostfs.pb.go | 140 +++++++++++++++++++---
util/protogen/internalgengo/json.go | 23 +++-
13 files changed, 536 insertions(+), 61 deletions(-)
diff --git a/accounting/grpc/types_frostfs.pb.go b/accounting/grpc/types_frostfs.pb.go
index 0ae770b..438cd03 100644
--- a/accounting/grpc/types_frostfs.pb.go
+++ b/accounting/grpc/types_frostfs.pb.go
@@ -11,6 +11,7 @@ import (
easyproto "github.com/VictoriaMetrics/easyproto"
jlexer "github.com/mailru/easyjson/jlexer"
jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
)
type Decimal struct {
@@ -170,13 +171,29 @@ func (x *Decimal) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "value":
{
var f int64
- f = in.Int64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseInt(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := int64(v)
+ f = pv
x.Value = f
}
case "precision":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Precision = f
}
}
diff --git a/acl/grpc/types_frostfs.pb.go b/acl/grpc/types_frostfs.pb.go
index 57e1682..6ebaf63 100644
--- a/acl/grpc/types_frostfs.pb.go
+++ b/acl/grpc/types_frostfs.pb.go
@@ -1481,19 +1481,43 @@ func (x *BearerToken_Body_TokenLifetime) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "exp":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Exp = f
}
case "nbf":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Nbf = f
}
case "iat":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Iat = f
}
}
diff --git a/container/grpc/types_frostfs.pb.go b/container/grpc/types_frostfs.pb.go
index 9db07ed..e5da35f 100644
--- a/container/grpc/types_frostfs.pb.go
+++ b/container/grpc/types_frostfs.pb.go
@@ -13,6 +13,7 @@ import (
easyproto "github.com/VictoriaMetrics/easyproto"
jlexer "github.com/mailru/easyjson/jlexer"
jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
)
type Container_Attribute struct {
@@ -517,7 +518,15 @@ func (x *Container) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "basicACL":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.BasicAcl = f
}
case "attributes":
diff --git a/netmap/grpc/types_frostfs.pb.go b/netmap/grpc/types_frostfs.pb.go
index d082910..24b7575 100644
--- a/netmap/grpc/types_frostfs.pb.go
+++ b/netmap/grpc/types_frostfs.pb.go
@@ -703,7 +703,15 @@ func (x *Selector) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "count":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Count = f
}
case "clause":
@@ -970,7 +978,15 @@ func (x *Replica) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "count":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Count = f
}
case "selector":
@@ -982,13 +998,29 @@ func (x *Replica) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "ecDataCount":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.EcDataCount = f
}
case "ecParityCount":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.EcParityCount = f
}
}
@@ -1306,7 +1338,15 @@ func (x *PlacementPolicy) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "containerBackupFactor":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.ContainerBackupFactor = f
}
case "selectors":
@@ -2094,7 +2134,15 @@ func (x *Netmap) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "epoch":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Epoch = f
}
case "nodes":
@@ -2677,19 +2725,43 @@ func (x *NetworkInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "currentEpoch":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.CurrentEpoch = f
}
case "magicNumber":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.MagicNumber = f
}
case "msPerBlock":
{
var f int64
- f = in.Int64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseInt(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := int64(v)
+ f = pv
x.MsPerBlock = f
}
case "networkConfig":
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
index 2434bd3..0130ee3 100644
--- a/object/grpc/service_frostfs.pb.go
+++ b/object/grpc/service_frostfs.pb.go
@@ -1508,7 +1508,15 @@ func (x *PutRequest_Body_Init) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list []uint32
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
list = append(list, f)
in.WantComma()
}
@@ -4815,7 +4823,15 @@ func (x *SearchRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "version":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Version = f
}
case "filters":
@@ -5642,13 +5658,29 @@ func (x *Range) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "offset":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Offset = f
}
case "length":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Length = f
}
}
@@ -7823,7 +7855,15 @@ func (x *PutSingleRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list []uint32
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
list = append(list, f)
in.WantComma()
}
diff --git a/object/grpc/types_frostfs.pb.go b/object/grpc/types_frostfs.pb.go
index 5b1eb2c..bc246cf 100644
--- a/object/grpc/types_frostfs.pb.go
+++ b/object/grpc/types_frostfs.pb.go
@@ -433,7 +433,15 @@ func (x *ShortHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "creationEpoch":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.CreationEpoch = f
}
case "ownerID":
@@ -468,7 +476,15 @@ func (x *ShortHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "payloadLength":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.PayloadLength = f
}
case "payloadHash":
@@ -1408,19 +1424,43 @@ func (x *Header_EC) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "index":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Index = f
}
case "total":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Total = f
}
case "headerLength":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.HeaderLength = f
}
case "header":
@@ -2005,13 +2045,29 @@ func (x *Header) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "creationEpoch":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.CreationEpoch = f
}
case "payloadLength":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.PayloadLength = f
}
case "payloadHash":
@@ -2777,13 +2833,29 @@ func (x *ECInfo_Chunk) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "index":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Index = f
}
case "total":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Total = f
}
}
diff --git a/refs/grpc/types_frostfs.pb.go b/refs/grpc/types_frostfs.pb.go
index 869620f..3ed647c 100644
--- a/refs/grpc/types_frostfs.pb.go
+++ b/refs/grpc/types_frostfs.pb.go
@@ -835,13 +835,29 @@ func (x *Version) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "major":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Major = f
}
case "minor":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Minor = f
}
}
diff --git a/session/grpc/service_frostfs.pb.go b/session/grpc/service_frostfs.pb.go
index a3f0111..71a6a41 100644
--- a/session/grpc/service_frostfs.pb.go
+++ b/session/grpc/service_frostfs.pb.go
@@ -12,6 +12,7 @@ import (
easyproto "github.com/VictoriaMetrics/easyproto"
jlexer "github.com/mailru/easyjson/jlexer"
jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
)
type CreateRequest_Body struct {
@@ -181,7 +182,15 @@ func (x *CreateRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "expiration":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Expiration = f
}
}
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
index 58807fe..1b6a664 100644
--- a/session/grpc/types_frostfs.pb.go
+++ b/session/grpc/types_frostfs.pb.go
@@ -935,19 +935,43 @@ func (x *SessionToken_Body_TokenLifetime) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "exp":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Exp = f
}
case "nbf":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Nbf = f
}
case "iat":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Iat = f
}
}
@@ -2083,13 +2107,29 @@ func (x *RequestMetaHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "epoch":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Epoch = f
}
case "ttl":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Ttl = f
}
case "xHeaders":
@@ -2130,7 +2170,15 @@ func (x *RequestMetaHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "magicNumber":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.MagicNumber = f
}
}
@@ -2456,13 +2504,29 @@ func (x *ResponseMetaHeader) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "epoch":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.Epoch = f
}
case "ttl":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Ttl = f
}
case "xHeaders":
diff --git a/status/grpc/types_frostfs.pb.go b/status/grpc/types_frostfs.pb.go
index 7581dbe..609fc03 100644
--- a/status/grpc/types_frostfs.pb.go
+++ b/status/grpc/types_frostfs.pb.go
@@ -425,7 +425,15 @@ func (x *Status_Detail) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "id":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Id = f
}
case "value":
@@ -645,7 +653,15 @@ func (x *Status) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "code":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.Code = f
}
case "message":
diff --git a/tombstone/grpc/types_frostfs.pb.go b/tombstone/grpc/types_frostfs.pb.go
index 79afdfc..0971045 100644
--- a/tombstone/grpc/types_frostfs.pb.go
+++ b/tombstone/grpc/types_frostfs.pb.go
@@ -12,6 +12,7 @@ import (
easyproto "github.com/VictoriaMetrics/easyproto"
jlexer "github.com/mailru/easyjson/jlexer"
jwriter "github.com/mailru/easyjson/jwriter"
+ strconv "strconv"
)
type Tombstone struct {
@@ -216,7 +217,15 @@ func (x *Tombstone) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "expirationEpoch":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.ExpirationEpoch = f
}
case "splitID":
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index 03f3ece..15e77af 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -175,7 +175,15 @@ func (x *Primitives_Aux) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "innerField":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.InnerField = f
}
}
@@ -797,31 +805,71 @@ func (x *Primitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "fieldD":
{
var f int32
- f = in.Int32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseInt(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := int32(v)
+ f = pv
x.FieldD = f
}
case "fieldE":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.FieldE = f
}
case "fieldF":
{
var f int64
- f = in.Int64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseInt(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := int64(v)
+ f = pv
x.FieldF = f
}
case "fieldG":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.FieldG = f
}
case "fieldI":
{
var f uint64
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
x.FieldI = f
}
case "fieldJ":
@@ -833,7 +881,15 @@ func (x *Primitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "fieldK":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.FieldK = f
}
case "fieldH":
@@ -871,7 +927,15 @@ func (x *Primitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
x.FieldM = xx
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
xx.FieldMe = f
}
case "fieldAux":
@@ -1039,7 +1103,15 @@ func (x *RepPrimitives_Aux) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "innerField":
{
var f uint32
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
x.InnerField = f
}
}
@@ -1498,7 +1570,15 @@ func (x *RepPrimitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list []int32
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Int32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseInt(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := int32(v)
+ f = pv
list = append(list, f)
in.WantComma()
}
@@ -1511,7 +1591,15 @@ func (x *RepPrimitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list []uint32
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Uint32()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint32(v)
+ f = pv
list = append(list, f)
in.WantComma()
}
@@ -1524,7 +1612,15 @@ func (x *RepPrimitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list []int64
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Int64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseInt(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := int64(v)
+ f = pv
list = append(list, f)
in.WantComma()
}
@@ -1537,7 +1633,15 @@ func (x *RepPrimitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list []uint64
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
list = append(list, f)
in.WantComma()
}
@@ -1550,7 +1654,15 @@ func (x *RepPrimitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list []uint64
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Uint64()
+ r := in.JsonNumber()
+ n := r.String()
+ v, err := strconv.ParseUint(n, 10, 64)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ pv := uint64(v)
+ f = pv
list = append(list, f)
in.WantComma()
}
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
index ec70155..4d7f4be 100644
--- a/util/protogen/internalgengo/json.go
+++ b/util/protogen/internalgengo/json.go
@@ -59,6 +59,17 @@ func emitJSONUnmarshal(g *protogen.GeneratedFile, msg *protogen.Message) {
g.P("}")
}
+func emitJSONParseInteger(g *protogen.GeneratedFile, ident string, method string, bitSize int, typ string) {
+ g.P("r := in.JsonNumber()")
+ g.P("n := r.String()")
+ g.P("v, err := ", strconvPackage.Ident(method), "(n, 10, ", bitSize, ")")
+ g.P("if err != nil {")
+ g.P(" in.AddError(err)")
+ g.P(" return")
+ g.P("}")
+ g.P(ident, " := ", typ, "(v)")
+}
+
func emitJSONFieldRead(g *protogen.GeneratedFile, f *protogen.Field, name string) {
g.P("{")
defer g.P("}")
@@ -100,13 +111,17 @@ func emitJSONFieldRead(g *protogen.GeneratedFile, f *protogen.Field, name string
}`)
template = "%s = parsedValue"
case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:
- template = "%s = in.Int32()"
+ emitJSONParseInteger(g, "pv", "ParseInt", 32, "int32")
+ template = "%s = pv"
case protoreflect.Uint32Kind, protoreflect.Fixed32Kind:
- template = "%s = in.Uint32()"
+ emitJSONParseInteger(g, "pv", "ParseUint", 32, "uint32")
+ template = "%s = pv"
case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:
- template = "%s = in.Int64()"
+ emitJSONParseInteger(g, "pv", "ParseInt", 64, "int64")
+ template = "%s = pv"
case protoreflect.Uint64Kind, protoreflect.Fixed64Kind:
- template = "%s = in.Uint64()"
+ emitJSONParseInteger(g, "pv", "ParseUint", 64, "uint64")
+ template = "%s = pv"
case protoreflect.FloatKind:
template = "%s = in.Float32()"
case protoreflect.DoubleKind:
From b06dad731c711082abfb6f88a54a77ee7cc6d043 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 1 Oct 2024 13:50:43 +0300
Subject: [PATCH 35/42] [#120] protogen: Marshal 64-bit integers as strings
Signed-off-by: Evgenii Stratonikov
---
accounting/grpc/types_frostfs.pb.go | 4 +++-
acl/grpc/types_frostfs.pb.go | 12 +++++++++---
netmap/grpc/types_frostfs.pb.go | 16 +++++++++++----
object/grpc/service_frostfs.pb.go | 8 ++++++--
object/grpc/types_frostfs.pb.go | 16 +++++++++++----
session/grpc/service_frostfs.pb.go | 4 +++-
session/grpc/types_frostfs.pb.go | 24 +++++++++++++++++------
tombstone/grpc/types_frostfs.pb.go | 4 +++-
util/proto/test/custom/test_frostfs.pb.go | 24 +++++++++++++++++------
util/protogen/internalgengo/json.go | 10 ++++++++--
10 files changed, 92 insertions(+), 30 deletions(-)
diff --git a/accounting/grpc/types_frostfs.pb.go b/accounting/grpc/types_frostfs.pb.go
index 438cd03..8585583 100644
--- a/accounting/grpc/types_frostfs.pb.go
+++ b/accounting/grpc/types_frostfs.pb.go
@@ -125,7 +125,9 @@ func (x *Decimal) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"value\":"
out.RawString(prefix)
- out.Int64(x.Value)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.Value, 10)
+ out.RawByte('"')
}
}
{
diff --git a/acl/grpc/types_frostfs.pb.go b/acl/grpc/types_frostfs.pb.go
index 6ebaf63..1ba6c53 100644
--- a/acl/grpc/types_frostfs.pb.go
+++ b/acl/grpc/types_frostfs.pb.go
@@ -1423,7 +1423,9 @@ func (x *BearerToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"exp\":"
out.RawString(prefix)
- out.Uint64(x.Exp)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Exp, 10)
+ out.RawByte('"')
}
}
{
@@ -1435,7 +1437,9 @@ func (x *BearerToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"nbf\":"
out.RawString(prefix)
- out.Uint64(x.Nbf)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Nbf, 10)
+ out.RawByte('"')
}
}
{
@@ -1447,7 +1451,9 @@ func (x *BearerToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"iat\":"
out.RawString(prefix)
- out.Uint64(x.Iat)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Iat, 10)
+ out.RawByte('"')
}
}
out.RawByte('}')
diff --git a/netmap/grpc/types_frostfs.pb.go b/netmap/grpc/types_frostfs.pb.go
index 24b7575..a4b10f9 100644
--- a/netmap/grpc/types_frostfs.pb.go
+++ b/netmap/grpc/types_frostfs.pb.go
@@ -2081,7 +2081,9 @@ func (x *Netmap) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"epoch\":"
out.RawString(prefix)
- out.Uint64(x.Epoch)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Epoch, 10)
+ out.RawByte('"')
}
}
{
@@ -2655,7 +2657,9 @@ func (x *NetworkInfo) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"currentEpoch\":"
out.RawString(prefix)
- out.Uint64(x.CurrentEpoch)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.CurrentEpoch, 10)
+ out.RawByte('"')
}
}
{
@@ -2667,7 +2671,9 @@ func (x *NetworkInfo) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"magicNumber\":"
out.RawString(prefix)
- out.Uint64(x.MagicNumber)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.MagicNumber, 10)
+ out.RawByte('"')
}
}
{
@@ -2679,7 +2685,9 @@ func (x *NetworkInfo) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"msPerBlock\":"
out.RawString(prefix)
- out.Int64(x.MsPerBlock)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.MsPerBlock, 10)
+ out.RawByte('"')
}
}
{
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
index 0130ee3..f934f3b 100644
--- a/object/grpc/service_frostfs.pb.go
+++ b/object/grpc/service_frostfs.pb.go
@@ -5612,7 +5612,9 @@ func (x *Range) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"offset\":"
out.RawString(prefix)
- out.Uint64(x.Offset)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Offset, 10)
+ out.RawByte('"')
}
}
{
@@ -5624,7 +5626,9 @@ func (x *Range) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"length\":"
out.RawString(prefix)
- out.Uint64(x.Length)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Length, 10)
+ out.RawByte('"')
}
}
out.RawByte('}')
diff --git a/object/grpc/types_frostfs.pb.go b/object/grpc/types_frostfs.pb.go
index bc246cf..0ee939a 100644
--- a/object/grpc/types_frostfs.pb.go
+++ b/object/grpc/types_frostfs.pb.go
@@ -327,7 +327,9 @@ func (x *ShortHeader) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"creationEpoch\":"
out.RawString(prefix)
- out.Uint64(x.CreationEpoch)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.CreationEpoch, 10)
+ out.RawByte('"')
}
}
{
@@ -368,7 +370,9 @@ func (x *ShortHeader) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"payloadLength\":"
out.RawString(prefix)
- out.Uint64(x.PayloadLength)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.PayloadLength, 10)
+ out.RawByte('"')
}
}
{
@@ -1882,7 +1886,9 @@ func (x *Header) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"creationEpoch\":"
out.RawString(prefix)
- out.Uint64(x.CreationEpoch)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.CreationEpoch, 10)
+ out.RawByte('"')
}
}
{
@@ -1894,7 +1900,9 @@ func (x *Header) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"payloadLength\":"
out.RawString(prefix)
- out.Uint64(x.PayloadLength)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.PayloadLength, 10)
+ out.RawByte('"')
}
}
{
diff --git a/session/grpc/service_frostfs.pb.go b/session/grpc/service_frostfs.pb.go
index 71a6a41..c71325a 100644
--- a/session/grpc/service_frostfs.pb.go
+++ b/session/grpc/service_frostfs.pb.go
@@ -141,7 +141,9 @@ func (x *CreateRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"expiration\":"
out.RawString(prefix)
- out.Uint64(x.Expiration)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Expiration, 10)
+ out.RawByte('"')
}
}
out.RawByte('}')
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
index 1b6a664..e18c1ab 100644
--- a/session/grpc/types_frostfs.pb.go
+++ b/session/grpc/types_frostfs.pb.go
@@ -877,7 +877,9 @@ func (x *SessionToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"exp\":"
out.RawString(prefix)
- out.Uint64(x.Exp)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Exp, 10)
+ out.RawByte('"')
}
}
{
@@ -889,7 +891,9 @@ func (x *SessionToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"nbf\":"
out.RawString(prefix)
- out.Uint64(x.Nbf)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Nbf, 10)
+ out.RawByte('"')
}
}
{
@@ -901,7 +905,9 @@ func (x *SessionToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"iat\":"
out.RawString(prefix)
- out.Uint64(x.Iat)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Iat, 10)
+ out.RawByte('"')
}
}
out.RawByte('}')
@@ -1987,7 +1993,9 @@ func (x *RequestMetaHeader) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"epoch\":"
out.RawString(prefix)
- out.Uint64(x.Epoch)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Epoch, 10)
+ out.RawByte('"')
}
}
{
@@ -2066,7 +2074,9 @@ func (x *RequestMetaHeader) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"magicNumber\":"
out.RawString(prefix)
- out.Uint64(x.MagicNumber)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.MagicNumber, 10)
+ out.RawByte('"')
}
}
out.RawByte('}')
@@ -2408,7 +2418,9 @@ func (x *ResponseMetaHeader) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"epoch\":"
out.RawString(prefix)
- out.Uint64(x.Epoch)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Epoch, 10)
+ out.RawByte('"')
}
}
{
diff --git a/tombstone/grpc/types_frostfs.pb.go b/tombstone/grpc/types_frostfs.pb.go
index 0971045..e5b67d5 100644
--- a/tombstone/grpc/types_frostfs.pb.go
+++ b/tombstone/grpc/types_frostfs.pb.go
@@ -152,7 +152,9 @@ func (x *Tombstone) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"expirationEpoch\":"
out.RawString(prefix)
- out.Uint64(x.ExpirationEpoch)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.ExpirationEpoch, 10)
+ out.RawByte('"')
}
}
{
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index 15e77af..3804e46 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -647,7 +647,9 @@ func (x *Primitives) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"fieldF\":"
out.RawString(prefix)
- out.Int64(x.FieldF)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.FieldF, 10)
+ out.RawByte('"')
}
}
{
@@ -659,7 +661,9 @@ func (x *Primitives) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"fieldG\":"
out.RawString(prefix)
- out.Uint64(x.FieldG)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldG, 10)
+ out.RawByte('"')
}
}
{
@@ -671,7 +675,9 @@ func (x *Primitives) MarshalEasyJSON(out *jwriter.Writer) {
}
const prefix string = "\"fieldI\":"
out.RawString(prefix)
- out.Uint64(x.FieldI)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldI, 10)
+ out.RawByte('"')
}
}
{
@@ -1448,7 +1454,9 @@ func (x *RepPrimitives) MarshalEasyJSON(out *jwriter.Writer) {
if i != 0 {
out.RawByte(',')
}
- out.Int64(x.FieldE[i])
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.FieldE[i], 10)
+ out.RawByte('"')
}
out.RawByte(']')
}
@@ -1467,7 +1475,9 @@ func (x *RepPrimitives) MarshalEasyJSON(out *jwriter.Writer) {
if i != 0 {
out.RawByte(',')
}
- out.Uint64(x.FieldF[i])
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldF[i], 10)
+ out.RawByte('"')
}
out.RawByte(']')
}
@@ -1486,7 +1496,9 @@ func (x *RepPrimitives) MarshalEasyJSON(out *jwriter.Writer) {
if i != 0 {
out.RawByte(',')
}
- out.Uint64(x.FieldFu[i])
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldFu[i], 10)
+ out.RawByte('"')
}
out.RawByte(']')
}
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
index 4d7f4be..3267955 100644
--- a/util/protogen/internalgengo/json.go
+++ b/util/protogen/internalgengo/json.go
@@ -231,9 +231,15 @@ func emitJSONFieldWrite(g *protogen.GeneratedFile, f *protogen.Field, name strin
case protoreflect.Uint32Kind, protoreflect.Fixed32Kind:
template = "out.Uint32(%s)"
case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind:
- template = "out.Int64(%s)"
+ g.P("out.RawByte('\"')")
+ g.P("out.Buffer.Buf = ", strconvPackage.Ident("AppendInt"), "(out.Buffer.Buf, ", selector, ", 10)")
+ g.P("out.RawByte('\"')")
+ return
case protoreflect.Uint64Kind, protoreflect.Fixed64Kind:
- template = "out.Uint64(%s)"
+ g.P("out.RawByte('\"')")
+ g.P("out.Buffer.Buf = ", strconvPackage.Ident("AppendUint"), "(out.Buffer.Buf, ", selector, ", 10)")
+ g.P("out.RawByte('\"')")
+ return
case protoreflect.FloatKind:
template = "out.Float32(%s)"
case protoreflect.DoubleKind:
From d9a604fbc16fdcd988716a74cfd839eb3f83f50c Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Tue, 1 Oct 2024 13:54:32 +0300
Subject: [PATCH 36/42] [#120] proto/test: Unskip protojson compatibility test
Signed-off-by: Evgenii Stratonikov
---
util/proto/marshal_test.go | 1 -
1 file changed, 1 deletion(-)
diff --git a/util/proto/marshal_test.go b/util/proto/marshal_test.go
index 98422fc..8b717be 100644
--- a/util/proto/marshal_test.go
+++ b/util/proto/marshal_test.go
@@ -77,7 +77,6 @@ func TestStableMarshalSingle(t *testing.T) {
require.NoError(t, protojson.Unmarshal(r, &actual))
t.Run("protojson compatibility", func(t *testing.T) {
- t.Skip()
data, err := protojson.Marshal(&actual)
require.NoError(t, err)
require.JSONEq(t, string(data), string(r))
From 3e705a3cbe84752a263d6e7ba64c57a3dd091f5b Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Wed, 2 Oct 2024 09:47:08 +0300
Subject: [PATCH 37/42] [#121] .golangci.yml: Replace exportloopref with
copyloopvar
Fix linter warning:
```
WARN The linter 'exportloopref' is deprecated (since v1.60.2) due to: Since Go1.22 (loopvar) this linter is no longer relevant. Replaced by copyloopvar.
```
Signed-off-by: Evgenii Stratonikov
---
.golangci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.golangci.yml b/.golangci.yml
index c6f4308..eacdf7b 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -50,7 +50,7 @@ linters:
- bidichk
- durationcheck
- exhaustive
- - exportloopref
+ - copyloopvar
- gofmt
- goimports
- misspell
From 29c522d5d8a31721b32fa0932f2f4abba445ec77 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Mon, 7 Oct 2024 15:00:16 +0300
Subject: [PATCH 38/42] [#122] protogen: Always marshal empty fields
This is how it was done previously:
https://git.frostfs.info/TrueCloudLab/frostfs-api-go/src/commit/a0a9b765f3a56423b1c6f1fef1d1b413da0e03ef/rpc/message/encoding.go#L31
The tricky part is `[]byte` which is marshaled as `null` by easyjson
helper, but as `""` by protojson.
Signed-off-by: Evgenii Stratonikov
---
accounting/grpc/service_frostfs.pb.go | 128 +-
accounting/grpc/types_frostfs.pb.go | 36 +-
acl/grpc/types_frostfs.pb.go | 536 +++---
ape/grpc/types_frostfs.pb.go | 60 +-
apemanager/grpc/service_frostfs.pb.go | 418 ++---
container/grpc/service_frostfs.pb.go | 574 +++---
container/grpc/types_frostfs.pb.go | 144 +-
lock/grpc/types_frostfs.pb.go | 30 +-
netmap/grpc/service_frostfs.pb.go | 352 ++--
netmap/grpc/types_frostfs.pb.go | 756 ++++----
object/grpc/service_frostfs.pb.go | 1926 +++++++++------------
object/grpc/types_frostfs.pb.go | 892 +++++-----
refs/grpc/types_frostfs.pb.go | 260 +--
session/grpc/service_frostfs.pb.go | 168 +-
session/grpc/types_frostfs.pb.go | 762 ++++----
status/grpc/types_frostfs.pb.go | 96 +-
tombstone/grpc/types_frostfs.pb.go | 68 +-
util/proto/marshal_test.go | 44 +-
util/proto/test/custom/test_frostfs.pb.go | 530 +++---
util/protogen/internalgengo/json.go | 24 +-
20 files changed, 3574 insertions(+), 4230 deletions(-)
diff --git a/accounting/grpc/service_frostfs.pb.go b/accounting/grpc/service_frostfs.pb.go
index 4f11303..9c8c946 100644
--- a/accounting/grpc/service_frostfs.pb.go
+++ b/accounting/grpc/service_frostfs.pb.go
@@ -101,16 +101,14 @@ func (x *BalanceRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.OwnerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ownerId\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ownerId\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -306,40 +304,34 @@ func (x *BalanceRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -485,16 +477,14 @@ func (x *BalanceResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Balance != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"balance\":"
- out.RawString(prefix)
- x.Balance.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"balance\":"
+ out.RawString(prefix)
+ x.Balance.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -690,40 +680,34 @@ func (x *BalanceResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/accounting/grpc/types_frostfs.pb.go b/accounting/grpc/types_frostfs.pb.go
index 8585583..b7e6b40 100644
--- a/accounting/grpc/types_frostfs.pb.go
+++ b/accounting/grpc/types_frostfs.pb.go
@@ -117,30 +117,26 @@ func (x *Decimal) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Value != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.Value, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.Value, 10)
+ out.RawByte('"')
}
{
- if x.Precision != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"precision\":"
- out.RawString(prefix)
- out.Uint32(x.Precision)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"precision\":"
+ out.RawString(prefix)
+ out.Uint32(x.Precision)
}
out.RawByte('}')
}
diff --git a/acl/grpc/types_frostfs.pb.go b/acl/grpc/types_frostfs.pb.go
index 1ba6c53..e5a6f32 100644
--- a/acl/grpc/types_frostfs.pb.go
+++ b/acl/grpc/types_frostfs.pb.go
@@ -355,62 +355,54 @@ func (x *EACLRecord_Filter) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.HeaderType != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"headerType\":"
- out.RawString(prefix)
- v := int32(x.HeaderType)
- if vv, ok := HeaderType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"headerType\":"
+ out.RawString(prefix)
+ v := int32(x.HeaderType)
+ if vv, ok := HeaderType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if x.MatchType != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"matchType\":"
- out.RawString(prefix)
- v := int32(x.MatchType)
- if vv, ok := MatchType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"matchType\":"
+ out.RawString(prefix)
+ v := int32(x.MatchType)
+ if vv, ok := MatchType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
}
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
}
out.RawByte('}')
}
@@ -608,40 +600,40 @@ func (x *EACLRecord_Target) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Role != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"role\":"
- out.RawString(prefix)
- v := int32(x.Role)
- if vv, ok := Role_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"role\":"
+ out.RawString(prefix)
+ v := int32(x.Role)
+ if vv, ok := Role_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if len(x.Keys) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"keys\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Keys {
- if i != 0 {
- out.RawByte(',')
- }
- out.Base64Bytes(x.Keys[i])
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"keys\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Keys {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ if x.Keys[i] != nil {
+ out.Base64Bytes(x.Keys[i])
+ } else {
+ out.String("")
+ }
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -870,76 +862,68 @@ func (x *EACLRecord) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Operation != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"operation\":"
- out.RawString(prefix)
- v := int32(x.Operation)
- if vv, ok := Operation_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"operation\":"
+ out.RawString(prefix)
+ v := int32(x.Operation)
+ if vv, ok := Operation_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if x.Action != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"action\":"
- out.RawString(prefix)
- v := int32(x.Action)
- if vv, ok := Action_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"action\":"
+ out.RawString(prefix)
+ v := int32(x.Action)
+ if vv, ok := Action_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if len(x.Filters) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"filters\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Filters {
- if i != 0 {
- out.RawByte(',')
- }
- x.Filters[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if len(x.Targets) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"targets\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Targets {
- if i != 0 {
- out.RawByte(',')
- }
- x.Targets[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"targets\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Targets {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Targets[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -1185,47 +1169,41 @@ func (x *EACLTable) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Version != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"version\":"
- out.RawString(prefix)
- x.Version.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
{
- if x.ContainerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerID\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
}
{
- if len(x.Records) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"records\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Records {
- if i != 0 {
- out.RawByte(',')
- }
- x.Records[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"records\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Records {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Records[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -1415,46 +1393,40 @@ func (x *BearerToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Exp != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"exp\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Exp, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"exp\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Exp, 10)
+ out.RawByte('"')
}
{
- if x.Nbf != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"nbf\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Nbf, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"nbf\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Nbf, 10)
+ out.RawByte('"')
}
{
- if x.Iat != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"iat\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Iat, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"iat\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Iat, 10)
+ out.RawByte('"')
}
out.RawByte('}')
}
@@ -1647,35 +1619,31 @@ func (x *BearerToken_Body_APEOverride) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Target != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"target\":"
- out.RawString(prefix)
- x.Target.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
}
{
- if len(x.Chains) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chains\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Chains {
- if i != 0 {
- out.RawByte(',')
- }
- x.Chains[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"chains\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Chains {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Chains[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -1910,64 +1878,54 @@ func (x *BearerToken_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.EaclTable != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"eaclTable\":"
- out.RawString(prefix)
- x.EaclTable.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"eaclTable\":"
+ out.RawString(prefix)
+ x.EaclTable.MarshalEasyJSON(out)
}
{
- if x.OwnerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
}
{
- if x.Lifetime != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"lifetime\":"
- out.RawString(prefix)
- x.Lifetime.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"lifetime\":"
+ out.RawString(prefix)
+ x.Lifetime.MarshalEasyJSON(out)
}
{
- if x.AllowImpersonate {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"allowImpersonate\":"
- out.RawString(prefix)
- out.Bool(x.AllowImpersonate)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"allowImpersonate\":"
+ out.RawString(prefix)
+ out.Bool(x.AllowImpersonate)
}
{
- if x.ApeOverride != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"apeOverride\":"
- out.RawString(prefix)
- x.ApeOverride.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"apeOverride\":"
+ out.RawString(prefix)
+ x.ApeOverride.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2149,28 +2107,24 @@ func (x *BearerToken) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.Signature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/ape/grpc/types_frostfs.pb.go b/ape/grpc/types_frostfs.pb.go
index 7967e13..cf9499f 100644
--- a/ape/grpc/types_frostfs.pb.go
+++ b/ape/grpc/types_frostfs.pb.go
@@ -158,33 +158,29 @@ func (x *ChainTarget) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Type != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"type\":"
- out.RawString(prefix)
- v := int32(x.Type)
- if vv, ok := TargetType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"type\":"
+ out.RawString(prefix)
+ v := int32(x.Type)
+ if vv, ok := TargetType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if len(x.Name) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"name\":"
- out.RawString(prefix)
- out.String(x.Name)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"name\":"
+ out.RawString(prefix)
+ out.String(x.Name)
}
out.RawByte('}')
}
@@ -358,15 +354,17 @@ func (x *Chain) MarshalEasyJSON(out *jwriter.Writer) {
switch xx := x.Kind.(type) {
case *Chain_Raw:
{
- if len(xx.Raw) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"raw\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"raw\":"
+ out.RawString(prefix)
+ if xx.Raw != nil {
out.Base64Bytes(xx.Raw)
+ } else {
+ out.String("")
}
}
}
diff --git a/apemanager/grpc/service_frostfs.pb.go b/apemanager/grpc/service_frostfs.pb.go
index 2a30850..7f3ed10 100644
--- a/apemanager/grpc/service_frostfs.pb.go
+++ b/apemanager/grpc/service_frostfs.pb.go
@@ -124,28 +124,24 @@ func (x *AddChainRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Target != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"target\":"
- out.RawString(prefix)
- x.Target.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
}
{
- if x.Chain != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chain\":"
- out.RawString(prefix)
- x.Chain.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"chain\":"
+ out.RawString(prefix)
+ x.Chain.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -348,40 +344,34 @@ func (x *AddChainRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -524,15 +514,17 @@ func (x *AddChainResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.ChainId) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chainId\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chainId\":"
+ out.RawString(prefix)
+ if x.ChainId != nil {
out.Base64Bytes(x.ChainId)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -728,40 +720,34 @@ func (x *AddChainResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -927,27 +913,27 @@ func (x *RemoveChainRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Target != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"target\":"
- out.RawString(prefix)
- x.Target.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
}
{
- if len(x.ChainId) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chainId\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chainId\":"
+ out.RawString(prefix)
+ if x.ChainId != nil {
out.Base64Bytes(x.ChainId)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -1150,40 +1136,34 @@ func (x *RemoveChainRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1488,40 +1468,34 @@ func (x *RemoveChainResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1667,16 +1641,14 @@ func (x *ListChainsRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Target != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"target\":"
- out.RawString(prefix)
- x.Target.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1872,40 +1844,34 @@ func (x *ListChainsRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2054,23 +2020,21 @@ func (x *ListChainsResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Chains) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chains\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Chains {
- if i != 0 {
- out.RawByte(',')
- }
- x.Chains[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"chains\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Chains {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Chains[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -2273,40 +2237,34 @@ func (x *ListChainsResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/container/grpc/service_frostfs.pb.go b/container/grpc/service_frostfs.pb.go
index 4ccb595..cc05dde 100644
--- a/container/grpc/service_frostfs.pb.go
+++ b/container/grpc/service_frostfs.pb.go
@@ -124,28 +124,24 @@ func (x *PutRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Container != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"container\":"
- out.RawString(prefix)
- x.Container.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"container\":"
+ out.RawString(prefix)
+ x.Container.MarshalEasyJSON(out)
}
{
- if x.Signature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -348,40 +344,34 @@ func (x *PutRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -527,16 +517,14 @@ func (x *PutResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ContainerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerId\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"containerId\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -732,40 +720,34 @@ func (x *PutResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -934,28 +916,24 @@ func (x *DeleteRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ContainerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerId\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"containerId\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
}
{
- if x.Signature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1158,40 +1136,34 @@ func (x *DeleteRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1496,40 +1468,34 @@ func (x *DeleteResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1675,16 +1641,14 @@ func (x *GetRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ContainerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerId\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"containerId\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1880,40 +1844,34 @@ func (x *GetRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2105,40 +2063,34 @@ func (x *GetResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Container != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"container\":"
- out.RawString(prefix)
- x.Container.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"container\":"
+ out.RawString(prefix)
+ x.Container.MarshalEasyJSON(out)
}
{
- if x.Signature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
}
{
- if x.SessionToken != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"sessionToken\":"
- out.RawString(prefix)
- x.SessionToken.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2348,40 +2300,34 @@ func (x *GetResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2527,16 +2473,14 @@ func (x *ListRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.OwnerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ownerId\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ownerId\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2732,40 +2676,34 @@ func (x *ListRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2914,23 +2852,21 @@ func (x *ListResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.ContainerIds) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerIds\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.ContainerIds {
- if i != 0 {
- out.RawByte(',')
- }
- x.ContainerIds[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"containerIds\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.ContainerIds {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.ContainerIds[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -3133,40 +3069,34 @@ func (x *ListResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/container/grpc/types_frostfs.pb.go b/container/grpc/types_frostfs.pb.go
index e5da35f..4ca23fa 100644
--- a/container/grpc/types_frostfs.pb.go
+++ b/container/grpc/types_frostfs.pb.go
@@ -119,28 +119,24 @@ func (x *Container_Attribute) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
}
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
}
out.RawByte('}')
}
@@ -389,83 +385,75 @@ func (x *Container) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Version != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"version\":"
- out.RawString(prefix)
- x.Version.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
{
- if x.OwnerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
}
{
- if len(x.Nonce) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"nonce\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"nonce\":"
+ out.RawString(prefix)
+ if x.Nonce != nil {
out.Base64Bytes(x.Nonce)
+ } else {
+ out.String("")
}
}
{
- if x.BasicAcl != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"basicACL\":"
- out.RawString(prefix)
- out.Uint32(x.BasicAcl)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"basicACL\":"
+ out.RawString(prefix)
+ out.Uint32(x.BasicAcl)
}
{
- if len(x.Attributes) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"attributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Attributes {
- if i != 0 {
- out.RawByte(',')
- }
- x.Attributes[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"attributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Attributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Attributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if x.PlacementPolicy != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"placementPolicy\":"
- out.RawString(prefix)
- x.PlacementPolicy.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"placementPolicy\":"
+ out.RawString(prefix)
+ x.PlacementPolicy.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/lock/grpc/types_frostfs.pb.go b/lock/grpc/types_frostfs.pb.go
index 33f22c5..004a01f 100644
--- a/lock/grpc/types_frostfs.pb.go
+++ b/lock/grpc/types_frostfs.pb.go
@@ -103,23 +103,21 @@ func (x *Lock) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Members) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"members\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Members {
- if i != 0 {
- out.RawByte(',')
- }
- x.Members[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"members\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Members {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Members[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/netmap/grpc/service_frostfs.pb.go b/netmap/grpc/service_frostfs.pb.go
index 4d53031..9ebbf98 100644
--- a/netmap/grpc/service_frostfs.pb.go
+++ b/netmap/grpc/service_frostfs.pb.go
@@ -260,40 +260,34 @@ func (x *LocalNodeInfoRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -462,28 +456,24 @@ func (x *LocalNodeInfoResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Version != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"version\":"
- out.RawString(prefix)
- x.Version.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
{
- if x.NodeInfo != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"nodeInfo\":"
- out.RawString(prefix)
- x.NodeInfo.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"nodeInfo\":"
+ out.RawString(prefix)
+ x.NodeInfo.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -686,40 +676,34 @@ func (x *LocalNodeInfoResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1024,40 +1008,34 @@ func (x *NetworkInfoRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1203,16 +1181,14 @@ func (x *NetworkInfoResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.NetworkInfo != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"networkInfo\":"
- out.RawString(prefix)
- x.NetworkInfo.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"networkInfo\":"
+ out.RawString(prefix)
+ x.NetworkInfo.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1408,40 +1384,34 @@ func (x *NetworkInfoResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1746,40 +1716,34 @@ func (x *NetmapSnapshotRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1925,16 +1889,14 @@ func (x *NetmapSnapshotResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Netmap != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"netmap\":"
- out.RawString(prefix)
- x.Netmap.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"netmap\":"
+ out.RawString(prefix)
+ x.Netmap.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2130,40 +2092,34 @@ func (x *NetmapSnapshotResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/netmap/grpc/types_frostfs.pb.go b/netmap/grpc/types_frostfs.pb.go
index a4b10f9..0328531 100644
--- a/netmap/grpc/types_frostfs.pb.go
+++ b/netmap/grpc/types_frostfs.pb.go
@@ -277,76 +277,66 @@ func (x *Filter) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Name) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"name\":"
- out.RawString(prefix)
- out.String(x.Name)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"name\":"
+ out.RawString(prefix)
+ out.String(x.Name)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"op\":"
+ out.RawString(prefix)
+ v := int32(x.Op)
+ if vv, ok := Operation_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
}
{
- if x.Op != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"op\":"
- out.RawString(prefix)
- v := int32(x.Op)
- if vv, ok := Operation_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
- }
- {
- if len(x.Value) != 0 {
- if !first {
+ const prefix string = "\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
out.RawByte(',')
- } else {
- first = false
}
- const prefix string = "\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
- }
- }
- {
- if len(x.Filters) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"filters\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Filters {
- if i != 0 {
- out.RawByte(',')
- }
- x.Filters[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ x.Filters[i].MarshalEasyJSON(out)
}
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -602,69 +592,59 @@ func (x *Selector) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Name) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"name\":"
- out.RawString(prefix)
- out.String(x.Name)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"name\":"
+ out.RawString(prefix)
+ out.String(x.Name)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"count\":"
+ out.RawString(prefix)
+ out.Uint32(x.Count)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"clause\":"
+ out.RawString(prefix)
+ v := int32(x.Clause)
+ if vv, ok := Clause_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if x.Count != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"count\":"
- out.RawString(prefix)
- out.Uint32(x.Count)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"attribute\":"
+ out.RawString(prefix)
+ out.String(x.Attribute)
}
{
- if x.Clause != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"clause\":"
- out.RawString(prefix)
- v := int32(x.Clause)
- if vv, ok := Clause_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
- }
- }
- {
- if len(x.Attribute) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"attribute\":"
- out.RawString(prefix)
- out.String(x.Attribute)
- }
- }
- {
- if len(x.Filter) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"filter\":"
- out.RawString(prefix)
- out.String(x.Filter)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"filter\":"
+ out.RawString(prefix)
+ out.String(x.Filter)
}
out.RawByte('}')
}
@@ -900,52 +880,44 @@ func (x *Replica) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Count != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"count\":"
- out.RawString(prefix)
- out.Uint32(x.Count)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"count\":"
+ out.RawString(prefix)
+ out.Uint32(x.Count)
}
{
- if len(x.Selector) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"selector\":"
- out.RawString(prefix)
- out.String(x.Selector)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"selector\":"
+ out.RawString(prefix)
+ out.String(x.Selector)
}
{
- if x.EcDataCount != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ecDataCount\":"
- out.RawString(prefix)
- out.Uint32(x.EcDataCount)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ecDataCount\":"
+ out.RawString(prefix)
+ out.Uint32(x.EcDataCount)
}
{
- if x.EcParityCount != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ecParityCount\":"
- out.RawString(prefix)
- out.Uint32(x.EcParityCount)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ecParityCount\":"
+ out.RawString(prefix)
+ out.Uint32(x.EcParityCount)
}
out.RawByte('}')
}
@@ -1213,85 +1185,75 @@ func (x *PlacementPolicy) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Replicas) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"replicas\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Replicas {
- if i != 0 {
- out.RawByte(',')
- }
- x.Replicas[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"replicas\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Replicas {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Replicas[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if x.ContainerBackupFactor != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerBackupFactor\":"
- out.RawString(prefix)
- out.Uint32(x.ContainerBackupFactor)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"containerBackupFactor\":"
+ out.RawString(prefix)
+ out.Uint32(x.ContainerBackupFactor)
}
{
- if len(x.Selectors) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"selectors\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Selectors {
- if i != 0 {
- out.RawByte(',')
- }
- x.Selectors[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"selectors\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Selectors {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Selectors[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if len(x.Filters) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"filters\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Filters {
- if i != 0 {
- out.RawByte(',')
- }
- x.Filters[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if x.Unique {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"unique\":"
- out.RawString(prefix)
- out.Bool(x.Unique)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"unique\":"
+ out.RawString(prefix)
+ out.Bool(x.Unique)
}
out.RawByte('}')
}
@@ -1553,47 +1515,41 @@ func (x *NodeInfo_Attribute) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
}
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
}
{
- if len(x.Parents) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"parents\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Parents {
- if i != 0 {
- out.RawByte(',')
- }
- out.String(x.Parents[i])
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"parents\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Parents {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.String(x.Parents[i])
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -1806,70 +1762,66 @@ func (x *NodeInfo) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.PublicKey) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"publicKey\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"publicKey\":"
+ out.RawString(prefix)
+ if x.PublicKey != nil {
out.Base64Bytes(x.PublicKey)
+ } else {
+ out.String("")
}
}
{
- if len(x.Addresses) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"addresses\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Addresses {
- if i != 0 {
- out.RawByte(',')
- }
- out.String(x.Addresses[i])
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"addresses\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Addresses {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.String(x.Addresses[i])
+ }
+ out.RawByte(']')
}
{
- if len(x.Attributes) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"attributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Attributes {
- if i != 0 {
- out.RawByte(',')
- }
- x.Attributes[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"attributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Attributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Attributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if x.State != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"state\":"
- out.RawString(prefix)
- v := int32(x.State)
- if vv, ok := NodeInfo_State_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"state\":"
+ out.RawString(prefix)
+ v := int32(x.State)
+ if vv, ok := NodeInfo_State_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
out.RawByte('}')
@@ -2073,37 +2025,33 @@ func (x *Netmap) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Epoch != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"epoch\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Epoch, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"epoch\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Epoch, 10)
+ out.RawByte('"')
}
{
- if len(x.Nodes) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"nodes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Nodes {
- if i != 0 {
- out.RawByte(',')
- }
- x.Nodes[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"nodes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Nodes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Nodes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -2273,27 +2221,31 @@ func (x *NetworkConfig_Parameter) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ if x.Key != nil {
out.Base64Bytes(x.Key)
+ } else {
+ out.String("")
}
}
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ if x.Value != nil {
out.Base64Bytes(x.Value)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -2434,23 +2386,21 @@ func (x *NetworkConfig) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Parameters) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"parameters\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Parameters {
- if i != 0 {
- out.RawByte(',')
- }
- x.Parameters[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"parameters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Parameters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Parameters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -2649,58 +2599,50 @@ func (x *NetworkInfo) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.CurrentEpoch != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"currentEpoch\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.CurrentEpoch, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"currentEpoch\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.CurrentEpoch, 10)
+ out.RawByte('"')
}
{
- if x.MagicNumber != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"magicNumber\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.MagicNumber, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"magicNumber\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.MagicNumber, 10)
+ out.RawByte('"')
}
{
- if x.MsPerBlock != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"msPerBlock\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.MsPerBlock, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"msPerBlock\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.MsPerBlock, 10)
+ out.RawByte('"')
}
{
- if x.NetworkConfig != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"networkConfig\":"
- out.RawString(prefix)
- x.NetworkConfig.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"networkConfig\":"
+ out.RawString(prefix)
+ x.NetworkConfig.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
index f934f3b..9ee5a3d 100644
--- a/object/grpc/service_frostfs.pb.go
+++ b/object/grpc/service_frostfs.pb.go
@@ -122,28 +122,24 @@ func (x *GetRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Address != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"address\":"
- out.RawString(prefix)
- x.Address.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
}
{
- if x.Raw {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"raw\":"
- out.RawString(prefix)
- out.Bool(x.Raw)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"raw\":"
+ out.RawString(prefix)
+ out.Bool(x.Raw)
}
out.RawByte('}')
}
@@ -345,40 +341,34 @@ func (x *GetRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -570,40 +560,34 @@ func (x *GetResponse_Body_Init) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ObjectId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"objectId\":"
- out.RawString(prefix)
- x.ObjectId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"objectId\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
}
{
- if x.Signature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
}
{
- if x.Header != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"header\":"
- out.RawString(prefix)
- x.Header.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -851,55 +835,51 @@ func (x *GetResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
switch xx := x.ObjectPart.(type) {
case *GetResponse_Body_Init_:
{
- if xx.Init != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"init\":"
- out.RawString(prefix)
- xx.Init.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"init\":"
+ out.RawString(prefix)
+ xx.Init.MarshalEasyJSON(out)
}
case *GetResponse_Body_Chunk:
{
- if len(xx.Chunk) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chunk\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chunk\":"
+ out.RawString(prefix)
+ if xx.Chunk != nil {
out.Base64Bytes(xx.Chunk)
+ } else {
+ out.String("")
}
}
case *GetResponse_Body_SplitInfo:
{
- if xx.SplitInfo != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"splitInfo\":"
- out.RawString(prefix)
- xx.SplitInfo.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"splitInfo\":"
+ out.RawString(prefix)
+ xx.SplitInfo.MarshalEasyJSON(out)
}
case *GetResponse_Body_EcInfo:
{
- if xx.EcInfo != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ecInfo\":"
- out.RawString(prefix)
- xx.EcInfo.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ecInfo\":"
+ out.RawString(prefix)
+ xx.EcInfo.MarshalEasyJSON(out)
}
}
out.RawByte('}')
@@ -1152,40 +1132,34 @@ func (x *GetResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1399,59 +1373,51 @@ func (x *PutRequest_Body_Init) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ObjectId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"objectId\":"
- out.RawString(prefix)
- x.ObjectId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"objectId\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
}
{
- if x.Signature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
}
{
- if x.Header != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"header\":"
- out.RawString(prefix)
- x.Header.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
}
{
- if len(x.CopiesNumber) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"copiesNumber\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.CopiesNumber {
- if i != 0 {
- out.RawByte(',')
- }
- out.Uint32(x.CopiesNumber[i])
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"copiesNumber\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.CopiesNumber {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint32(x.CopiesNumber[i])
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -1666,28 +1632,28 @@ func (x *PutRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
switch xx := x.ObjectPart.(type) {
case *PutRequest_Body_Init_:
{
- if xx.Init != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"init\":"
- out.RawString(prefix)
- xx.Init.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"init\":"
+ out.RawString(prefix)
+ xx.Init.MarshalEasyJSON(out)
}
case *PutRequest_Body_Chunk:
{
- if len(xx.Chunk) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chunk\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chunk\":"
+ out.RawString(prefix)
+ if xx.Chunk != nil {
out.Base64Bytes(xx.Chunk)
+ } else {
+ out.String("")
}
}
}
@@ -1911,40 +1877,34 @@ func (x *PutRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2090,16 +2050,14 @@ func (x *PutResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ObjectId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"objectId\":"
- out.RawString(prefix)
- x.ObjectId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"objectId\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2295,40 +2253,34 @@ func (x *PutResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2474,16 +2426,14 @@ func (x *DeleteRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Address != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"address\":"
- out.RawString(prefix)
- x.Address.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2679,40 +2629,34 @@ func (x *DeleteRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2858,16 +2802,14 @@ func (x *DeleteResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Tombstone != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"tombstone\":"
- out.RawString(prefix)
- x.Tombstone.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"tombstone\":"
+ out.RawString(prefix)
+ x.Tombstone.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -3063,40 +3005,34 @@ func (x *DeleteResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -3282,40 +3218,34 @@ func (x *HeadRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Address != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"address\":"
- out.RawString(prefix)
- x.Address.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
}
{
- if x.MainOnly {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"mainOnly\":"
- out.RawString(prefix)
- out.Bool(x.MainOnly)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"mainOnly\":"
+ out.RawString(prefix)
+ out.Bool(x.MainOnly)
}
{
- if x.Raw {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"raw\":"
- out.RawString(prefix)
- out.Bool(x.Raw)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"raw\":"
+ out.RawString(prefix)
+ out.Bool(x.Raw)
}
out.RawByte('}')
}
@@ -3523,40 +3453,34 @@ func (x *HeadRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -3725,28 +3649,24 @@ func (x *HeaderWithSignature) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Header != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"header\":"
- out.RawString(prefix)
- x.Header.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
}
{
- if x.Signature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -3982,55 +3902,47 @@ func (x *HeadResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
switch xx := x.Head.(type) {
case *HeadResponse_Body_Header:
{
- if xx.Header != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"header\":"
- out.RawString(prefix)
- xx.Header.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ xx.Header.MarshalEasyJSON(out)
}
case *HeadResponse_Body_ShortHeader:
{
- if xx.ShortHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"shortHeader\":"
- out.RawString(prefix)
- xx.ShortHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"shortHeader\":"
+ out.RawString(prefix)
+ xx.ShortHeader.MarshalEasyJSON(out)
}
case *HeadResponse_Body_SplitInfo:
{
- if xx.SplitInfo != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"splitInfo\":"
- out.RawString(prefix)
- xx.SplitInfo.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"splitInfo\":"
+ out.RawString(prefix)
+ xx.SplitInfo.MarshalEasyJSON(out)
}
case *HeadResponse_Body_EcInfo:
{
- if xx.EcInfo != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ecInfo\":"
- out.RawString(prefix)
- xx.EcInfo.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ecInfo\":"
+ out.RawString(prefix)
+ xx.EcInfo.MarshalEasyJSON(out)
}
}
out.RawByte('}')
@@ -4284,40 +4196,34 @@ func (x *HeadResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -4500,45 +4406,39 @@ func (x *SearchRequest_Body_Filter) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.MatchType != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"matchType\":"
- out.RawString(prefix)
- v := int32(x.MatchType)
- if vv, ok := MatchType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"matchType\":"
+ out.RawString(prefix)
+ v := int32(x.MatchType)
+ if vv, ok := MatchType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
}
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
}
out.RawByte('}')
}
@@ -4743,47 +4643,41 @@ func (x *SearchRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ContainerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerId\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"containerId\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
}
{
- if x.Version != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"version\":"
- out.RawString(prefix)
- out.Uint32(x.Version)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ out.Uint32(x.Version)
}
{
- if len(x.Filters) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"filters\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Filters {
- if i != 0 {
- out.RawByte(',')
- }
- x.Filters[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"filters\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Filters {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Filters[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -5007,40 +4901,34 @@ func (x *SearchRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -5189,23 +5077,21 @@ func (x *SearchResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.IdList) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"idList\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.IdList {
- if i != 0 {
- out.RawByte(',')
- }
- x.IdList[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"idList\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.IdList {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.IdList[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -5408,40 +5294,34 @@ func (x *SearchResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -5604,32 +5484,28 @@ func (x *Range) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Offset != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"offset\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Offset, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"offset\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Offset, 10)
+ out.RawByte('"')
}
{
- if x.Length != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"length\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Length, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"length\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Length, 10)
+ out.RawByte('"')
}
out.RawByte('}')
}
@@ -5825,40 +5701,34 @@ func (x *GetRangeRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Address != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"address\":"
- out.RawString(prefix)
- x.Address.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
}
{
- if x.Range != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"range\":"
- out.RawString(prefix)
- x.Range.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"range\":"
+ out.RawString(prefix)
+ x.Range.MarshalEasyJSON(out)
}
{
- if x.Raw {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"raw\":"
- out.RawString(prefix)
- out.Bool(x.Raw)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"raw\":"
+ out.RawString(prefix)
+ out.Bool(x.Raw)
}
out.RawByte('}')
}
@@ -6067,40 +5937,34 @@ func (x *GetRangeRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -6321,42 +6185,40 @@ func (x *GetRangeResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
switch xx := x.RangePart.(type) {
case *GetRangeResponse_Body_Chunk:
{
- if len(xx.Chunk) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chunk\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chunk\":"
+ out.RawString(prefix)
+ if xx.Chunk != nil {
out.Base64Bytes(xx.Chunk)
+ } else {
+ out.String("")
}
}
case *GetRangeResponse_Body_SplitInfo:
{
- if xx.SplitInfo != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"splitInfo\":"
- out.RawString(prefix)
- xx.SplitInfo.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"splitInfo\":"
+ out.RawString(prefix)
+ xx.SplitInfo.MarshalEasyJSON(out)
}
case *GetRangeResponse_Body_EcInfo:
{
- if xx.EcInfo != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ecInfo\":"
- out.RawString(prefix)
- xx.EcInfo.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ecInfo\":"
+ out.RawString(prefix)
+ xx.EcInfo.MarshalEasyJSON(out)
}
}
out.RawByte('}')
@@ -6594,40 +6456,34 @@ func (x *GetRangeResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -6839,63 +6695,59 @@ func (x *GetRangeHashRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Address != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"address\":"
- out.RawString(prefix)
- x.Address.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
}
{
- if len(x.Ranges) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ranges\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Ranges {
- if i != 0 {
- out.RawByte(',')
- }
- x.Ranges[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ranges\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Ranges {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Ranges[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if len(x.Salt) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"salt\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"salt\":"
+ out.RawString(prefix)
+ if x.Salt != nil {
out.Base64Bytes(x.Salt)
+ } else {
+ out.String("")
}
}
{
- if x.Type != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"type\":"
- out.RawString(prefix)
- v := int32(x.Type)
- if vv, ok := grpc.ChecksumType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"type\":"
+ out.RawString(prefix)
+ v := int32(x.Type)
+ if vv, ok := grpc.ChecksumType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
out.RawByte('}')
@@ -7134,40 +6986,34 @@ func (x *GetRangeHashRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -7330,40 +7176,40 @@ func (x *GetRangeHashResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Type != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"type\":"
- out.RawString(prefix)
- v := int32(x.Type)
- if vv, ok := grpc.ChecksumType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"type\":"
+ out.RawString(prefix)
+ v := int32(x.Type)
+ if vv, ok := grpc.ChecksumType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if len(x.HashList) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"hashList\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.HashList {
- if i != 0 {
- out.RawByte(',')
- }
- out.Base64Bytes(x.HashList[i])
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"hashList\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.HashList {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ if x.HashList[i] != nil {
+ out.Base64Bytes(x.HashList[i])
+ } else {
+ out.String("")
+ }
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -7587,40 +7433,34 @@ func (x *GetRangeHashResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -7788,35 +7628,31 @@ func (x *PutSingleRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Object != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"object\":"
- out.RawString(prefix)
- x.Object.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"object\":"
+ out.RawString(prefix)
+ x.Object.MarshalEasyJSON(out)
}
{
- if len(x.CopiesNumber) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"copiesNumber\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.CopiesNumber {
- if i != 0 {
- out.RawByte(',')
- }
- out.Uint32(x.CopiesNumber[i])
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"copiesNumber\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.CopiesNumber {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint32(x.CopiesNumber[i])
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -8033,40 +7869,34 @@ func (x *PutSingleRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -8371,40 +8201,34 @@ func (x *PutSingleResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -8570,27 +8394,27 @@ func (x *PatchRequest_Body_Patch) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.SourceRange != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"sourceRange\":"
- out.RawString(prefix)
- x.SourceRange.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"sourceRange\":"
+ out.RawString(prefix)
+ x.SourceRange.MarshalEasyJSON(out)
}
{
- if len(x.Chunk) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chunk\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"chunk\":"
+ out.RawString(prefix)
+ if x.Chunk != nil {
out.Base64Bytes(x.Chunk)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -8798,59 +8622,51 @@ func (x *PatchRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Address != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"address\":"
- out.RawString(prefix)
- x.Address.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"address\":"
+ out.RawString(prefix)
+ x.Address.MarshalEasyJSON(out)
}
{
- if len(x.NewAttributes) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"newAttributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.NewAttributes {
- if i != 0 {
- out.RawByte(',')
- }
- x.NewAttributes[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"newAttributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.NewAttributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.NewAttributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if x.ReplaceAttributes {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"replaceAttributes\":"
- out.RawString(prefix)
- out.Bool(x.ReplaceAttributes)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"replaceAttributes\":"
+ out.RawString(prefix)
+ out.Bool(x.ReplaceAttributes)
}
{
- if x.Patch != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"patch\":"
- out.RawString(prefix)
- x.Patch.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"patch\":"
+ out.RawString(prefix)
+ x.Patch.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -9073,40 +8889,34 @@ func (x *PatchRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -9252,16 +9062,14 @@ func (x *PatchResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ObjectId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"objectId\":"
- out.RawString(prefix)
- x.ObjectId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"objectId\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -9457,40 +9265,34 @@ func (x *PatchResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/object/grpc/types_frostfs.pb.go b/object/grpc/types_frostfs.pb.go
index 0ee939a..e4a916f 100644
--- a/object/grpc/types_frostfs.pb.go
+++ b/object/grpc/types_frostfs.pb.go
@@ -307,97 +307,83 @@ func (x *ShortHeader) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Version != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"version\":"
- out.RawString(prefix)
- x.Version.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"creationEpoch\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.CreationEpoch, 10)
+ out.RawByte('"')
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"objectType\":"
+ out.RawString(prefix)
+ v := int32(x.ObjectType)
+ if vv, ok := ObjectType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if x.CreationEpoch != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"creationEpoch\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.CreationEpoch, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"payloadLength\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.PayloadLength, 10)
+ out.RawByte('"')
}
{
- if x.OwnerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"payloadHash\":"
+ out.RawString(prefix)
+ x.PayloadHash.MarshalEasyJSON(out)
}
{
- if x.ObjectType != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"objectType\":"
- out.RawString(prefix)
- v := int32(x.ObjectType)
- if vv, ok := ObjectType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
- }
- }
- {
- if x.PayloadLength != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"payloadLength\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.PayloadLength, 10)
- out.RawByte('"')
- }
- }
- {
- if x.PayloadHash != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"payloadHash\":"
- out.RawString(prefix)
- x.PayloadHash.MarshalEasyJSON(out)
- }
- }
- {
- if x.HomomorphicHash != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"homomorphicHash\":"
- out.RawString(prefix)
- x.HomomorphicHash.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"homomorphicHash\":"
+ out.RawString(prefix)
+ x.HomomorphicHash.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -617,28 +603,24 @@ func (x *Header_Attribute) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
}
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
}
out.RawByte('}')
}
@@ -890,82 +872,74 @@ func (x *Header_Split) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Parent != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"parent\":"
- out.RawString(prefix)
- x.Parent.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"parent\":"
+ out.RawString(prefix)
+ x.Parent.MarshalEasyJSON(out)
}
{
- if x.Previous != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"previous\":"
- out.RawString(prefix)
- x.Previous.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"previous\":"
+ out.RawString(prefix)
+ x.Previous.MarshalEasyJSON(out)
}
{
- if x.ParentSignature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"parentSignature\":"
- out.RawString(prefix)
- x.ParentSignature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"parentSignature\":"
+ out.RawString(prefix)
+ x.ParentSignature.MarshalEasyJSON(out)
}
{
- if x.ParentHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"parentHeader\":"
- out.RawString(prefix)
- x.ParentHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"parentHeader\":"
+ out.RawString(prefix)
+ x.ParentHeader.MarshalEasyJSON(out)
}
{
- if len(x.Children) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"children\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Children {
- if i != 0 {
- out.RawByte(',')
- }
- x.Children[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"children\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Children {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Children[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if len(x.SplitId) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"splitID\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"splitID\":"
+ out.RawString(prefix)
+ if x.SplitId != nil {
out.Base64Bytes(x.SplitId)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -1288,107 +1262,99 @@ func (x *Header_EC) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Parent != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"parent\":"
- out.RawString(prefix)
- x.Parent.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"parent\":"
+ out.RawString(prefix)
+ x.Parent.MarshalEasyJSON(out)
}
{
- if x.Index != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"index\":"
- out.RawString(prefix)
- out.Uint32(x.Index)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"index\":"
+ out.RawString(prefix)
+ out.Uint32(x.Index)
}
{
- if x.Total != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"total\":"
- out.RawString(prefix)
- out.Uint32(x.Total)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"total\":"
+ out.RawString(prefix)
+ out.Uint32(x.Total)
}
{
- if x.HeaderLength != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"headerLength\":"
- out.RawString(prefix)
- out.Uint32(x.HeaderLength)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"headerLength\":"
+ out.RawString(prefix)
+ out.Uint32(x.HeaderLength)
}
{
- if len(x.Header) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"header\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ if x.Header != nil {
out.Base64Bytes(x.Header)
+ } else {
+ out.String("")
}
}
{
- if len(x.ParentSplitId) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"parentSplitID\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"parentSplitID\":"
+ out.RawString(prefix)
+ if x.ParentSplitId != nil {
out.Base64Bytes(x.ParentSplitId)
+ } else {
+ out.String("")
}
}
{
- if x.ParentSplitParentId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"parentSplitParentID\":"
- out.RawString(prefix)
- x.ParentSplitParentId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"parentSplitParentID\":"
+ out.RawString(prefix)
+ x.ParentSplitParentId.MarshalEasyJSON(out)
}
{
- if len(x.ParentAttributes) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"parentAttributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.ParentAttributes {
- if i != 0 {
- out.RawByte(',')
- }
- x.ParentAttributes[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"parentAttributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.ParentAttributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.ParentAttributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -1842,164 +1808,140 @@ func (x *Header) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Version != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"version\":"
- out.RawString(prefix)
- x.Version.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"creationEpoch\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.CreationEpoch, 10)
+ out.RawByte('"')
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"payloadLength\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.PayloadLength, 10)
+ out.RawByte('"')
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"payloadHash\":"
+ out.RawString(prefix)
+ x.PayloadHash.MarshalEasyJSON(out)
+ }
+ {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"objectType\":"
+ out.RawString(prefix)
+ v := int32(x.ObjectType)
+ if vv, ok := ObjectType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if x.ContainerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerID\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"homomorphicHash\":"
+ out.RawString(prefix)
+ x.HomomorphicHash.MarshalEasyJSON(out)
}
{
- if x.OwnerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
}
{
- if x.CreationEpoch != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"creationEpoch\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.CreationEpoch, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"attributes\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Attributes {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Attributes[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if x.PayloadLength != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"payloadLength\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.PayloadLength, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"split\":"
+ out.RawString(prefix)
+ x.Split.MarshalEasyJSON(out)
}
{
- if x.PayloadHash != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"payloadHash\":"
- out.RawString(prefix)
- x.PayloadHash.MarshalEasyJSON(out)
- }
- }
- {
- if x.ObjectType != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"objectType\":"
- out.RawString(prefix)
- v := int32(x.ObjectType)
- if vv, ok := ObjectType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
- }
- }
- {
- if x.HomomorphicHash != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"homomorphicHash\":"
- out.RawString(prefix)
- x.HomomorphicHash.MarshalEasyJSON(out)
- }
- }
- {
- if x.SessionToken != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"sessionToken\":"
- out.RawString(prefix)
- x.SessionToken.MarshalEasyJSON(out)
- }
- }
- {
- if len(x.Attributes) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"attributes\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Attributes {
- if i != 0 {
- out.RawByte(',')
- }
- x.Attributes[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
- }
- }
- {
- if x.Split != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"split\":"
- out.RawString(prefix)
- x.Split.MarshalEasyJSON(out)
- }
- }
- {
- if x.Ec != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ec\":"
- out.RawString(prefix)
- x.Ec.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ec\":"
+ out.RawString(prefix)
+ x.Ec.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2310,51 +2252,47 @@ func (x *Object) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ObjectId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"objectID\":"
- out.RawString(prefix)
- x.ObjectId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"objectID\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
}
{
- if x.Signature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
}
{
- if x.Header != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"header\":"
- out.RawString(prefix)
- x.Header.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"header\":"
+ out.RawString(prefix)
+ x.Header.MarshalEasyJSON(out)
}
{
- if len(x.Payload) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"payload\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"payload\":"
+ out.RawString(prefix)
+ if x.Payload != nil {
out.Base64Bytes(x.Payload)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -2550,40 +2488,38 @@ func (x *SplitInfo) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.SplitId) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"splitId\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"splitId\":"
+ out.RawString(prefix)
+ if x.SplitId != nil {
out.Base64Bytes(x.SplitId)
+ } else {
+ out.String("")
}
}
{
- if x.LastPart != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"lastPart\":"
- out.RawString(prefix)
- x.LastPart.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"lastPart\":"
+ out.RawString(prefix)
+ x.LastPart.MarshalEasyJSON(out)
}
{
- if x.Link != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"link\":"
- out.RawString(prefix)
- x.Link.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"link\":"
+ out.RawString(prefix)
+ x.Link.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2768,40 +2704,34 @@ func (x *ECInfo_Chunk) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Id != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"id\":"
- out.RawString(prefix)
- x.Id.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"id\":"
+ out.RawString(prefix)
+ x.Id.MarshalEasyJSON(out)
}
{
- if x.Index != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"index\":"
- out.RawString(prefix)
- out.Uint32(x.Index)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"index\":"
+ out.RawString(prefix)
+ out.Uint32(x.Index)
}
{
- if x.Total != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"total\":"
- out.RawString(prefix)
- out.Uint32(x.Total)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"total\":"
+ out.RawString(prefix)
+ out.Uint32(x.Total)
}
out.RawByte('}')
}
@@ -2964,23 +2894,21 @@ func (x *ECInfo) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Chunks) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"chunks\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Chunks {
- if i != 0 {
- out.RawByte(',')
- }
- x.Chunks[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"chunks\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Chunks {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Chunks[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/refs/grpc/types_frostfs.pb.go b/refs/grpc/types_frostfs.pb.go
index 3ed647c..5a16f8e 100644
--- a/refs/grpc/types_frostfs.pb.go
+++ b/refs/grpc/types_frostfs.pb.go
@@ -193,28 +193,24 @@ func (x *Address) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ContainerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerID\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
}
{
- if x.ObjectId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"objectID\":"
- out.RawString(prefix)
- x.ObjectId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"objectID\":"
+ out.RawString(prefix)
+ x.ObjectId.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -350,15 +346,17 @@ func (x *ObjectID) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ if x.Value != nil {
out.Base64Bytes(x.Value)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -487,15 +485,17 @@ func (x *ContainerID) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ if x.Value != nil {
out.Base64Bytes(x.Value)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -624,15 +624,17 @@ func (x *OwnerID) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ if x.Value != nil {
out.Base64Bytes(x.Value)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -781,28 +783,24 @@ func (x *Version) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Major != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"major\":"
- out.RawString(prefix)
- out.Uint32(x.Major)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"major\":"
+ out.RawString(prefix)
+ out.Uint32(x.Major)
}
{
- if x.Minor != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"minor\":"
- out.RawString(prefix)
- out.Uint32(x.Minor)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"minor\":"
+ out.RawString(prefix)
+ out.Uint32(x.Minor)
}
out.RawByte('}')
}
@@ -992,44 +990,46 @@ func (x *Signature) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ if x.Key != nil {
out.Base64Bytes(x.Key)
+ } else {
+ out.String("")
}
}
{
- if len(x.Sign) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ if x.Sign != nil {
out.Base64Bytes(x.Sign)
+ } else {
+ out.String("")
}
}
{
- if x.Scheme != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"scheme\":"
- out.RawString(prefix)
- v := int32(x.Scheme)
- if vv, ok := SignatureScheme_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"scheme\":"
+ out.RawString(prefix)
+ v := int32(x.Scheme)
+ if vv, ok := SignatureScheme_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
out.RawByte('}')
@@ -1206,27 +1206,31 @@ func (x *SignatureRFC6979) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ if x.Key != nil {
out.Base64Bytes(x.Key)
+ } else {
+ out.String("")
}
}
{
- if len(x.Sign) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ if x.Sign != nil {
out.Base64Bytes(x.Sign)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -1381,32 +1385,32 @@ func (x *Checksum) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Type != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"type\":"
- out.RawString(prefix)
- v := int32(x.Type)
- if vv, ok := ChecksumType_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"type\":"
+ out.RawString(prefix)
+ v := int32(x.Type)
+ if vv, ok := ChecksumType_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if len(x.Sum) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"sum\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sum\":"
+ out.RawString(prefix)
+ if x.Sum != nil {
out.Base64Bytes(x.Sum)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
diff --git a/session/grpc/service_frostfs.pb.go b/session/grpc/service_frostfs.pb.go
index c71325a..6d3ea9f 100644
--- a/session/grpc/service_frostfs.pb.go
+++ b/session/grpc/service_frostfs.pb.go
@@ -121,30 +121,26 @@ func (x *CreateRequest_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.OwnerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ownerId\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ownerId\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
}
{
- if x.Expiration != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"expiration\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Expiration, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"expiration\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Expiration, 10)
+ out.RawByte('"')
}
out.RawByte('}')
}
@@ -354,40 +350,34 @@ func (x *CreateRequest) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -550,27 +540,31 @@ func (x *CreateResponse_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Id) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"id\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"id\":"
+ out.RawString(prefix)
+ if x.Id != nil {
out.Base64Bytes(x.Id)
+ } else {
+ out.String("")
}
}
{
- if len(x.SessionKey) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"sessionKey\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sessionKey\":"
+ out.RawString(prefix)
+ if x.SessionKey != nil {
out.Base64Bytes(x.SessionKey)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -772,40 +766,34 @@ func (x *CreateResponse) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.MetaHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaHeader\":"
- out.RawString(prefix)
- x.MetaHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaHeader\":"
+ out.RawString(prefix)
+ x.MetaHeader.MarshalEasyJSON(out)
}
{
- if x.VerifyHeader != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verifyHeader\":"
- out.RawString(prefix)
- x.VerifyHeader.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"verifyHeader\":"
+ out.RawString(prefix)
+ x.VerifyHeader.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
index e18c1ab..e9f3b42 100644
--- a/session/grpc/types_frostfs.pb.go
+++ b/session/grpc/types_frostfs.pb.go
@@ -182,35 +182,31 @@ func (x *ObjectSessionContext_Target) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Container != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"container\":"
- out.RawString(prefix)
- x.Container.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"container\":"
+ out.RawString(prefix)
+ x.Container.MarshalEasyJSON(out)
}
{
- if len(x.Objects) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"objects\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Objects {
- if i != 0 {
- out.RawByte(',')
- }
- x.Objects[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"objects\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Objects {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Objects[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
@@ -376,33 +372,29 @@ func (x *ObjectSessionContext) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Verb != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verb\":"
- out.RawString(prefix)
- v := int32(x.Verb)
- if vv, ok := ObjectSessionContext_Verb_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verb\":"
+ out.RawString(prefix)
+ v := int32(x.Verb)
+ if vv, ok := ObjectSessionContext_Verb_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if x.Target != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"target\":"
- out.RawString(prefix)
- x.Target.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"target\":"
+ out.RawString(prefix)
+ x.Target.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -634,45 +626,39 @@ func (x *ContainerSessionContext) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Verb != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"verb\":"
- out.RawString(prefix)
- v := int32(x.Verb)
- if vv, ok := ContainerSessionContext_Verb_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"verb\":"
+ out.RawString(prefix)
+ v := int32(x.Verb)
+ if vv, ok := ContainerSessionContext_Verb_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
{
- if x.Wildcard {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"wildcard\":"
- out.RawString(prefix)
- out.Bool(x.Wildcard)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"wildcard\":"
+ out.RawString(prefix)
+ out.Bool(x.Wildcard)
}
{
- if x.ContainerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"containerID\":"
- out.RawString(prefix)
- x.ContainerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"containerID\":"
+ out.RawString(prefix)
+ x.ContainerId.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -869,46 +855,40 @@ func (x *SessionToken_Body_TokenLifetime) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Exp != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"exp\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Exp, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"exp\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Exp, 10)
+ out.RawByte('"')
}
{
- if x.Nbf != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"nbf\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Nbf, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"nbf\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Nbf, 10)
+ out.RawByte('"')
}
{
- if x.Iat != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"iat\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Iat, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"iat\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Iat, 10)
+ out.RawByte('"')
}
out.RawByte('}')
}
@@ -1202,79 +1182,75 @@ func (x *SessionToken_Body) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Id) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"id\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"id\":"
+ out.RawString(prefix)
+ if x.Id != nil {
out.Base64Bytes(x.Id)
+ } else {
+ out.String("")
}
}
{
- if x.OwnerId != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ownerID\":"
- out.RawString(prefix)
- x.OwnerId.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ownerID\":"
+ out.RawString(prefix)
+ x.OwnerId.MarshalEasyJSON(out)
}
{
- if x.Lifetime != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"lifetime\":"
- out.RawString(prefix)
- x.Lifetime.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"lifetime\":"
+ out.RawString(prefix)
+ x.Lifetime.MarshalEasyJSON(out)
}
{
- if len(x.SessionKey) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"sessionKey\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"sessionKey\":"
+ out.RawString(prefix)
+ if x.SessionKey != nil {
out.Base64Bytes(x.SessionKey)
+ } else {
+ out.String("")
}
}
switch xx := x.Context.(type) {
case *SessionToken_Body_Object:
{
- if xx.Object != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"object\":"
- out.RawString(prefix)
- xx.Object.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"object\":"
+ out.RawString(prefix)
+ xx.Object.MarshalEasyJSON(out)
}
case *SessionToken_Body_Container:
{
- if xx.Container != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"container\":"
- out.RawString(prefix)
- xx.Container.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"container\":"
+ out.RawString(prefix)
+ xx.Container.MarshalEasyJSON(out)
}
}
out.RawByte('}')
@@ -1483,28 +1459,24 @@ func (x *SessionToken) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Body != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"body\":"
- out.RawString(prefix)
- x.Body.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"body\":"
+ out.RawString(prefix)
+ x.Body.MarshalEasyJSON(out)
}
{
- if x.Signature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"signature\":"
- out.RawString(prefix)
- x.Signature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"signature\":"
+ out.RawString(prefix)
+ x.Signature.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -1660,28 +1632,24 @@ func (x *XHeader) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.Key) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"key\":"
- out.RawString(prefix)
- out.String(x.Key)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"key\":"
+ out.RawString(prefix)
+ out.String(x.Key)
}
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
- out.String(x.Value)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ out.String(x.Value)
}
out.RawByte('}')
}
@@ -1973,111 +1941,95 @@ func (x *RequestMetaHeader) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Version != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"version\":"
- out.RawString(prefix)
- x.Version.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
{
- if x.Epoch != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"epoch\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Epoch, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"epoch\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Epoch, 10)
+ out.RawByte('"')
}
{
- if x.Ttl != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ttl\":"
- out.RawString(prefix)
- out.Uint32(x.Ttl)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ttl\":"
+ out.RawString(prefix)
+ out.Uint32(x.Ttl)
}
{
- if len(x.XHeaders) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"xHeaders\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.XHeaders {
- if i != 0 {
- out.RawByte(',')
- }
- x.XHeaders[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"xHeaders\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.XHeaders {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.XHeaders[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if x.SessionToken != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"sessionToken\":"
- out.RawString(prefix)
- x.SessionToken.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"sessionToken\":"
+ out.RawString(prefix)
+ x.SessionToken.MarshalEasyJSON(out)
}
{
- if x.BearerToken != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"bearerToken\":"
- out.RawString(prefix)
- x.BearerToken.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"bearerToken\":"
+ out.RawString(prefix)
+ x.BearerToken.MarshalEasyJSON(out)
}
{
- if x.Origin != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"origin\":"
- out.RawString(prefix)
- x.Origin.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
}
{
- if x.MagicNumber != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"magicNumber\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.MagicNumber, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"magicNumber\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.MagicNumber, 10)
+ out.RawByte('"')
}
out.RawByte('}')
}
@@ -2398,85 +2350,73 @@ func (x *ResponseMetaHeader) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Version != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"version\":"
- out.RawString(prefix)
- x.Version.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"version\":"
+ out.RawString(prefix)
+ x.Version.MarshalEasyJSON(out)
}
{
- if x.Epoch != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"epoch\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Epoch, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"epoch\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.Epoch, 10)
+ out.RawByte('"')
}
{
- if x.Ttl != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"ttl\":"
- out.RawString(prefix)
- out.Uint32(x.Ttl)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"ttl\":"
+ out.RawString(prefix)
+ out.Uint32(x.Ttl)
}
{
- if len(x.XHeaders) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"xHeaders\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.XHeaders {
- if i != 0 {
- out.RawByte(',')
- }
- x.XHeaders[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"xHeaders\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.XHeaders {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.XHeaders[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
{
- if x.Origin != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"origin\":"
- out.RawString(prefix)
- x.Origin.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
}
{
- if x.Status != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"status\":"
- out.RawString(prefix)
- x.Status.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"status\":"
+ out.RawString(prefix)
+ x.Status.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -2733,52 +2673,44 @@ func (x *RequestVerificationHeader) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.BodySignature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"bodySignature\":"
- out.RawString(prefix)
- x.BodySignature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"bodySignature\":"
+ out.RawString(prefix)
+ x.BodySignature.MarshalEasyJSON(out)
}
{
- if x.MetaSignature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaSignature\":"
- out.RawString(prefix)
- x.MetaSignature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaSignature\":"
+ out.RawString(prefix)
+ x.MetaSignature.MarshalEasyJSON(out)
}
{
- if x.OriginSignature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"originSignature\":"
- out.RawString(prefix)
- x.OriginSignature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"originSignature\":"
+ out.RawString(prefix)
+ x.OriginSignature.MarshalEasyJSON(out)
}
{
- if x.Origin != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"origin\":"
- out.RawString(prefix)
- x.Origin.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
}
out.RawByte('}')
}
@@ -3000,52 +2932,44 @@ func (x *ResponseVerificationHeader) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.BodySignature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"bodySignature\":"
- out.RawString(prefix)
- x.BodySignature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"bodySignature\":"
+ out.RawString(prefix)
+ x.BodySignature.MarshalEasyJSON(out)
}
{
- if x.MetaSignature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"metaSignature\":"
- out.RawString(prefix)
- x.MetaSignature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"metaSignature\":"
+ out.RawString(prefix)
+ x.MetaSignature.MarshalEasyJSON(out)
}
{
- if x.OriginSignature != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"originSignature\":"
- out.RawString(prefix)
- x.OriginSignature.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"originSignature\":"
+ out.RawString(prefix)
+ x.OriginSignature.MarshalEasyJSON(out)
}
{
- if x.Origin != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"origin\":"
- out.RawString(prefix)
- x.Origin.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"origin\":"
+ out.RawString(prefix)
+ x.Origin.MarshalEasyJSON(out)
}
out.RawByte('}')
}
diff --git a/status/grpc/types_frostfs.pb.go b/status/grpc/types_frostfs.pb.go
index 609fc03..1d8b477 100644
--- a/status/grpc/types_frostfs.pb.go
+++ b/status/grpc/types_frostfs.pb.go
@@ -371,27 +371,27 @@ func (x *Status_Detail) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Id != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"id\":"
- out.RawString(prefix)
- out.Uint32(x.Id)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"id\":"
+ out.RawString(prefix)
+ out.Uint32(x.Id)
}
{
- if len(x.Value) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"value\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"value\":"
+ out.RawString(prefix)
+ if x.Value != nil {
out.Base64Bytes(x.Value)
+ } else {
+ out.String("")
}
}
out.RawByte('}')
@@ -580,47 +580,41 @@ func (x *Status) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.Code != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"code\":"
- out.RawString(prefix)
- out.Uint32(x.Code)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"code\":"
+ out.RawString(prefix)
+ out.Uint32(x.Code)
}
{
- if len(x.Message) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"message\":"
- out.RawString(prefix)
- out.String(x.Message)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"message\":"
+ out.RawString(prefix)
+ out.String(x.Message)
}
{
- if len(x.Details) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"details\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Details {
- if i != 0 {
- out.RawByte(',')
- }
- x.Details[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"details\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Details {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Details[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/tombstone/grpc/types_frostfs.pb.go b/tombstone/grpc/types_frostfs.pb.go
index e5b67d5..acb1836 100644
--- a/tombstone/grpc/types_frostfs.pb.go
+++ b/tombstone/grpc/types_frostfs.pb.go
@@ -144,49 +144,47 @@ func (x *Tombstone) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.ExpirationEpoch != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"expirationEpoch\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.ExpirationEpoch, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"expirationEpoch\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.ExpirationEpoch, 10)
+ out.RawByte('"')
}
{
- if len(x.SplitId) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"splitID\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"splitID\":"
+ out.RawString(prefix)
+ if x.SplitId != nil {
out.Base64Bytes(x.SplitId)
+ } else {
+ out.String("")
}
}
{
- if len(x.Members) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"members\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.Members {
- if i != 0 {
- out.RawByte(',')
- }
- x.Members[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"members\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.Members {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.Members[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/util/proto/marshal_test.go b/util/proto/marshal_test.go
index 8b717be..5498cf9 100644
--- a/util/proto/marshal_test.go
+++ b/util/proto/marshal_test.go
@@ -26,11 +26,37 @@ func nonZero[T protoInt]() T {
func TestStableMarshalSingle(t *testing.T) {
t.Run("empty", func(t *testing.T) {
- input := &generated.Primitives{}
- require.Zero(t, input.StableSize())
+ t.Run("proto", func(t *testing.T) {
+ input := &generated.Primitives{}
+ require.Zero(t, input.StableSize())
- r := input.MarshalProtobuf(nil)
- require.Empty(t, r)
+ r := input.MarshalProtobuf(nil)
+ require.Empty(t, r)
+ })
+ t.Run("json", func(t *testing.T) {
+ input := &generated.Primitives{}
+ r, err := input.MarshalJSON()
+ require.NoError(t, err)
+ require.NotEmpty(t, r)
+
+ var actual test.Primitives
+ require.NoError(t, protojson.Unmarshal(r, &actual))
+
+ t.Run("protojson compatibility", func(t *testing.T) {
+ data, err := protojson.MarshalOptions{EmitUnpopulated: true}.Marshal(&actual)
+ require.NoError(t, err)
+ require.JSONEq(t, string(data), string(r))
+ })
+
+ var actualFrostfs generated.Primitives
+ require.NoError(t, actualFrostfs.UnmarshalJSON(r))
+ if len(actualFrostfs.FieldA) == 0 {
+ actualFrostfs.FieldA = nil
+ }
+ require.Equal(t, input, &actualFrostfs)
+
+ primitivesEqual(t, input, &actual)
+ })
})
marshalCases := []struct {
@@ -77,13 +103,16 @@ func TestStableMarshalSingle(t *testing.T) {
require.NoError(t, protojson.Unmarshal(r, &actual))
t.Run("protojson compatibility", func(t *testing.T) {
- data, err := protojson.Marshal(&actual)
+ data, err := protojson.MarshalOptions{EmitUnpopulated: true}.Marshal(&actual)
require.NoError(t, err)
require.JSONEq(t, string(data), string(r))
})
var actualFrostfs generated.Primitives
require.NoError(t, actualFrostfs.UnmarshalJSON(r))
+ if len(actualFrostfs.FieldA) == 0 {
+ actualFrostfs.FieldA = nil
+ }
require.Equal(t, tc.input, &actualFrostfs)
primitivesEqual(t, tc.input, &actual)
@@ -94,7 +123,10 @@ func TestStableMarshalSingle(t *testing.T) {
func primitivesEqual(t *testing.T, a *generated.Primitives, b *test.Primitives) {
// Compare each field directly, because proto-generated code has private fields.
- require.Equal(t, a.FieldA, b.FieldA)
+ require.Equal(t, len(a.FieldA), len(b.FieldA))
+ if len(a.FieldA) != 0 {
+ require.Equal(t, a.FieldA, b.FieldA)
+ }
require.Equal(t, a.FieldB, b.FieldB)
require.Equal(t, a.FieldC, b.FieldC)
require.Equal(t, a.FieldD, b.FieldD)
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index 3804e46..f979038 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -133,16 +133,14 @@ func (x *Primitives_Aux) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.InnerField != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"innerField\":"
- out.RawString(prefix)
- out.Uint32(x.InnerField)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"innerField\":"
+ out.RawString(prefix)
+ out.Uint32(x.InnerField)
}
out.RawByte('}')
}
@@ -579,187 +577,167 @@ func (x *Primitives) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.FieldA) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldA\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldA\":"
+ out.RawString(prefix)
+ if x.FieldA != nil {
out.Base64Bytes(x.FieldA)
+ } else {
+ out.String("")
}
}
{
- if len(x.FieldB) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldB\":"
- out.RawString(prefix)
- out.String(x.FieldB)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldB\":"
+ out.RawString(prefix)
+ out.String(x.FieldB)
}
{
- if x.FieldC {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldC\":"
- out.RawString(prefix)
- out.Bool(x.FieldC)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldC\":"
+ out.RawString(prefix)
+ out.Bool(x.FieldC)
}
{
- if x.FieldD != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldD\":"
- out.RawString(prefix)
- out.Int32(x.FieldD)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldD\":"
+ out.RawString(prefix)
+ out.Int32(x.FieldD)
}
{
- if x.FieldE != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldE\":"
- out.RawString(prefix)
- out.Uint32(x.FieldE)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldE\":"
+ out.RawString(prefix)
+ out.Uint32(x.FieldE)
}
{
- if x.FieldF != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldF\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.FieldF, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldF\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.FieldF, 10)
+ out.RawByte('"')
}
{
- if x.FieldG != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldG\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldG, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldG\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldG, 10)
+ out.RawByte('"')
}
{
- if x.FieldI != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldI\":"
- out.RawString(prefix)
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldI, 10)
- out.RawByte('"')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldI\":"
+ out.RawString(prefix)
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldI, 10)
+ out.RawByte('"')
}
{
- if x.FieldJ != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldJ\":"
- out.RawString(prefix)
- out.Float64(x.FieldJ)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldJ\":"
+ out.RawString(prefix)
+ out.Float64(x.FieldJ)
}
{
- if x.FieldK != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldK\":"
- out.RawString(prefix)
- out.Uint32(x.FieldK)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldK\":"
+ out.RawString(prefix)
+ out.Uint32(x.FieldK)
}
{
- if x.FieldH != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldH\":"
- out.RawString(prefix)
- v := int32(x.FieldH)
- if vv, ok := Primitives_SomeEnum_name[v]; ok {
- out.String(vv)
- } else {
- out.Int32(v)
- }
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldH\":"
+ out.RawString(prefix)
+ v := int32(x.FieldH)
+ if vv, ok := Primitives_SomeEnum_name[v]; ok {
+ out.String(vv)
+ } else {
+ out.Int32(v)
}
}
switch xx := x.FieldM.(type) {
case *Primitives_FieldMa:
{
- if len(xx.FieldMa) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldMa\":"
- out.RawString(prefix)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldMa\":"
+ out.RawString(prefix)
+ if xx.FieldMa != nil {
out.Base64Bytes(xx.FieldMa)
+ } else {
+ out.String("")
}
}
case *Primitives_FieldMe:
{
- if xx.FieldMe != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldMe\":"
- out.RawString(prefix)
- out.Uint32(xx.FieldMe)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldMe\":"
+ out.RawString(prefix)
+ out.Uint32(xx.FieldMe)
}
case *Primitives_FieldAux:
{
- if xx.FieldAux != nil {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldAux\":"
- out.RawString(prefix)
- xx.FieldAux.MarshalEasyJSON(out)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldAux\":"
+ out.RawString(prefix)
+ xx.FieldAux.MarshalEasyJSON(out)
}
}
out.RawByte('}')
@@ -1067,16 +1045,14 @@ func (x *RepPrimitives_Aux) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if x.InnerField != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"innerField\":"
- out.RawString(prefix)
- out.Uint32(x.InnerField)
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"innerField\":"
+ out.RawString(prefix)
+ out.Uint32(x.InnerField)
}
out.RawByte('}')
}
@@ -1365,162 +1341,150 @@ func (x *RepPrimitives) MarshalEasyJSON(out *jwriter.Writer) {
first := true
out.RawByte('{')
{
- if len(x.FieldA) != 0 {
- if !first {
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
+ }
+ const prefix string = "\"fieldA\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldA {
+ if i != 0 {
out.RawByte(',')
- } else {
- first = false
}
- const prefix string = "\"fieldA\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldA {
- if i != 0 {
- out.RawByte(',')
- }
+ if x.FieldA[i] != nil {
out.Base64Bytes(x.FieldA[i])
+ } else {
+ out.String("")
}
- out.RawByte(']')
}
+ out.RawByte(']')
}
{
- if len(x.FieldB) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldB\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldB {
- if i != 0 {
- out.RawByte(',')
- }
- out.String(x.FieldB[i])
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldB\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldB {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.String(x.FieldB[i])
+ }
+ out.RawByte(']')
}
{
- if len(x.FieldC) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldC\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldC {
- if i != 0 {
- out.RawByte(',')
- }
- out.Int32(x.FieldC[i])
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldC\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldC {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Int32(x.FieldC[i])
+ }
+ out.RawByte(']')
}
{
- if len(x.FieldD) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldD\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldD {
- if i != 0 {
- out.RawByte(',')
- }
- out.Uint32(x.FieldD[i])
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldD\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldD {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.Uint32(x.FieldD[i])
+ }
+ out.RawByte(']')
}
{
- if len(x.FieldE) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldE\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldE {
- if i != 0 {
- out.RawByte(',')
- }
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.FieldE[i], 10)
- out.RawByte('"')
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldE\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldE {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendInt(out.Buffer.Buf, x.FieldE[i], 10)
+ out.RawByte('"')
+ }
+ out.RawByte(']')
}
{
- if len(x.FieldF) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldF\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldF {
- if i != 0 {
- out.RawByte(',')
- }
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldF[i], 10)
- out.RawByte('"')
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldF\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldF {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldF[i], 10)
+ out.RawByte('"')
+ }
+ out.RawByte(']')
}
{
- if len(x.FieldFu) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldFu\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldFu {
- if i != 0 {
- out.RawByte(',')
- }
- out.RawByte('"')
- out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldFu[i], 10)
- out.RawByte('"')
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldFu\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldFu {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ out.RawByte('"')
+ out.Buffer.Buf = strconv.AppendUint(out.Buffer.Buf, x.FieldFu[i], 10)
+ out.RawByte('"')
+ }
+ out.RawByte(']')
}
{
- if len(x.FieldAux) != 0 {
- if !first {
- out.RawByte(',')
- } else {
- first = false
- }
- const prefix string = "\"fieldAux\":"
- out.RawString(prefix)
- out.RawByte('[')
- for i := range x.FieldAux {
- if i != 0 {
- out.RawByte(',')
- }
- x.FieldAux[i].MarshalEasyJSON(out)
- }
- out.RawByte(']')
+ if !first {
+ out.RawByte(',')
+ } else {
+ first = false
}
+ const prefix string = "\"fieldAux\":"
+ out.RawString(prefix)
+ out.RawByte('[')
+ for i := range x.FieldAux {
+ if i != 0 {
+ out.RawByte(',')
+ }
+ x.FieldAux[i].MarshalEasyJSON(out)
+ }
+ out.RawByte(']')
}
out.RawByte('}')
}
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
index 3267955..15facfd 100644
--- a/util/protogen/internalgengo/json.go
+++ b/util/protogen/internalgengo/json.go
@@ -192,14 +192,17 @@ func emitJSONFieldWrite(g *protogen.GeneratedFile, f *protogen.Field, name strin
selector := name + "." + f.GoName
- isNotDefault := notNil
- if f.Desc.IsList() {
- isNotDefault = notEmpty
- } else if f.Desc.Kind() != protoreflect.MessageKind {
- _, isNotDefault = easyprotoKindInfo(f.Desc.Kind())
- }
- g.P("if ", isNotDefault(selector), "{")
- defer g.P("}")
+ // This code is responsible for ignoring default values.
+ // We will restore it after having parametrized JSON marshaling.
+ //
+ // isNotDefault := notNil
+ // if f.Desc.IsList() {
+ // isNotDefault = notEmpty
+ // } else if f.Desc.Kind() != protoreflect.MessageKind {
+ // _, isNotDefault = easyprotoKindInfo(f.Desc.Kind())
+ // }
+ // g.P("if ", isNotDefault(selector), "{")
+ // defer g.P("}")
g.P("if !first { out.RawByte(','); } else { first = false; }")
g.P("const prefix string = ", `"\"`, fieldJSONName(f), `\":"`)
@@ -247,7 +250,10 @@ func emitJSONFieldWrite(g *protogen.GeneratedFile, f *protogen.Field, name strin
case protoreflect.StringKind:
template = "out.String(%s)"
case protoreflect.BytesKind:
- template = "out.Base64Bytes(%s)"
+ g.P("if ", selector, "!= nil {")
+ g.P("out.Base64Bytes(", selector, ")")
+ g.P("} else { out.String(\"\") }")
+ return
case protoreflect.MessageKind:
template = "%s.MarshalEasyJSON(out)"
case protoreflect.GroupKind:
From 29f215756383cf58cd1de326dd1c2961b06ea201 Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Fri, 11 Oct 2024 10:17:42 +0300
Subject: [PATCH 39/42] [#123] protogen: Treat bytes field as non-nullable
In protobuf 3.12 they have added an support for `optional` keyword,
which has made it into the main branch in 3.15.
https://github.com/protocolbuffers/protobuf/blob/main/docs/implementing_proto3_presence.md
https://github.com/protocolbuffers/protobuf/blob/v3.12.0/docs/field_presence.md#presence-in-proto3-apis
This means that without an explicit `optional` keyword field presence
for scalars is not tracked, thus empty string in JSON should be
unmarshaled to a nil byte slice. Relevant decoding code and tests from
protojson:
https://github.com/protocolbuffers/protobuf-go/blob/fb995f184a1719ec42b247a3771d1036d92adf67/internal/impl/message_reflect_field.go#L327
https://github.com/protocolbuffers/protobuf-go/blob/fb995f184a1719ec42b247a3771d1036d92adf67/encoding/protojson/decode_test.go#L134
https://github.com/protocolbuffers/protobuf-go/blob/fb995f184a1719ec42b247a3771d1036d92adf67/encoding/protojson/decode_test.go#L156
We do not support `optional` keyword and the generator will fail if it sees on.
So only implement the default behaviour.
Refs #122
Signed-off-by: Evgenii Stratonikov
---
acl/grpc/types_frostfs.pb.go | 8 ++-
ape/grpc/types_frostfs.pb.go | 8 ++-
apemanager/grpc/service_frostfs.pb.go | 16 +++++-
container/grpc/types_frostfs.pb.go | 8 ++-
netmap/grpc/types_frostfs.pb.go | 24 +++++++--
object/grpc/service_frostfs.pb.go | 48 ++++++++++++++---
object/grpc/types_frostfs.pb.go | 40 ++++++++++++--
refs/grpc/types_frostfs.pb.go | 64 ++++++++++++++++++++---
session/grpc/service_frostfs.pb.go | 16 +++++-
session/grpc/types_frostfs.pb.go | 16 +++++-
status/grpc/types_frostfs.pb.go | 8 ++-
tombstone/grpc/types_frostfs.pb.go | 8 ++-
util/proto/marshal_test.go | 10 +---
util/proto/test/custom/test_frostfs.pb.go | 24 +++++++--
util/protogen/internalgengo/json.go | 12 ++++-
15 files changed, 264 insertions(+), 46 deletions(-)
diff --git a/acl/grpc/types_frostfs.pb.go b/acl/grpc/types_frostfs.pb.go
index e5a6f32..bc90cb7 100644
--- a/acl/grpc/types_frostfs.pb.go
+++ b/acl/grpc/types_frostfs.pb.go
@@ -691,7 +691,13 @@ func (x *EACLRecord_Target) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list [][]byte
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
list = append(list, f)
in.WantComma()
}
diff --git a/ape/grpc/types_frostfs.pb.go b/ape/grpc/types_frostfs.pb.go
index cf9499f..1f2a1a5 100644
--- a/ape/grpc/types_frostfs.pb.go
+++ b/ape/grpc/types_frostfs.pb.go
@@ -401,7 +401,13 @@ func (x *Chain) UnmarshalEasyJSON(in *jlexer.Lexer) {
x.Kind = xx
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
xx.Raw = f
}
}
diff --git a/apemanager/grpc/service_frostfs.pb.go b/apemanager/grpc/service_frostfs.pb.go
index 7f3ed10..b2633e1 100644
--- a/apemanager/grpc/service_frostfs.pb.go
+++ b/apemanager/grpc/service_frostfs.pb.go
@@ -558,7 +558,13 @@ func (x *AddChainResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "chainId":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.ChainId = f
}
}
@@ -974,7 +980,13 @@ func (x *RemoveChainRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "chainId":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.ChainId = f
}
}
diff --git a/container/grpc/types_frostfs.pb.go b/container/grpc/types_frostfs.pb.go
index 4ca23fa..a4f0882 100644
--- a/container/grpc/types_frostfs.pb.go
+++ b/container/grpc/types_frostfs.pb.go
@@ -500,7 +500,13 @@ func (x *Container) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "nonce":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Nonce = f
}
case "basicACL":
diff --git a/netmap/grpc/types_frostfs.pb.go b/netmap/grpc/types_frostfs.pb.go
index 0328531..24003c6 100644
--- a/netmap/grpc/types_frostfs.pb.go
+++ b/netmap/grpc/types_frostfs.pb.go
@@ -1855,7 +1855,13 @@ func (x *NodeInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "publicKey":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.PublicKey = f
}
case "addresses":
@@ -2279,13 +2285,25 @@ func (x *NetworkConfig_Parameter) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "key":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Key = f
}
case "value":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Value = f
}
}
diff --git a/object/grpc/service_frostfs.pb.go b/object/grpc/service_frostfs.pb.go
index 9ee5a3d..a55a41b 100644
--- a/object/grpc/service_frostfs.pb.go
+++ b/object/grpc/service_frostfs.pb.go
@@ -924,7 +924,13 @@ func (x *GetResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
x.ObjectPart = xx
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
xx.Chunk = f
}
case "splitInfo":
@@ -1699,7 +1705,13 @@ func (x *PutRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
x.ObjectPart = xx
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
xx.Chunk = f
}
}
@@ -6254,7 +6266,13 @@ func (x *GetRangeResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
x.RangePart = xx
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
xx.Chunk = f
}
case "splitInfo":
@@ -6802,7 +6820,13 @@ func (x *GetRangeHashRequest_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "salt":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Salt = f
}
case "type":
@@ -7267,7 +7291,13 @@ func (x *GetRangeHashResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list [][]byte
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
list = append(list, f)
in.WantComma()
}
@@ -8455,7 +8485,13 @@ func (x *PatchRequest_Body_Patch) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "chunk":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Chunk = f
}
}
diff --git a/object/grpc/types_frostfs.pb.go b/object/grpc/types_frostfs.pb.go
index e4a916f..a6d4f01 100644
--- a/object/grpc/types_frostfs.pb.go
+++ b/object/grpc/types_frostfs.pb.go
@@ -1015,7 +1015,13 @@ func (x *Header_Split) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "splitID":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.SplitId = f
}
}
@@ -1436,13 +1442,25 @@ func (x *Header_EC) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "header":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Header = f
}
case "parentSplitID":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.ParentSplitId = f
}
case "parentSplitParentID":
@@ -2347,7 +2365,13 @@ func (x *Object) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "payload":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Payload = f
}
}
@@ -2552,7 +2576,13 @@ func (x *SplitInfo) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "splitId":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.SplitId = f
}
case "lastPart":
diff --git a/refs/grpc/types_frostfs.pb.go b/refs/grpc/types_frostfs.pb.go
index 5a16f8e..f2a2663 100644
--- a/refs/grpc/types_frostfs.pb.go
+++ b/refs/grpc/types_frostfs.pb.go
@@ -390,7 +390,13 @@ func (x *ObjectID) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "value":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Value = f
}
}
@@ -529,7 +535,13 @@ func (x *ContainerID) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "value":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Value = f
}
}
@@ -668,7 +680,13 @@ func (x *OwnerID) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "value":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Value = f
}
}
@@ -1063,13 +1081,25 @@ func (x *Signature) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "key":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Key = f
}
case "signature":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Sign = f
}
case "scheme":
@@ -1264,13 +1294,25 @@ func (x *SignatureRFC6979) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "key":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Key = f
}
case "signature":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Sign = f
}
}
@@ -1466,7 +1508,13 @@ func (x *Checksum) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "sum":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Sum = f
}
}
diff --git a/session/grpc/service_frostfs.pb.go b/session/grpc/service_frostfs.pb.go
index 6d3ea9f..26213b9 100644
--- a/session/grpc/service_frostfs.pb.go
+++ b/session/grpc/service_frostfs.pb.go
@@ -598,13 +598,25 @@ func (x *CreateResponse_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "id":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Id = f
}
case "sessionKey":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.SessionKey = f
}
}
diff --git a/session/grpc/types_frostfs.pb.go b/session/grpc/types_frostfs.pb.go
index e9f3b42..542a02b 100644
--- a/session/grpc/types_frostfs.pb.go
+++ b/session/grpc/types_frostfs.pb.go
@@ -1284,7 +1284,13 @@ func (x *SessionToken_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "id":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Id = f
}
case "ownerID":
@@ -1304,7 +1310,13 @@ func (x *SessionToken_Body) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "sessionKey":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.SessionKey = f
}
case "object":
diff --git a/status/grpc/types_frostfs.pb.go b/status/grpc/types_frostfs.pb.go
index 1d8b477..6c62a0f 100644
--- a/status/grpc/types_frostfs.pb.go
+++ b/status/grpc/types_frostfs.pb.go
@@ -439,7 +439,13 @@ func (x *Status_Detail) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "value":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.Value = f
}
}
diff --git a/tombstone/grpc/types_frostfs.pb.go b/tombstone/grpc/types_frostfs.pb.go
index acb1836..e56832a 100644
--- a/tombstone/grpc/types_frostfs.pb.go
+++ b/tombstone/grpc/types_frostfs.pb.go
@@ -231,7 +231,13 @@ func (x *Tombstone) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "splitID":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.SplitId = f
}
case "members":
diff --git a/util/proto/marshal_test.go b/util/proto/marshal_test.go
index 5498cf9..29af711 100644
--- a/util/proto/marshal_test.go
+++ b/util/proto/marshal_test.go
@@ -50,9 +50,6 @@ func TestStableMarshalSingle(t *testing.T) {
var actualFrostfs generated.Primitives
require.NoError(t, actualFrostfs.UnmarshalJSON(r))
- if len(actualFrostfs.FieldA) == 0 {
- actualFrostfs.FieldA = nil
- }
require.Equal(t, input, &actualFrostfs)
primitivesEqual(t, input, &actual)
@@ -110,9 +107,6 @@ func TestStableMarshalSingle(t *testing.T) {
var actualFrostfs generated.Primitives
require.NoError(t, actualFrostfs.UnmarshalJSON(r))
- if len(actualFrostfs.FieldA) == 0 {
- actualFrostfs.FieldA = nil
- }
require.Equal(t, tc.input, &actualFrostfs)
primitivesEqual(t, tc.input, &actual)
@@ -124,9 +118,7 @@ func TestStableMarshalSingle(t *testing.T) {
func primitivesEqual(t *testing.T, a *generated.Primitives, b *test.Primitives) {
// Compare each field directly, because proto-generated code has private fields.
require.Equal(t, len(a.FieldA), len(b.FieldA))
- if len(a.FieldA) != 0 {
- require.Equal(t, a.FieldA, b.FieldA)
- }
+ require.Equal(t, a.FieldA, b.FieldA)
require.Equal(t, a.FieldB, b.FieldB)
require.Equal(t, a.FieldC, b.FieldC)
require.Equal(t, a.FieldD, b.FieldD)
diff --git a/util/proto/test/custom/test_frostfs.pb.go b/util/proto/test/custom/test_frostfs.pb.go
index f979038..5ef95a6 100644
--- a/util/proto/test/custom/test_frostfs.pb.go
+++ b/util/proto/test/custom/test_frostfs.pb.go
@@ -771,7 +771,13 @@ func (x *Primitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
case "fieldA":
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
x.FieldA = f
}
case "fieldB":
@@ -903,7 +909,13 @@ func (x *Primitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
x.FieldM = xx
{
var f []byte
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
xx.FieldMa = f
}
case "fieldMe":
@@ -1520,7 +1532,13 @@ func (x *RepPrimitives) UnmarshalEasyJSON(in *jlexer.Lexer) {
var list [][]byte
in.Delim('[')
for !in.IsDelim(']') {
- f = in.Bytes()
+ {
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ f = tmp
+ }
list = append(list, f)
in.WantComma()
}
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
index 15facfd..55c9cd3 100644
--- a/util/protogen/internalgengo/json.go
+++ b/util/protogen/internalgengo/json.go
@@ -129,7 +129,17 @@ func emitJSONFieldRead(g *protogen.GeneratedFile, f *protogen.Field, name string
case protoreflect.StringKind:
template = "%s = in.String()"
case protoreflect.BytesKind:
- template = "%s = in.Bytes()"
+ // Since some time ago proto3 support optional keyword, thus the presence is not tracked by default:
+ // https://github.com/protocolbuffers/protobuf-go/blob/fb995f184a1719ec42b247a3771d1036d92adf67/internal/impl/message_reflect_field.go#L327
+ // We do not explicitly support `optional` keyword, protoc will fail on such fileds.
+ // Thus, treat empty string as `[]byte(nil)`.
+ template = `{
+ tmp := in.Bytes()
+ if len(tmp) == 0 {
+ tmp = nil
+ }
+ %s = tmp
+ }`
case protoreflect.MessageKind:
if f.Desc.IsList() {
g.P("f = ", fieldType(g, f)[2:], "{}")
From f0fc40e116d13869bb8a21761749d7666137e15b Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov
Date: Fri, 11 Oct 2024 10:28:55 +0300
Subject: [PATCH 40/42] [#123] Resolve funlen linter issue
Signed-off-by: Evgenii Stratonikov
---
util/protogen/internalgengo/json.go | 34 ++++++++++++++++-------------
1 file changed, 19 insertions(+), 15 deletions(-)
diff --git a/util/protogen/internalgengo/json.go b/util/protogen/internalgengo/json.go
index 55c9cd3..20730a6 100644
--- a/util/protogen/internalgengo/json.go
+++ b/util/protogen/internalgengo/json.go
@@ -70,6 +70,24 @@ func emitJSONParseInteger(g *protogen.GeneratedFile, ident string, method string
g.P(ident, " := ", typ, "(v)")
}
+func emitJSONReadEnum(g *protogen.GeneratedFile, name string, enumType string) {
+ g.P(`switch v := in.Interface().(type) {
+ case string:
+ if vv, ok := `+enumType+`_value[v]; ok {
+ `+name+` = `+enumType+`(vv)
+ break
+ }
+ vv, err := `, strconvPackage.Ident("ParseInt"), `(v, 10, 32)
+ if err != nil {
+ in.AddError(err)
+ return
+ }
+ `+name+` = `+enumType+`(vv)
+ case float64:
+ `+name+` = `+enumType+`(v)
+ }`)
+}
+
func emitJSONFieldRead(g *protogen.GeneratedFile, f *protogen.Field, name string) {
g.P("{")
defer g.P("}")
@@ -94,21 +112,7 @@ func emitJSONFieldRead(g *protogen.GeneratedFile, f *protogen.Field, name string
enumType := fieldType(g, f).String()
g.P("var parsedValue " + enumType)
- g.P(`switch v := in.Interface().(type) {
- case string:
- if vv, ok := `+enumType+`_value[v]; ok {
- parsedValue = `+enumType+`(vv)
- break
- }
- vv, err := `, strconvPackage.Ident("ParseInt"), `(v, 10, 32)
- if err != nil {
- in.AddError(err)
- return
- }
- parsedValue = `+enumType+`(vv)
- case float64:
- parsedValue = `+enumType+`(v)
- }`)
+ emitJSONReadEnum(g, "parsedValue", enumType)
template = "%s = parsedValue"
case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind:
emitJSONParseInteger(g, "pv", "ParseInt", 32, "int32")
From 2bdee4c9e6d9d6d1b9a85f11b3943d966c9e5569 Mon Sep 17 00:00:00 2001
From: Vitaliy Potyarkin
Date: Wed, 6 Nov 2024 13:37:41 +0300
Subject: [PATCH 41/42] [#126] Stop using obsolete .github directory
This commit is a part of multi-repo cleanup effort:
https://git.frostfs.info/TrueCloudLab/frostfs-infra/issues/136
Signed-off-by: Vitaliy Potyarkin
---
.../ISSUE_TEMPLATE/bug_report.md | 0
.../ISSUE_TEMPLATE/config.yml | 0
.../ISSUE_TEMPLATE/feature_request.md | 0
.forgejo/logo.svg | 70 +++++++++++++++++++
.github/CODEOWNERS | 1 -
CODEOWNERS | 1 +
CONTRIBUTING.md | 5 +-
README.md | 2 +-
docs/release-instruction.md | 8 +--
9 files changed, 79 insertions(+), 8 deletions(-)
rename {.github => .forgejo}/ISSUE_TEMPLATE/bug_report.md (100%)
rename {.github => .forgejo}/ISSUE_TEMPLATE/config.yml (100%)
rename {.github => .forgejo}/ISSUE_TEMPLATE/feature_request.md (100%)
create mode 100644 .forgejo/logo.svg
delete mode 100644 .github/CODEOWNERS
create mode 100644 CODEOWNERS
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.forgejo/ISSUE_TEMPLATE/bug_report.md
similarity index 100%
rename from .github/ISSUE_TEMPLATE/bug_report.md
rename to .forgejo/ISSUE_TEMPLATE/bug_report.md
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.forgejo/ISSUE_TEMPLATE/config.yml
similarity index 100%
rename from .github/ISSUE_TEMPLATE/config.yml
rename to .forgejo/ISSUE_TEMPLATE/config.yml
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.forgejo/ISSUE_TEMPLATE/feature_request.md
similarity index 100%
rename from .github/ISSUE_TEMPLATE/feature_request.md
rename to .forgejo/ISSUE_TEMPLATE/feature_request.md
diff --git a/.forgejo/logo.svg b/.forgejo/logo.svg
new file mode 100644
index 0000000..148c359
--- /dev/null
+++ b/.forgejo/logo.svg
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index b3c6cfa..0000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1 +0,0 @@
-* @TrueCloudLab/storage-core @TrueCloudLab/storage-services @TrueCloudLab/committers
diff --git a/CODEOWNERS b/CODEOWNERS
new file mode 100644
index 0000000..276d26f
--- /dev/null
+++ b/CODEOWNERS
@@ -0,0 +1 @@
+.* @TrueCloudLab/storage-core @TrueCloudLab/storage-services @TrueCloudLab/committers
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index dd360b5..eb8061d 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -25,7 +25,8 @@ Start by forking the `frostfs-api-go` repository, make changes in a branch and t
send a pull request. We encourage pull requests to discuss code changes. Here
are the steps in details:
-### Set up your GitHub Repository
+### Set up your repository
+
Fork [FrostFS node upstream](https://git.frostfs.info/TrueCloudLab/frostfs-api-go/fork) source
repository to your own personal repository. Copy the URL of your fork (you will
need it for the `git clone` command below).
@@ -86,7 +87,7 @@ $ git push origin feature/123-something_awesome
```
### Create a Pull Request
-Pull requests can be created via GitHub. Refer to [this
+Pull requests can be created via git.frostfs.info. Refer to [this
document](https://help.github.com/articles/creating-a-pull-request/) for
detailed steps on how to create a pull request. After a Pull Request gets peer
reviewed and approved, it will be merged.
diff --git a/README.md b/README.md
index a6e7b6f..4ea5d8a 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
Low-level Golang API for FrostFS
diff --git a/docs/release-instruction.md b/docs/release-instruction.md
index 4134f1c..d9b4e90 100644
--- a/docs/release-instruction.md
+++ b/docs/release-instruction.md
@@ -35,11 +35,11 @@ Tag a release (must be signed) and push it:
$ git tag -s vX.Y.Z[-rc.N] && git push origin vX.Y.Z[-rc.N]
```
-## Make a Github release
+## Make a proper release
-Using Github's web interface create a new release based on just created tag
+Using git.frostfs.info web interface create a new release based on just created tag
with the same changes from changelog and publish it.
-## Close github milestone
+## Close milestone
-Close corresponding vX.Y.Z github milestone.
+Close corresponding vX.Y.Z milestone.
From 557267a07beb045d8848b0be3d96ace72d6b70ce Mon Sep 17 00:00:00 2001
From: Vitaliy Potyarkin
Date: Tue, 10 Dec 2024 12:37:53 +0300
Subject: [PATCH 42/42] [#126] Refine CODEOWNERS settings
Signed-off-by: Vitaliy Potyarkin
---
CODEOWNERS | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/CODEOWNERS b/CODEOWNERS
index 276d26f..b428c89 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -1 +1,2 @@
-.* @TrueCloudLab/storage-core @TrueCloudLab/storage-services @TrueCloudLab/committers
+.* @TrueCloudLab/storage-core-committers @TrueCloudLab/storage-core-developers @TrueCloudLab/storage-services-committers @TrueCloudLab/storage-services-developers
+.forgejo/.* @potyarkin