nameservice: queryRecords filter by attributes

This commit is contained in:
nabarun 2022-04-13 17:33:42 +05:30
parent 8f5449f397
commit d762ce98b3
6 changed files with 743 additions and 84 deletions

View File

@ -116,7 +116,14 @@ func (q queryResolver) LookupNames(ctx context.Context, names []string) ([]*Name
func (q queryResolver) QueryRecords(ctx context.Context, attributes []*KeyValueInput, all *bool) ([]*Record, error) {
nsQueryClient := nstypes.NewQueryClient(q.ctx)
res, err := nsQueryClient.ListRecords(context.Background(), &nstypes.QueryListRecordsRequest{})
res, err := nsQueryClient.ListRecords(
context.Background(),
&nstypes.QueryListRecordsRequest{
Attributes: parseRequestAttributes(attributes),
},
)
if err != nil {
return nil, err
}

View File

@ -266,3 +266,26 @@ func mapToKeyValuePairs(attrs map[string]interface{}) ([]*KeyValue, error) {
return kvPairs, nil
}
func parseRequestAttributes(attrs []*KeyValueInput) []*nstypes.QueryListRecordsRequest_KeyValueInput {
kvPairs := []*nstypes.QueryListRecordsRequest_KeyValueInput{}
for _, value := range attrs {
kvPair := &nstypes.QueryListRecordsRequest_KeyValueInput{
Key: value.Key,
Value: &nstypes.QueryListRecordsRequest_ValueInput{},
}
if value.Value.String != nil {
kvPair.Value.String_ = *value.Value.String
}
if value.Value.Int != nil {
kvPair.Value.Int = int64(*value.Value.Int)
}
kvPairs = append(kvPairs, kvPair)
}
return kvPairs
}

View File

@ -68,8 +68,18 @@ message QueryParamsResponse{
// QueryListRecordsRequest is request type for nameservice records list
message QueryListRecordsRequest{
message ValueInput {
string string = 1;
int64 int = 2;
}
message KeyValueInput {
string key = 1;
ValueInput value = 2;
}
repeated KeyValueInput attributes = 1;
// pagination defines an optional pagination for the request.
cosmos.base.query.v1beta1.PageRequest pagination = 1;
cosmos.base.query.v1beta1.PageRequest pagination = 2;
}
// QueryListRecordsResponse is response type for nameservice records list

View File

@ -2,11 +2,18 @@ package keeper
import (
"context"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/tharsis/ethermint/x/nameservice/types"
)
// BondIDAttributeName denotes the record bond ID.
const BondIDAttributeName = "bondId"
// ExpiryTimeAttributeName denotes the record expiry time.
const ExpiryTimeAttributeName = "expiryTime"
type Querier struct {
Keeper
}
@ -19,9 +26,19 @@ func (q Querier) Params(c context.Context, _ *types.QueryParamsRequest) (*types.
return &types.QueryParamsResponse{Params: &params}, nil
}
func (q Querier) ListRecords(c context.Context, _ *types.QueryListRecordsRequest) (*types.QueryListRecordsResponse, error) {
func (q Querier) ListRecords(c context.Context, req *types.QueryListRecordsRequest) (*types.QueryListRecordsResponse, error) {
ctx := sdk.UnwrapSDKContext(c)
records := q.Keeper.ListRecords(ctx)
attributes := req.GetAttributes()
records := []types.Record{}
if len(attributes) > 0 {
records = q.Keeper.MatchRecords(ctx, func(record *types.RecordType) bool {
return MatchOnAttributes(record, attributes)
})
} else {
records = q.Keeper.ListRecords(ctx)
}
return &types.QueryListRecordsResponse{Records: records}, nil
}
@ -95,3 +112,78 @@ func (q Querier) GetAuthorityExpiryQueue(c context.Context, _ *types.QueryGetAut
authorities := q.Keeper.GetAuthorityExpiryQueue(ctx)
return &types.QueryGetAuthorityExpiryQueueResponse{Authorities: authorities}, nil
}
func matchOnRecordField(record *types.RecordType, attr *types.QueryListRecordsRequest_KeyValueInput) (fieldFound bool, matched bool) {
fieldFound = false
matched = true
switch attr.Key {
case BondIDAttributeName:
{
fieldFound = true
if record.BondId != attr.Value.GetString_() {
matched = false
return
}
}
case ExpiryTimeAttributeName:
{
fieldFound = true
if record.ExpiryTime != attr.Value.GetString_() {
matched = false
return
}
}
}
return
}
func MatchOnAttributes(record *types.RecordType, attributes []*types.QueryListRecordsRequest_KeyValueInput) bool {
// Filter deleted records.
if record.Deleted {
return false
}
recAttrs := record.Attributes
for _, attr := range attributes {
// First try matching on record struct fields.
fieldFound, matched := matchOnRecordField(record, attr)
if fieldFound {
if !matched {
return false
}
continue
}
recAttrVal, recAttrFound := recAttrs[attr.Key]
if !recAttrFound {
return false
}
if attr.Value.Int != 0 {
recAttrValInt, ok := recAttrVal.(int)
if !ok || int(attr.Value.GetInt()) != recAttrValInt {
return false
}
}
if attr.Value.String_ != "" {
recAttrValString, ok := recAttrVal.(string)
if !ok {
return false
}
if attr.Value.GetString_() != recAttrValString {
return false
}
}
// TODO: Handle other attribute value types.
}
return true
}

View File

@ -127,6 +127,29 @@ func (k Keeper) ListRecords(ctx sdk.Context) []types.Record {
return records
}
// MatchRecords - get all matching records.
func (k Keeper) MatchRecords(ctx sdk.Context, matchFn func(*types.RecordType) bool) []types.Record {
var records []types.Record
store := ctx.KVStore(k.storeKey)
itr := sdk.KVStorePrefixIterator(store, PrefixCIDToRecordIndex)
defer itr.Close()
for ; itr.Valid(); itr.Next() {
bz := store.Get(itr.Key())
if bz != nil {
var obj types.Record
k.cdc.MustUnmarshal(bz, &obj)
record := obj.ToRecordType()
// record := recordObjToRecord(store, codec, obj)
if matchFn(&record) {
records = append(records, obj)
}
}
}
return records
}
func (k Keeper) GetRecordExpiryQueue(ctx sdk.Context) []*types.ExpiryQueueRecord {
var records []*types.ExpiryQueueRecord
@ -200,7 +223,8 @@ func (k Keeper) processRecord(ctx sdk.Context, record *types.RecordType, isRenew
}
record.CreateTime = ctx.BlockHeader().Time.Format(time.RFC3339)
record.ExpiryTime = ctx.BlockHeader().Time.Add(params.RecordRentDuration).Format(time.RFC3339)
// record.ExpiryTime = ctx.BlockHeader().Time.Add(params.RecordRentDuration).Format(time.RFC3339)
record.ExpiryTime = ctx.BlockHeader().Time.Add(time.Minute).Format(time.RFC3339)
record.Deleted = false
k.PutRecord(ctx, record.ToRecordObj())

View File

@ -116,8 +116,9 @@ func (m *QueryParamsResponse) GetParams() *Params {
// QueryListRecordsRequest is request type for nameservice records list
type QueryListRecordsRequest struct {
Attributes []*QueryListRecordsRequest_KeyValueInput `protobuf:"bytes,1,rep,name=attributes,proto3" json:"attributes,omitempty"`
// pagination defines an optional pagination for the request.
Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"`
Pagination *query.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"`
}
func (m *QueryListRecordsRequest) Reset() { *m = QueryListRecordsRequest{} }
@ -153,6 +154,13 @@ func (m *QueryListRecordsRequest) XXX_DiscardUnknown() {
var xxx_messageInfo_QueryListRecordsRequest proto.InternalMessageInfo
func (m *QueryListRecordsRequest) GetAttributes() []*QueryListRecordsRequest_KeyValueInput {
if m != nil {
return m.Attributes
}
return nil
}
func (m *QueryListRecordsRequest) GetPagination() *query.PageRequest {
if m != nil {
return m.Pagination
@ -160,6 +168,110 @@ func (m *QueryListRecordsRequest) GetPagination() *query.PageRequest {
return nil
}
type QueryListRecordsRequest_ValueInput struct {
String_ string `protobuf:"bytes,1,opt,name=string,proto3" json:"string,omitempty"`
Int int64 `protobuf:"varint,2,opt,name=int,proto3" json:"int,omitempty"`
}
func (m *QueryListRecordsRequest_ValueInput) Reset() { *m = QueryListRecordsRequest_ValueInput{} }
func (m *QueryListRecordsRequest_ValueInput) String() string { return proto.CompactTextString(m) }
func (*QueryListRecordsRequest_ValueInput) ProtoMessage() {}
func (*QueryListRecordsRequest_ValueInput) Descriptor() ([]byte, []int) {
return fileDescriptor_73d2465766c8f876, []int{2, 0}
}
func (m *QueryListRecordsRequest_ValueInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryListRecordsRequest_ValueInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryListRecordsRequest_ValueInput.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *QueryListRecordsRequest_ValueInput) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryListRecordsRequest_ValueInput.Merge(m, src)
}
func (m *QueryListRecordsRequest_ValueInput) XXX_Size() int {
return m.Size()
}
func (m *QueryListRecordsRequest_ValueInput) XXX_DiscardUnknown() {
xxx_messageInfo_QueryListRecordsRequest_ValueInput.DiscardUnknown(m)
}
var xxx_messageInfo_QueryListRecordsRequest_ValueInput proto.InternalMessageInfo
func (m *QueryListRecordsRequest_ValueInput) GetString_() string {
if m != nil {
return m.String_
}
return ""
}
func (m *QueryListRecordsRequest_ValueInput) GetInt() int64 {
if m != nil {
return m.Int
}
return 0
}
type QueryListRecordsRequest_KeyValueInput struct {
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Value *QueryListRecordsRequest_ValueInput `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}
func (m *QueryListRecordsRequest_KeyValueInput) Reset() { *m = QueryListRecordsRequest_KeyValueInput{} }
func (m *QueryListRecordsRequest_KeyValueInput) String() string { return proto.CompactTextString(m) }
func (*QueryListRecordsRequest_KeyValueInput) ProtoMessage() {}
func (*QueryListRecordsRequest_KeyValueInput) Descriptor() ([]byte, []int) {
return fileDescriptor_73d2465766c8f876, []int{2, 1}
}
func (m *QueryListRecordsRequest_KeyValueInput) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *QueryListRecordsRequest_KeyValueInput) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_QueryListRecordsRequest_KeyValueInput.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *QueryListRecordsRequest_KeyValueInput) XXX_Merge(src proto.Message) {
xxx_messageInfo_QueryListRecordsRequest_KeyValueInput.Merge(m, src)
}
func (m *QueryListRecordsRequest_KeyValueInput) XXX_Size() int {
return m.Size()
}
func (m *QueryListRecordsRequest_KeyValueInput) XXX_DiscardUnknown() {
xxx_messageInfo_QueryListRecordsRequest_KeyValueInput.DiscardUnknown(m)
}
var xxx_messageInfo_QueryListRecordsRequest_KeyValueInput proto.InternalMessageInfo
func (m *QueryListRecordsRequest_KeyValueInput) GetKey() string {
if m != nil {
return m.Key
}
return ""
}
func (m *QueryListRecordsRequest_KeyValueInput) GetValue() *QueryListRecordsRequest_ValueInput {
if m != nil {
return m.Value
}
return nil
}
// QueryListRecordsResponse is response type for nameservice records list
type QueryListRecordsResponse struct {
Records []Record `protobuf:"bytes,1,rep,name=records,proto3" json:"records"`
@ -1174,6 +1286,8 @@ func init() {
proto.RegisterType((*QueryParamsRequest)(nil), "vulcanize.nameservice.v1beta1.QueryParamsRequest")
proto.RegisterType((*QueryParamsResponse)(nil), "vulcanize.nameservice.v1beta1.QueryParamsResponse")
proto.RegisterType((*QueryListRecordsRequest)(nil), "vulcanize.nameservice.v1beta1.QueryListRecordsRequest")
proto.RegisterType((*QueryListRecordsRequest_ValueInput)(nil), "vulcanize.nameservice.v1beta1.QueryListRecordsRequest.ValueInput")
proto.RegisterType((*QueryListRecordsRequest_KeyValueInput)(nil), "vulcanize.nameservice.v1beta1.QueryListRecordsRequest.KeyValueInput")
proto.RegisterType((*QueryListRecordsResponse)(nil), "vulcanize.nameservice.v1beta1.QueryListRecordsResponse")
proto.RegisterType((*QueryRecordByIdRequest)(nil), "vulcanize.nameservice.v1beta1.QueryRecordByIdRequest")
proto.RegisterType((*QueryRecordByIdResponse)(nil), "vulcanize.nameservice.v1beta1.QueryRecordByIdResponse")
@ -1202,84 +1316,90 @@ func init() {
}
var fileDescriptor_73d2465766c8f876 = []byte{
// 1218 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4d, 0x6c, 0xdc, 0x44,
0x14, 0xce, 0x6c, 0x9a, 0x94, 0xbc, 0x40, 0x42, 0x86, 0x88, 0xa6, 0x6e, 0xbb, 0x09, 0x6e, 0x7e,
0x36, 0x90, 0xb5, 0xb3, 0x29, 0x4d, 0xdb, 0x54, 0x20, 0xb2, 0x21, 0x44, 0xad, 0x0a, 0x22, 0x06,
0x29, 0x88, 0x03, 0x95, 0x77, 0x3d, 0x6c, 0x4c, 0x77, 0x3d, 0x5b, 0xff, 0xa4, 0x5d, 0xaa, 0x5e,
0x38, 0xf4, 0x8c, 0xc4, 0x19, 0x04, 0x12, 0xa7, 0x4a, 0x85, 0x6b, 0xef, 0x5c, 0x22, 0x4e, 0x95,
0xe0, 0xc0, 0x29, 0xa0, 0x04, 0x89, 0x7b, 0x8f, 0x9c, 0x90, 0x67, 0xc6, 0x8e, 0x9d, 0xdd, 0xc4,
0xf6, 0x36, 0x95, 0x38, 0xc5, 0x9e, 0x79, 0xdf, 0x7b, 0xdf, 0xf7, 0xde, 0xcc, 0xf3, 0xdb, 0xc0,
0xec, 0x96, 0x57, 0xaf, 0xea, 0x96, 0xf9, 0x25, 0x51, 0x2d, 0xbd, 0x41, 0x1c, 0x62, 0x6f, 0x99,
0x55, 0xa2, 0x6e, 0x95, 0x2a, 0xc4, 0xd5, 0x4b, 0xea, 0x6d, 0x8f, 0xd8, 0x2d, 0xa5, 0x69, 0x53,
0x97, 0xe2, 0x73, 0xa1, 0xa9, 0x12, 0x31, 0x55, 0x84, 0xa9, 0xa4, 0x1e, 0xed, 0x29, 0x0a, 0x61,
0xfe, 0xa4, 0xb3, 0x35, 0x4a, 0x6b, 0x75, 0xa2, 0xea, 0x4d, 0x53, 0xd5, 0x2d, 0x8b, 0xba, 0xba,
0x6b, 0x52, 0xcb, 0x11, 0xbb, 0xaf, 0x57, 0xa9, 0xd3, 0xa0, 0x8e, 0x5a, 0xd1, 0x1d, 0xc2, 0x69,
0x84, 0xae, 0x9a, 0x7a, 0xcd, 0xb4, 0x98, 0xb1, 0xb0, 0x1d, 0xad, 0xd1, 0x1a, 0x65, 0x8f, 0xaa,
0xff, 0x24, 0x56, 0xf3, 0x51, 0x0f, 0x01, 0xb6, 0x4a, 0x4d, 0x81, 0x92, 0x47, 0x01, 0xaf, 0xfb,
0x7e, 0x3f, 0xd4, 0x6d, 0xbd, 0xe1, 0x68, 0xe4, 0xb6, 0x47, 0x1c, 0x57, 0xfe, 0x18, 0x5e, 0x89,
0xad, 0x3a, 0x4d, 0x6a, 0x39, 0x04, 0xbf, 0x05, 0xfd, 0x4d, 0xb6, 0x32, 0x86, 0x26, 0x50, 0x61,
0x70, 0x61, 0x4a, 0x39, 0x32, 0x1b, 0x8a, 0x80, 0x0b, 0x90, 0xac, 0xc3, 0x29, 0xe6, 0xf5, 0x86,
0xe9, 0xb8, 0x1a, 0xa9, 0x52, 0xdb, 0x08, 0x02, 0xe2, 0xf7, 0x00, 0xf6, 0x05, 0x09, 0xef, 0xd3,
0x0a, 0xe7, 0xae, 0xf8, 0xdc, 0x15, 0x5e, 0x84, 0x7d, 0xcf, 0x35, 0x22, 0xb0, 0x5a, 0x04, 0x29,
0x3f, 0x44, 0x30, 0xd6, 0x1e, 0x43, 0xd0, 0x5f, 0x85, 0x93, 0x36, 0x5f, 0x1a, 0x43, 0x13, 0xbd,
0x29, 0xf8, 0x73, 0x07, 0xe5, 0x13, 0xdb, 0x3b, 0xe3, 0x3d, 0x5a, 0x80, 0xc5, 0x6b, 0x31, 0xae,
0x39, 0xc6, 0x75, 0x26, 0x91, 0x2b, 0xe7, 0x10, 0x23, 0x5b, 0x80, 0x57, 0x19, 0x57, 0x11, 0xa6,
0x75, 0xcd, 0x08, 0xd2, 0x31, 0x04, 0x39, 0xd3, 0x60, 0x69, 0x18, 0xd0, 0x72, 0xa6, 0x21, 0x7f,
0x26, 0x32, 0x17, 0xb5, 0x14, 0xa2, 0x56, 0xa0, 0x9f, 0x13, 0x4b, 0x59, 0x93, 0x98, 0x26, 0x01,
0x95, 0x5d, 0x90, 0x62, 0xfe, 0xcb, 0xd4, 0x32, 0x0e, 0x65, 0x73, 0xa0, 0x58, 0xb9, 0xae, 0x8b,
0xf5, 0x08, 0xc1, 0x99, 0x8e, 0x61, 0xff, 0xa7, 0xf5, 0x9a, 0x04, 0x79, 0x8d, 0xb8, 0x1f, 0xe8,
0x0d, 0xf2, 0x11, 0x0f, 0xfc, 0x3e, 0x35, 0xbc, 0x3a, 0x29, 0xeb, 0x75, 0xdd, 0xaa, 0x06, 0x0a,
0xe5, 0x26, 0x9c, 0x3f, 0xd2, 0x4a, 0x88, 0xbb, 0x06, 0x2f, 0x54, 0xf8, 0x52, 0xa0, 0xae, 0x98,
0xa0, 0x6e, 0xb9, 0x5a, 0xa5, 0x9e, 0xe5, 0x06, 0x8e, 0x42, 0xb8, 0xfc, 0x0f, 0x82, 0xa1, 0xf8,
0x26, 0xbe, 0x01, 0x2f, 0xea, 0x7c, 0xe5, 0xa6, 0xef, 0x8a, 0x17, 0xaf, 0x3c, 0xfb, 0x74, 0x67,
0x7c, 0xea, 0x0b, 0x87, 0x5a, 0x4b, 0xb2, 0xd8, 0xf5, 0x69, 0xca, 0x13, 0x2d, 0xbd, 0x51, 0x8f,
0x2f, 0x69, 0x83, 0x91, 0x37, 0xfc, 0x00, 0xc1, 0x49, 0x11, 0x6d, 0xac, 0x97, 0x71, 0x3d, 0x1d,
0xcb, 0x5f, 0xc0, 0x70, 0x85, 0x9a, 0x56, 0x79, 0xdd, 0xcf, 0xfe, 0xd3, 0x9d, 0xf1, 0x73, 0x3c,
0x90, 0xc0, 0x05, 0x41, 0x82, 0xd7, 0x87, 0x7f, 0x8e, 0x17, 0x6a, 0xa6, 0xbb, 0xe9, 0x55, 0x94,
0x2a, 0x6d, 0xa8, 0xa2, 0x4b, 0xf1, 0x3f, 0x45, 0xc7, 0xb8, 0xa5, 0xba, 0xad, 0x26, 0x71, 0x98,
0x47, 0x47, 0x0b, 0x82, 0xcb, 0x44, 0x1c, 0x18, 0xff, 0x76, 0xfb, 0xcc, 0x9e, 0x53, 0x17, 0x79,
0x84, 0xe0, 0x6c, 0xe7, 0x38, 0xa2, 0x78, 0xef, 0x42, 0x1f, 0xab, 0x90, 0xa8, 0x5c, 0x21, 0xa1,
0x72, 0xbe, 0x8b, 0x55, 0xcb, 0xb5, 0x5b, 0xe2, 0x68, 0x72, 0xf0, 0xf1, 0x1d, 0xcc, 0x19, 0x18,
0x61, 0x74, 0x37, 0x36, 0xa9, 0x19, 0x26, 0x03, 0xc3, 0x89, 0xfd, 0xd2, 0x6b, 0xec, 0x59, 0xfe,
0x16, 0x89, 0x76, 0x2f, 0x2c, 0x85, 0x9c, 0x07, 0x08, 0x86, 0xfc, 0xfd, 0x9b, 0xba, 0xe7, 0x6e,
0x52, 0xdb, 0x74, 0x5b, 0x22, 0x79, 0x73, 0x29, 0x84, 0x2d, 0x07, 0x98, 0x72, 0x49, 0x54, 0x7e,
0x96, 0x57, 0xde, 0x8a, 0x6e, 0x06, 0xf5, 0x8f, 0x2f, 0x6a, 0x2f, 0xc5, 0xdf, 0x65, 0x18, 0xe2,
0x79, 0xa7, 0xf4, 0x96, 0xd7, 0xdc, 0xb0, 0x2d, 0xfc, 0x32, 0xf4, 0xde, 0xb1, 0x2d, 0x21, 0xc2,
0x7f, 0x94, 0x37, 0x44, 0xd7, 0x0c, 0x6d, 0x22, 0x9f, 0xa7, 0x7d, 0xc5, 0x83, 0x0b, 0xb3, 0x29,
0xb8, 0xf3, 0xba, 0x8a, 0xe4, 0x9c, 0x87, 0x61, 0xd1, 0x8d, 0x1c, 0x5a, 0xdf, 0x22, 0x9d, 0xa3,
0x7f, 0x12, 0x76, 0xe2, 0xc0, 0x28, 0xfa, 0x75, 0xec, 0xa2, 0x13, 0x87, 0x3d, 0xb8, 0x0a, 0xa7,
0x99, 0xe7, 0x35, 0x22, 0x3e, 0x5c, 0xab, 0x77, 0x9b, 0xa6, 0xdd, 0x5a, 0xf7, 0x88, 0x47, 0x8e,
0xed, 0x64, 0x3f, 0x46, 0xf0, 0xda, 0xa1, 0x51, 0x42, 0x25, 0xd7, 0x0f, 0x36, 0xde, 0xf9, 0x04,
0x29, 0x31, 0x27, 0x4c, 0xd5, 0xf1, 0x77, 0xdf, 0x2b, 0x30, 0xd2, 0x16, 0xa6, 0xed, 0xd3, 0x34,
0x0a, 0x7d, 0x5b, 0x7a, 0xdd, 0x23, 0x63, 0xb9, 0x89, 0xde, 0xc2, 0x80, 0xc6, 0x5f, 0xe4, 0xcf,
0xc5, 0x75, 0x5e, 0x23, 0x6e, 0x78, 0xd6, 0x9e, 0x47, 0x76, 0x7f, 0x41, 0x30, 0x79, 0x54, 0xa0,
0x30, 0xc1, 0x1a, 0x0c, 0x06, 0x57, 0xcd, 0x24, 0xdd, 0x27, 0x39, 0xea, 0xe4, 0xd8, 0x12, 0xbd,
0xf0, 0xef, 0x30, 0xf4, 0x31, 0x15, 0xf8, 0x3b, 0x04, 0xfd, 0x7c, 0x86, 0xc3, 0xa5, 0x04, 0x72,
0xed, 0x43, 0xa4, 0xb4, 0x90, 0x05, 0xc2, 0x79, 0xc8, 0xc5, 0xaf, 0x7e, 0xfb, 0xfb, 0x9b, 0xdc,
0x0c, 0x9e, 0x4a, 0x18, 0xa4, 0xf9, 0x44, 0x89, 0x7f, 0x42, 0x30, 0x18, 0x99, 0xf4, 0xf0, 0x62,
0x9a, 0x90, 0xed, 0xe3, 0xa7, 0x74, 0x29, 0x33, 0x4e, 0xf0, 0x55, 0x18, 0xdf, 0x02, 0x9e, 0x4e,
0xe0, 0x1b, 0xdc, 0x86, 0x9f, 0x11, 0x0c, 0x84, 0x57, 0x0f, 0x5f, 0x4c, 0x13, 0xb6, 0x6d, 0x3a,
0x94, 0x16, 0xb3, 0xc2, 0x04, 0xd9, 0x0b, 0x8c, 0x6c, 0x11, 0xbf, 0x91, 0x8e, 0xac, 0x7a, 0xcf,
0x34, 0xee, 0xe3, 0x5f, 0x11, 0x8c, 0x84, 0x8c, 0x83, 0x11, 0x0d, 0x5f, 0xc9, 0x42, 0x21, 0x36,
0x4d, 0x4a, 0x4b, 0xdd, 0x40, 0x85, 0x82, 0xb7, 0x99, 0x82, 0xcb, 0x78, 0x31, 0x9d, 0x82, 0x62,
0xa5, 0x55, 0xac, 0x50, 0xcb, 0x28, 0x9a, 0x06, 0x17, 0xf3, 0x3b, 0x82, 0x33, 0x47, 0x0c, 0x67,
0x78, 0x39, 0x81, 0x5b, 0xf2, 0xf8, 0x27, 0x95, 0x9f, 0xc5, 0x45, 0xc6, 0x53, 0x25, 0xc6, 0x22,
0xfc, 0x18, 0xc1, 0xf0, 0x81, 0x51, 0x05, 0x2f, 0xa5, 0x3d, 0xd2, 0xed, 0x73, 0x94, 0x74, 0xb5,
0x2b, 0xac, 0x20, 0x3f, 0xc7, 0xc8, 0x4f, 0xe3, 0xc9, 0x34, 0xbf, 0x85, 0xf1, 0x0f, 0x08, 0xfa,
0xd8, 0x30, 0x82, 0xe7, 0xd3, 0x04, 0x8d, 0x4e, 0x38, 0x52, 0x29, 0x03, 0x22, 0xe3, 0x15, 0xb8,
0xe3, 0xa3, 0xd4, 0x7b, 0xfe, 0xd6, 0x7d, 0xfc, 0x3d, 0x82, 0x81, 0xfd, 0x89, 0xa4, 0x98, 0x2a,
0x39, 0x81, 0xb9, 0x74, 0x31, 0x93, 0x79, 0xe6, 0x46, 0x58, 0x67, 0x48, 0xfc, 0x23, 0x02, 0x88,
0xcc, 0x2d, 0x4a, 0xba, 0x3b, 0x16, 0xd8, 0xa7, 0xed, 0x28, 0x07, 0x47, 0x9e, 0x0c, 0xed, 0x8f,
0x41, 0xf1, 0x36, 0x82, 0xd1, 0x8e, 0xf3, 0xcd, 0xe5, 0x34, 0x04, 0x3a, 0x21, 0xa5, 0x77, 0xba,
0x45, 0x86, 0x22, 0xde, 0x64, 0x22, 0x14, 0x3c, 0x97, 0xaa, 0xa9, 0x14, 0x09, 0x73, 0xe1, 0xb7,
0x92, 0x53, 0x87, 0xcd, 0x13, 0x57, 0x53, 0x72, 0xea, 0x04, 0x96, 0x56, 0x9e, 0x01, 0x1c, 0x6a,
0xba, 0xc4, 0x34, 0x95, 0xb0, 0x9a, 0xa0, 0x29, 0x1c, 0xf8, 0x85, 0xac, 0xf2, 0xf5, 0xed, 0xdd,
0x3c, 0x7a, 0xb2, 0x9b, 0x47, 0x7f, 0xed, 0xe6, 0xd1, 0xd7, 0x7b, 0xf9, 0x9e, 0x27, 0x7b, 0xf9,
0x9e, 0x3f, 0xf6, 0xf2, 0x3d, 0x9f, 0xce, 0x47, 0x7e, 0xae, 0xb9, 0x9b, 0xba, 0xed, 0x98, 0x8e,
0x4a, 0xdc, 0x4d, 0x62, 0x37, 0x4c, 0xcb, 0x55, 0xef, 0xc6, 0xdc, 0xb3, 0x1f, 0x6f, 0x95, 0x7e,
0xf6, 0x2f, 0xa6, 0x0b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x7c, 0xa9, 0x7f, 0x91, 0x5f, 0x13,
0x00, 0x00,
// 1313 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4f, 0x6c, 0xdc, 0xc4,
0x17, 0xce, 0x64, 0x9b, 0xf4, 0x97, 0xb7, 0xbf, 0x26, 0x64, 0x88, 0xda, 0xd4, 0x4d, 0x37, 0xc5,
0xcd, 0x9f, 0x0d, 0x64, 0xed, 0x6c, 0x4a, 0xd3, 0x36, 0x15, 0x88, 0x6c, 0x1a, 0xa2, 0x94, 0x82,
0x88, 0x41, 0x04, 0x71, 0xa0, 0xf2, 0xee, 0x0e, 0x1b, 0x93, 0x5d, 0xcf, 0xd6, 0x1e, 0x27, 0xdd,
0x56, 0xbd, 0x70, 0x28, 0x57, 0x24, 0xce, 0x20, 0x90, 0x38, 0x55, 0x02, 0xae, 0xbd, 0x73, 0x89,
0x38, 0x55, 0x82, 0x03, 0xa7, 0x80, 0x12, 0x24, 0xee, 0x3d, 0x72, 0x42, 0x1e, 0x8f, 0xbd, 0x76,
0xb2, 0x89, 0xbd, 0x9b, 0x20, 0x71, 0x8a, 0x77, 0xe6, 0xfd, 0xf9, 0xbe, 0xf7, 0x66, 0x9e, 0x3f,
0x07, 0xa6, 0x36, 0x9d, 0x6a, 0x49, 0x37, 0x8d, 0x07, 0x44, 0x35, 0xf5, 0x1a, 0xb1, 0x89, 0xb5,
0x69, 0x94, 0x88, 0xba, 0x99, 0x2f, 0x12, 0xa6, 0xe7, 0xd5, 0x7b, 0x0e, 0xb1, 0x1a, 0x4a, 0xdd,
0xa2, 0x8c, 0xe2, 0x8b, 0x81, 0xa9, 0x12, 0x32, 0x55, 0x84, 0xa9, 0xa4, 0x1e, 0x1d, 0x29, 0xec,
0xc2, 0xe3, 0x49, 0x23, 0x15, 0x4a, 0x2b, 0x55, 0xa2, 0xea, 0x75, 0x43, 0xd5, 0x4d, 0x93, 0x32,
0x9d, 0x19, 0xd4, 0xb4, 0xc5, 0xee, 0xcb, 0x25, 0x6a, 0xd7, 0xa8, 0xad, 0x16, 0x75, 0x9b, 0x78,
0x30, 0x82, 0x50, 0x75, 0xbd, 0x62, 0x98, 0xdc, 0x58, 0xd8, 0x0e, 0x55, 0x68, 0x85, 0xf2, 0x47,
0xd5, 0x7d, 0x12, 0xab, 0x99, 0x70, 0x04, 0xdf, 0xb7, 0x44, 0x0d, 0xe1, 0x25, 0x0f, 0x01, 0x5e,
0x75, 0xe3, 0xbe, 0xab, 0x5b, 0x7a, 0xcd, 0xd6, 0xc8, 0x3d, 0x87, 0xd8, 0x4c, 0x7e, 0x1f, 0x5e,
0x8c, 0xac, 0xda, 0x75, 0x6a, 0xda, 0x04, 0xbf, 0x06, 0xbd, 0x75, 0xbe, 0x32, 0x8c, 0x2e, 0xa1,
0x6c, 0x7a, 0x76, 0x5c, 0x39, 0xb2, 0x1a, 0x8a, 0x70, 0x17, 0x4e, 0xf2, 0xe7, 0x29, 0x38, 0xc7,
0xc3, 0xde, 0x31, 0x6c, 0xa6, 0x91, 0x12, 0xb5, 0xca, 0x7e, 0x46, 0x5c, 0x06, 0xd0, 0x19, 0xb3,
0x8c, 0xa2, 0xc3, 0x88, 0x1b, 0x3e, 0x95, 0x4d, 0xcf, 0xde, 0x8a, 0x09, 0x7f, 0x48, 0x2c, 0xe5,
0x2d, 0xd2, 0xf8, 0x40, 0xaf, 0x3a, 0x64, 0xc5, 0xac, 0x3b, 0x4c, 0x0b, 0xc5, 0xc5, 0x6f, 0x02,
0x34, 0xeb, 0x36, 0xdc, 0xcd, 0x49, 0x4c, 0x28, 0x5e, 0x89, 0x14, 0xb7, 0x44, 0x8a, 0xd7, 0xeb,
0x26, 0x81, 0x0a, 0x11, 0x51, 0xb5, 0x90, 0xa7, 0x54, 0x00, 0x68, 0x66, 0xc0, 0x23, 0xd0, 0x6b,
0x33, 0xcb, 0x30, 0x2b, 0xbc, 0x2c, 0x7d, 0x85, 0x53, 0xdb, 0x3b, 0xa3, 0x48, 0x13, 0x6b, 0xf8,
0x2c, 0xa4, 0x0c, 0x93, 0xf1, 0x64, 0x29, 0xb1, 0xe5, 0x2e, 0x48, 0x0f, 0xe0, 0x4c, 0x04, 0x28,
0x7e, 0x01, 0x52, 0x1b, 0xa4, 0xe1, 0xc5, 0xd0, 0xdc, 0x47, 0xbc, 0x06, 0x3d, 0x9b, 0xee, 0xbe,
0x40, 0xba, 0xd0, 0x61, 0x3d, 0x42, 0xc5, 0xf0, 0xe2, 0xc9, 0x4f, 0x10, 0x0c, 0x1f, 0xb4, 0x16,
0x5d, 0x5e, 0x82, 0xd3, 0x96, 0xb7, 0x24, 0xfa, 0x10, 0xd7, 0x66, 0x2f, 0x00, 0xe7, 0xd6, 0xa5,
0xf9, 0xbe, 0x78, 0xb9, 0x45, 0xad, 0x27, 0x63, 0x6b, 0xed, 0x61, 0x08, 0x17, 0x5b, 0xce, 0xc2,
0x59, 0x8e, 0x55, 0xa4, 0x69, 0xac, 0x94, 0xfd, 0x43, 0xd3, 0x0f, 0xdd, 0x46, 0x59, 0x14, 0xac,
0xdb, 0x28, 0xcb, 0x1f, 0x8b, 0xf3, 0x15, 0xb6, 0x14, 0xa4, 0x16, 0xa1, 0xd7, 0x03, 0x96, 0xf0,
0xe8, 0x46, 0x38, 0x09, 0x57, 0x99, 0x81, 0x14, 0x89, 0x5f, 0xa0, 0x66, 0xf9, 0x50, 0x34, 0x27,
0x75, 0xd8, 0xe4, 0xef, 0x11, 0x5c, 0x68, 0x99, 0xf6, 0x3f, 0xda, 0xaf, 0x31, 0x90, 0x97, 0x09,
0x7b, 0x47, 0xaf, 0x91, 0xf7, 0xbc, 0xc4, 0x6f, 0xd3, 0xb2, 0x53, 0x25, 0x05, 0xbd, 0xaa, 0x9b,
0x25, 0x9f, 0xa1, 0x5c, 0x87, 0xcb, 0x47, 0x5a, 0x09, 0x72, 0x2b, 0xf0, 0xbf, 0xa2, 0xb7, 0xe4,
0xb3, 0xcb, 0xc5, 0xb0, 0x5b, 0x28, 0x95, 0xa8, 0x63, 0x32, 0x3f, 0x50, 0xe0, 0x2e, 0xff, 0x85,
0xa0, 0x3f, 0xba, 0x89, 0xef, 0xc0, 0xff, 0x75, 0x6f, 0xe5, 0xae, 0x1b, 0x4a, 0xdc, 0xdf, 0xa9,
0xe7, 0x3b, 0xa3, 0xe3, 0x9f, 0xda, 0xd4, 0x9c, 0x97, 0xc5, 0xae, 0x0b, 0x53, 0xbe, 0xd4, 0xd0,
0x6b, 0xd5, 0xe8, 0x92, 0x96, 0x0e, 0xfd, 0xc2, 0x8f, 0x11, 0x9c, 0x16, 0xd9, 0x86, 0x53, 0x1c,
0xeb, 0xf9, 0x48, 0xfd, 0x7c, 0x84, 0x8b, 0xd4, 0x30, 0x0b, 0xab, 0x6e, 0xf5, 0x9f, 0xef, 0x8c,
0x5e, 0xf4, 0x12, 0x09, 0x3f, 0x3f, 0x89, 0xff, 0xf3, 0xc9, 0xef, 0xa3, 0xd9, 0x8a, 0xc1, 0xd6,
0x9d, 0xa2, 0x52, 0xa2, 0x35, 0x55, 0x0c, 0x73, 0xef, 0x4f, 0xce, 0x2e, 0x6f, 0xa8, 0xac, 0x51,
0x27, 0x36, 0x8f, 0x68, 0x6b, 0x7e, 0x72, 0x99, 0x88, 0x03, 0xe3, 0xde, 0x6e, 0x17, 0xd9, 0xbe,
0x59, 0x1b, 0x3d, 0x98, 0xe8, 0x38, 0x07, 0x73, 0xa4, 0x75, 0x1e, 0xd1, 0xbc, 0x5b, 0xd0, 0xc3,
0x3b, 0x24, 0x3a, 0x97, 0x8d, 0xe9, 0x9c, 0x1b, 0x62, 0xc9, 0x64, 0x56, 0x43, 0x1c, 0x4d, 0xcf,
0xf9, 0xe4, 0x0e, 0xe6, 0x24, 0x0c, 0x72, 0xb8, 0x6b, 0xeb, 0xd4, 0x08, 0x8a, 0x81, 0xe1, 0x54,
0xb3, 0xf5, 0x1a, 0x7f, 0x96, 0xbf, 0x42, 0xe2, 0xad, 0x28, 0x2c, 0x05, 0x9d, 0xc7, 0x08, 0xfa,
0xdd, 0xfd, 0xbb, 0xba, 0xc3, 0xd6, 0xa9, 0x65, 0xb0, 0x86, 0x28, 0xde, 0x74, 0x02, 0x62, 0x0b,
0xbe, 0x4f, 0x21, 0x2f, 0x3a, 0x3f, 0xe5, 0x75, 0xde, 0x0c, 0x6f, 0xfa, 0xfd, 0x8f, 0x2e, 0x6a,
0x67, 0xa2, 0xbf, 0x65, 0xe8, 0xf7, 0xea, 0x4e, 0xe9, 0x86, 0x53, 0x5f, 0xb3, 0x4c, 0xf7, 0xdd,
0xb1, 0x65, 0x99, 0xfe, 0xbb, 0x63, 0xcb, 0x32, 0xe5, 0x35, 0x31, 0x35, 0x03, 0x9b, 0xd0, 0x5b,
0xbc, 0xc9, 0x38, 0x3d, 0x3b, 0x95, 0x00, 0xbb, 0xd7, 0x57, 0x51, 0x9c, 0xcb, 0x30, 0x20, 0xa6,
0x91, 0x4d, 0xab, 0x9b, 0xa4, 0x75, 0xf6, 0x0f, 0x83, 0x49, 0xec, 0x1b, 0x85, 0x45, 0x44, 0x07,
0x93, 0x38, 0x98, 0xc1, 0x25, 0x38, 0xcf, 0x23, 0x2f, 0x13, 0xf1, 0xe2, 0x5a, 0xba, 0x5f, 0x37,
0xac, 0xc6, 0xaa, 0x43, 0x1c, 0x72, 0x62, 0x27, 0xfb, 0x29, 0x82, 0x97, 0x0e, 0xcd, 0x12, 0x30,
0xb9, 0xbd, 0x7f, 0xf0, 0xce, 0xc4, 0x50, 0x89, 0x04, 0xe1, 0xac, 0x4e, 0x7e, 0xfa, 0xde, 0x80,
0xc1, 0x03, 0x69, 0x0e, 0xbc, 0x9a, 0x86, 0x9a, 0xc2, 0x22, 0x95, 0xed, 0xf3, 0x55, 0xc1, 0x27,
0xe2, 0x3a, 0x2f, 0x13, 0x16, 0x9c, 0xb5, 0x7f, 0xa3, 0xba, 0x3f, 0x21, 0x18, 0x3b, 0x2a, 0x51,
0x50, 0x60, 0x0d, 0xd2, 0xfe, 0x55, 0x33, 0x48, 0xe7, 0x45, 0x0e, 0x07, 0x39, 0xb1, 0x42, 0xcf,
0xfe, 0x3d, 0x00, 0x3d, 0x9c, 0x05, 0xfe, 0x1a, 0x41, 0xaf, 0x27, 0x75, 0x71, 0x3e, 0x89, 0x44,
0x8b, 0x68, 0x6d, 0x69, 0xb6, 0x1d, 0x17, 0x0f, 0x87, 0x9c, 0xfb, 0xec, 0x97, 0x3f, 0xbf, 0xec,
0x9e, 0xc4, 0xe3, 0x31, 0xdf, 0x1b, 0x9e, 0xf0, 0xc6, 0x3f, 0x20, 0x48, 0x87, 0x94, 0x1e, 0x9e,
0xeb, 0x4c, 0x48, 0x4a, 0xd7, 0xda, 0xf6, 0x13, 0x78, 0x15, 0x8e, 0x37, 0x8b, 0x27, 0x62, 0xf0,
0xfa, 0xb7, 0xe1, 0x47, 0x04, 0x7d, 0xc1, 0xd5, 0xc3, 0x57, 0x93, 0xa4, 0x3d, 0xa0, 0x0e, 0xa5,
0xb9, 0x76, 0xdd, 0x04, 0xd8, 0x2b, 0x1c, 0x6c, 0x0e, 0xbf, 0x92, 0x0c, 0xac, 0xfa, 0xd0, 0x28,
0x3f, 0xc2, 0x3f, 0x23, 0x18, 0x0c, 0x10, 0xfb, 0x12, 0x0d, 0xdf, 0x68, 0x07, 0x42, 0x44, 0x4d,
0x4a, 0xf3, 0x9d, 0xb8, 0x0a, 0x06, 0xaf, 0x73, 0x06, 0xd7, 0xf1, 0x5c, 0x32, 0x06, 0xb9, 0x62,
0x23, 0x57, 0xa4, 0x66, 0x39, 0x67, 0x94, 0x3d, 0x32, 0xbf, 0x22, 0xb8, 0x70, 0x84, 0x38, 0xc3,
0x71, 0x1f, 0x22, 0xf1, 0xf2, 0x4f, 0x2a, 0x1c, 0x27, 0x44, 0x9b, 0xa7, 0x4a, 0xc8, 0x22, 0xfc,
0x14, 0xc1, 0xc0, 0x3e, 0xa9, 0x82, 0xe7, 0x93, 0x1e, 0xe9, 0x83, 0x3a, 0x4a, 0xba, 0xd9, 0x91,
0xaf, 0x00, 0x3f, 0xcd, 0xc1, 0x4f, 0xe0, 0xb1, 0x24, 0xff, 0x32, 0xc0, 0xdf, 0x22, 0xe8, 0xe1,
0x62, 0x04, 0xcf, 0x24, 0x49, 0x1a, 0x56, 0x38, 0x52, 0xbe, 0x0d, 0x8f, 0x36, 0xaf, 0xc0, 0x96,
0xeb, 0xa5, 0x3e, 0x74, 0xb7, 0x1e, 0xe1, 0x6f, 0x10, 0xf4, 0x35, 0x15, 0x49, 0x2e, 0x51, 0x71,
0x7c, 0x73, 0xe9, 0x6a, 0x5b, 0xe6, 0x6d, 0x0f, 0xc2, 0x2a, 0xf7, 0xc4, 0xdf, 0x21, 0x80, 0x90,
0x6e, 0x51, 0x92, 0xdd, 0x31, 0xdf, 0x3e, 0xe9, 0x44, 0xd9, 0x2f, 0x79, 0xda, 0x18, 0x7f, 0xdc,
0x15, 0x6f, 0x23, 0x18, 0x6a, 0xa9, 0x6f, 0xae, 0x27, 0x01, 0xd0, 0xca, 0x53, 0x7a, 0xa3, 0x53,
0xcf, 0x80, 0xc4, 0xab, 0x9c, 0x84, 0x82, 0xa7, 0x13, 0x0d, 0x95, 0x1c, 0xe1, 0x21, 0xdc, 0x51,
0x72, 0xee, 0x30, 0x3d, 0x71, 0x33, 0x21, 0xa6, 0x56, 0xce, 0xd2, 0xe2, 0x31, 0x9c, 0x03, 0x4e,
0xd7, 0x38, 0xa7, 0x3c, 0x56, 0x63, 0x38, 0x05, 0x82, 0x5f, 0xd0, 0x2a, 0xdc, 0xde, 0xde, 0xcd,
0xa0, 0x67, 0xbb, 0x19, 0xf4, 0xc7, 0x6e, 0x06, 0x7d, 0xb1, 0x97, 0xe9, 0x7a, 0xb6, 0x97, 0xe9,
0xfa, 0x6d, 0x2f, 0xd3, 0xf5, 0xd1, 0x4c, 0xe8, 0x73, 0x8d, 0xad, 0xeb, 0x96, 0x6d, 0xd8, 0x2a,
0x61, 0xeb, 0xc4, 0xaa, 0x19, 0x26, 0x53, 0xef, 0x47, 0xc2, 0xf3, 0x8f, 0xb7, 0x62, 0x2f, 0xff,
0x4f, 0xdc, 0x95, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x86, 0x11, 0x51, 0x16, 0x86, 0x14, 0x00,
0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -1832,6 +1952,97 @@ func (m *QueryListRecordsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error)
i = encodeVarintQuery(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
}
if len(m.Attributes) > 0 {
for iNdEx := len(m.Attributes) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Attributes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintQuery(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
}
}
return len(dAtA) - i, nil
}
func (m *QueryListRecordsRequest_ValueInput) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *QueryListRecordsRequest_ValueInput) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryListRecordsRequest_ValueInput) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.Int != 0 {
i = encodeVarintQuery(dAtA, i, uint64(m.Int))
i--
dAtA[i] = 0x10
}
if len(m.String_) > 0 {
i -= len(m.String_)
copy(dAtA[i:], m.String_)
i = encodeVarintQuery(dAtA, i, uint64(len(m.String_)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *QueryListRecordsRequest_KeyValueInput) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *QueryListRecordsRequest_KeyValueInput) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *QueryListRecordsRequest_KeyValueInput) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.Value != nil {
{
size, err := m.Value.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintQuery(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
}
if len(m.Key) > 0 {
i -= len(m.Key)
copy(dAtA[i:], m.Key)
i = encodeVarintQuery(dAtA, i, uint64(len(m.Key)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
@ -2667,6 +2878,12 @@ func (m *QueryListRecordsRequest) Size() (n int) {
}
var l int
_ = l
if len(m.Attributes) > 0 {
for _, e := range m.Attributes {
l = e.Size()
n += 1 + l + sovQuery(uint64(l))
}
}
if m.Pagination != nil {
l = m.Pagination.Size()
n += 1 + l + sovQuery(uint64(l))
@ -2674,6 +2891,39 @@ func (m *QueryListRecordsRequest) Size() (n int) {
return n
}
func (m *QueryListRecordsRequest_ValueInput) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.String_)
if l > 0 {
n += 1 + l + sovQuery(uint64(l))
}
if m.Int != 0 {
n += 1 + sovQuery(uint64(m.Int))
}
return n
}
func (m *QueryListRecordsRequest_KeyValueInput) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.Key)
if l > 0 {
n += 1 + l + sovQuery(uint64(l))
}
if m.Value != nil {
l = m.Value.Size()
n += 1 + l + sovQuery(uint64(l))
}
return n
}
func (m *QueryListRecordsResponse) Size() (n int) {
if m == nil {
return 0
@ -3159,6 +3409,40 @@ func (m *QueryListRecordsRequest) Unmarshal(dAtA []byte) error {
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Attributes", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Attributes = append(m.Attributes, &QueryListRecordsRequest_KeyValueInput{})
if err := m.Attributes[len(m.Attributes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType)
}
@ -3215,6 +3499,225 @@ func (m *QueryListRecordsRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *QueryListRecordsRequest_ValueInput) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ValueInput: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ValueInput: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.String_ = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Int", wireType)
}
m.Int = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Int |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
default:
iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthQuery
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *QueryListRecordsRequest_KeyValueInput) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: KeyValueInput: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: KeyValueInput: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Key = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowQuery
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthQuery
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthQuery
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Value == nil {
m.Value = &QueryListRecordsRequest_ValueInput{}
}
if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipQuery(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthQuery
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *QueryListRecordsResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0