From 0c3aac83f56b79aa07f0934414fd88c004e573b6 Mon Sep 17 00:00:00 2001 From: Rusty Bee <145002912+rustybee42@users.noreply.github.com> Date: Wed, 12 Aug 2026 12:53:15 +0200 Subject: [PATCH] feat: Add modify buddy group message, add quota accounting field --- go/management/management.pb.go | 1378 ++++++++++++------- go/management/management_grpc.pb.go | 38 + go/management/management_protoopaque.pb.go | 1380 +++++++++++++------- proto/management.proto | 33 + rust/management.rs | 154 +++ 5 files changed, 1988 insertions(+), 995 deletions(-) diff --git a/go/management/management.pb.go b/go/management/management.pb.go index 49e0e8b..8b5e56e 100644 --- a/go/management/management.pb.go +++ b/go/management/management.pb.go @@ -23,6 +23,50 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type BuddyGroupOptions_BuddyGroupQuotaAccounting int32 + +const ( + BuddyGroupOptions_BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED BuddyGroupOptions_BuddyGroupQuotaAccounting = 0 + BuddyGroupOptions_BUDDY_GROUP_QUOTA_ACCOUNTING_PRIMARY BuddyGroupOptions_BuddyGroupQuotaAccounting = 1 + BuddyGroupOptions_BUDDY_GROUP_QUOTA_ACCOUNTING_BOTH BuddyGroupOptions_BuddyGroupQuotaAccounting = 2 +) + +// Enum value maps for BuddyGroupOptions_BuddyGroupQuotaAccounting. +var ( + BuddyGroupOptions_BuddyGroupQuotaAccounting_name = map[int32]string{ + 0: "BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED", + 1: "BUDDY_GROUP_QUOTA_ACCOUNTING_PRIMARY", + 2: "BUDDY_GROUP_QUOTA_ACCOUNTING_BOTH", + } + BuddyGroupOptions_BuddyGroupQuotaAccounting_value = map[string]int32{ + "BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED": 0, + "BUDDY_GROUP_QUOTA_ACCOUNTING_PRIMARY": 1, + "BUDDY_GROUP_QUOTA_ACCOUNTING_BOTH": 2, + } +) + +func (x BuddyGroupOptions_BuddyGroupQuotaAccounting) Enum() *BuddyGroupOptions_BuddyGroupQuotaAccounting { + p := new(BuddyGroupOptions_BuddyGroupQuotaAccounting) + *p = x + return p +} + +func (x BuddyGroupOptions_BuddyGroupQuotaAccounting) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BuddyGroupOptions_BuddyGroupQuotaAccounting) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[0].Descriptor() +} + +func (BuddyGroupOptions_BuddyGroupQuotaAccounting) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[0] +} + +func (x BuddyGroupOptions_BuddyGroupQuotaAccounting) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + // Sets an entity alias. type SetAliasRequest struct { state protoimpl.MessageState `protogen:"hybrid.v1"` @@ -1698,6 +1742,84 @@ func (b0 DeletePoolResponse_builder) Build() *DeletePoolResponse { return m0 } +type BuddyGroupOptions struct { + state protoimpl.MessageState `protogen:"hybrid.v1"` + // The quota accounting mode for this buddy group. + // When used for setting options: Optional if the corresponding buddy group is a storage group, + // unset otherwise. + // When used for getting options: Required if the corresponding buddy group is a storage group, + // unset otherwise. + QuotaAccounting *BuddyGroupOptions_BuddyGroupQuotaAccounting `protobuf:"varint,1,opt,name=quota_accounting,json=quotaAccounting,proto3,enum=management.BuddyGroupOptions_BuddyGroupQuotaAccounting,oneof" json:"quota_accounting,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BuddyGroupOptions) Reset() { + *x = BuddyGroupOptions{} + mi := &file_management_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BuddyGroupOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuddyGroupOptions) ProtoMessage() {} + +func (x *BuddyGroupOptions) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +func (x *BuddyGroupOptions) GetQuotaAccounting() BuddyGroupOptions_BuddyGroupQuotaAccounting { + if x != nil && x.QuotaAccounting != nil { + return *x.QuotaAccounting + } + return BuddyGroupOptions_BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED +} + +func (x *BuddyGroupOptions) SetQuotaAccounting(v BuddyGroupOptions_BuddyGroupQuotaAccounting) { + x.QuotaAccounting = &v +} + +func (x *BuddyGroupOptions) HasQuotaAccounting() bool { + if x == nil { + return false + } + return x.QuotaAccounting != nil +} + +func (x *BuddyGroupOptions) ClearQuotaAccounting() { + x.QuotaAccounting = nil +} + +type BuddyGroupOptions_builder struct { + _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. + + // The quota accounting mode for this buddy group. + // When used for setting options: Optional if the corresponding buddy group is a storage group, + // unset otherwise. + // When used for getting options: Required if the corresponding buddy group is a storage group, + // unset otherwise. + QuotaAccounting *BuddyGroupOptions_BuddyGroupQuotaAccounting +} + +func (b0 BuddyGroupOptions_builder) Build() *BuddyGroupOptions { + m0 := &BuddyGroupOptions{} + b, x := &b0, m0 + _, _ = b, x + x.QuotaAccounting = b.QuotaAccounting + return m0 +} + // Gets the list of buddy groups. type GetBuddyGroupsRequest struct { state protoimpl.MessageState `protogen:"hybrid.v1"` @@ -1707,7 +1829,7 @@ type GetBuddyGroupsRequest struct { func (x *GetBuddyGroupsRequest) Reset() { *x = GetBuddyGroupsRequest{} - mi := &file_management_proto_msgTypes[20] + mi := &file_management_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1719,7 +1841,7 @@ func (x *GetBuddyGroupsRequest) String() string { func (*GetBuddyGroupsRequest) ProtoMessage() {} func (x *GetBuddyGroupsRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[20] + mi := &file_management_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1752,7 +1874,7 @@ type GetBuddyGroupsResponse struct { func (x *GetBuddyGroupsResponse) Reset() { *x = GetBuddyGroupsResponse{} - mi := &file_management_proto_msgTypes[21] + mi := &file_management_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1764,7 +1886,7 @@ func (x *GetBuddyGroupsResponse) String() string { func (*GetBuddyGroupsResponse) ProtoMessage() {} func (x *GetBuddyGroupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[21] + mi := &file_management_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1819,13 +1941,16 @@ type CreateBuddyGroupRequest struct { // The new buddy groups secondary target. // Required. One identifier is sufficient. SecondaryTarget *beegfs.EntityIdSet `protobuf:"bytes,5,opt,name=secondary_target,json=secondaryTarget,proto3,oneof" json:"secondary_target,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // The options for this buddy group. + // Required. + Options *BuddyGroupOptions `protobuf:"bytes,6,opt,name=options,proto3,oneof" json:"options,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *CreateBuddyGroupRequest) Reset() { *x = CreateBuddyGroupRequest{} - mi := &file_management_proto_msgTypes[22] + mi := &file_management_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1837,7 +1962,7 @@ func (x *CreateBuddyGroupRequest) String() string { func (*CreateBuddyGroupRequest) ProtoMessage() {} func (x *CreateBuddyGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[22] + mi := &file_management_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1883,6 +2008,13 @@ func (x *CreateBuddyGroupRequest) GetSecondaryTarget() *beegfs.EntityIdSet { return nil } +func (x *CreateBuddyGroupRequest) GetOptions() *BuddyGroupOptions { + if x != nil { + return x.Options + } + return nil +} + func (x *CreateBuddyGroupRequest) SetNodeType(v beegfs.NodeType) { x.NodeType = &v } @@ -1903,6 +2035,10 @@ func (x *CreateBuddyGroupRequest) SetSecondaryTarget(v *beegfs.EntityIdSet) { x.SecondaryTarget = v } +func (x *CreateBuddyGroupRequest) SetOptions(v *BuddyGroupOptions) { + x.Options = v +} + func (x *CreateBuddyGroupRequest) HasNodeType() bool { if x == nil { return false @@ -1938,6 +2074,13 @@ func (x *CreateBuddyGroupRequest) HasSecondaryTarget() bool { return x.SecondaryTarget != nil } +func (x *CreateBuddyGroupRequest) HasOptions() bool { + if x == nil { + return false + } + return x.Options != nil +} + func (x *CreateBuddyGroupRequest) ClearNodeType() { x.NodeType = nil } @@ -1958,6 +2101,10 @@ func (x *CreateBuddyGroupRequest) ClearSecondaryTarget() { x.SecondaryTarget = nil } +func (x *CreateBuddyGroupRequest) ClearOptions() { + x.Options = nil +} + type CreateBuddyGroupRequest_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -1976,6 +2123,9 @@ type CreateBuddyGroupRequest_builder struct { // The new buddy groups secondary target. // Required. One identifier is sufficient. SecondaryTarget *beegfs.EntityIdSet + // The options for this buddy group. + // Required. + Options *BuddyGroupOptions } func (b0 CreateBuddyGroupRequest_builder) Build() *CreateBuddyGroupRequest { @@ -1987,6 +2137,7 @@ func (b0 CreateBuddyGroupRequest_builder) Build() *CreateBuddyGroupRequest { x.Alias = b.Alias x.PrimaryTarget = b.PrimaryTarget x.SecondaryTarget = b.SecondaryTarget + x.Options = b.Options return m0 } @@ -2001,7 +2152,7 @@ type CreateBuddyGroupResponse struct { func (x *CreateBuddyGroupResponse) Reset() { *x = CreateBuddyGroupResponse{} - mi := &file_management_proto_msgTypes[23] + mi := &file_management_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2013,7 +2164,7 @@ func (x *CreateBuddyGroupResponse) String() string { func (*CreateBuddyGroupResponse) ProtoMessage() {} func (x *CreateBuddyGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[23] + mi := &file_management_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2062,6 +2213,151 @@ func (b0 CreateBuddyGroupResponse_builder) Build() *CreateBuddyGroupResponse { return m0 } +// Modifies a buddy group or its config. +type ModifyBuddyGroupRequest struct { + state protoimpl.MessageState `protogen:"hybrid.v1"` + // The buddy group to modify. + // Required. One identifier is sufficient. + Group *beegfs.EntityIdSet `protobuf:"bytes,1,opt,name=group,proto3,oneof" json:"group,omitempty"` + // The options for this buddy group. + // Required. + Options *BuddyGroupOptions `protobuf:"bytes,2,opt,name=options,proto3,oneof" json:"options,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModifyBuddyGroupRequest) Reset() { + *x = ModifyBuddyGroupRequest{} + mi := &file_management_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModifyBuddyGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModifyBuddyGroupRequest) ProtoMessage() {} + +func (x *ModifyBuddyGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +func (x *ModifyBuddyGroupRequest) GetGroup() *beegfs.EntityIdSet { + if x != nil { + return x.Group + } + return nil +} + +func (x *ModifyBuddyGroupRequest) GetOptions() *BuddyGroupOptions { + if x != nil { + return x.Options + } + return nil +} + +func (x *ModifyBuddyGroupRequest) SetGroup(v *beegfs.EntityIdSet) { + x.Group = v +} + +func (x *ModifyBuddyGroupRequest) SetOptions(v *BuddyGroupOptions) { + x.Options = v +} + +func (x *ModifyBuddyGroupRequest) HasGroup() bool { + if x == nil { + return false + } + return x.Group != nil +} + +func (x *ModifyBuddyGroupRequest) HasOptions() bool { + if x == nil { + return false + } + return x.Options != nil +} + +func (x *ModifyBuddyGroupRequest) ClearGroup() { + x.Group = nil +} + +func (x *ModifyBuddyGroupRequest) ClearOptions() { + x.Options = nil +} + +type ModifyBuddyGroupRequest_builder struct { + _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. + + // The buddy group to modify. + // Required. One identifier is sufficient. + Group *beegfs.EntityIdSet + // The options for this buddy group. + // Required. + Options *BuddyGroupOptions +} + +func (b0 ModifyBuddyGroupRequest_builder) Build() *ModifyBuddyGroupRequest { + m0 := &ModifyBuddyGroupRequest{} + b, x := &b0, m0 + _, _ = b, x + x.Group = b.Group + x.Options = b.Options + return m0 +} + +type ModifyBuddyGroupResponse struct { + state protoimpl.MessageState `protogen:"hybrid.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModifyBuddyGroupResponse) Reset() { + *x = ModifyBuddyGroupResponse{} + mi := &file_management_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModifyBuddyGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModifyBuddyGroupResponse) ProtoMessage() {} + +func (x *ModifyBuddyGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +type ModifyBuddyGroupResponse_builder struct { + _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. + +} + +func (b0 ModifyBuddyGroupResponse_builder) Build() *ModifyBuddyGroupResponse { + m0 := &ModifyBuddyGroupResponse{} + b, x := &b0, m0 + _, _ = b, x + return m0 +} + // Deletes a buddy group from the system. type DeleteBuddyGroupRequest struct { state protoimpl.MessageState `protogen:"hybrid.v1"` @@ -2078,7 +2374,7 @@ type DeleteBuddyGroupRequest struct { func (x *DeleteBuddyGroupRequest) Reset() { *x = DeleteBuddyGroupRequest{} - mi := &file_management_proto_msgTypes[24] + mi := &file_management_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2090,7 +2386,7 @@ func (x *DeleteBuddyGroupRequest) String() string { func (*DeleteBuddyGroupRequest) ProtoMessage() {} func (x *DeleteBuddyGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[24] + mi := &file_management_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2177,7 +2473,7 @@ type DeleteBuddyGroupResponse struct { func (x *DeleteBuddyGroupResponse) Reset() { *x = DeleteBuddyGroupResponse{} - mi := &file_management_proto_msgTypes[25] + mi := &file_management_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2189,7 +2485,7 @@ func (x *DeleteBuddyGroupResponse) String() string { func (*DeleteBuddyGroupResponse) ProtoMessage() {} func (x *DeleteBuddyGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[25] + mi := &file_management_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2247,7 +2543,7 @@ type MirrorRootInodeRequest struct { func (x *MirrorRootInodeRequest) Reset() { *x = MirrorRootInodeRequest{} - mi := &file_management_proto_msgTypes[26] + mi := &file_management_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2259,7 +2555,7 @@ func (x *MirrorRootInodeRequest) String() string { func (*MirrorRootInodeRequest) ProtoMessage() {} func (x *MirrorRootInodeRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[26] + mi := &file_management_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2290,7 +2586,7 @@ type MirrorRootInodeResponse struct { func (x *MirrorRootInodeResponse) Reset() { *x = MirrorRootInodeResponse{} - mi := &file_management_proto_msgTypes[27] + mi := &file_management_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2302,7 +2598,7 @@ func (x *MirrorRootInodeResponse) String() string { func (*MirrorRootInodeResponse) ProtoMessage() {} func (x *MirrorRootInodeResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[27] + mi := &file_management_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2343,7 +2639,7 @@ type StartResyncRequest struct { func (x *StartResyncRequest) Reset() { *x = StartResyncRequest{} - mi := &file_management_proto_msgTypes[28] + mi := &file_management_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2355,7 +2651,7 @@ func (x *StartResyncRequest) String() string { func (*StartResyncRequest) ProtoMessage() {} func (x *StartResyncRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[28] + mi := &file_management_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2464,7 +2760,7 @@ type StartResyncResponse struct { func (x *StartResyncResponse) Reset() { *x = StartResyncResponse{} - mi := &file_management_proto_msgTypes[29] + mi := &file_management_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2476,7 +2772,7 @@ func (x *StartResyncResponse) String() string { func (*StartResyncResponse) ProtoMessage() {} func (x *StartResyncResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[29] + mi := &file_management_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2534,7 +2830,7 @@ type QuotaInfo struct { func (x *QuotaInfo) Reset() { *x = QuotaInfo{} - mi := &file_management_proto_msgTypes[30] + mi := &file_management_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2546,7 +2842,7 @@ func (x *QuotaInfo) String() string { func (*QuotaInfo) ProtoMessage() {} func (x *QuotaInfo) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[30] + mi := &file_management_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2768,7 +3064,7 @@ type SetDefaultQuotaLimitsRequest struct { func (x *SetDefaultQuotaLimitsRequest) Reset() { *x = SetDefaultQuotaLimitsRequest{} - mi := &file_management_proto_msgTypes[31] + mi := &file_management_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2780,7 +3076,7 @@ func (x *SetDefaultQuotaLimitsRequest) String() string { func (*SetDefaultQuotaLimitsRequest) ProtoMessage() {} func (x *SetDefaultQuotaLimitsRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[31] + mi := &file_management_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2941,7 +3237,7 @@ type SetDefaultQuotaLimitsResponse struct { func (x *SetDefaultQuotaLimitsResponse) Reset() { *x = SetDefaultQuotaLimitsResponse{} - mi := &file_management_proto_msgTypes[32] + mi := &file_management_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2953,7 +3249,7 @@ func (x *SetDefaultQuotaLimitsResponse) String() string { func (*SetDefaultQuotaLimitsResponse) ProtoMessage() {} func (x *SetDefaultQuotaLimitsResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[32] + mi := &file_management_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2987,7 +3283,7 @@ type SetQuotaLimitsRequest struct { func (x *SetQuotaLimitsRequest) Reset() { *x = SetQuotaLimitsRequest{} - mi := &file_management_proto_msgTypes[33] + mi := &file_management_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2999,7 +3295,7 @@ func (x *SetQuotaLimitsRequest) String() string { func (*SetQuotaLimitsRequest) ProtoMessage() {} func (x *SetQuotaLimitsRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[33] + mi := &file_management_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3044,7 +3340,7 @@ type SetQuotaLimitsResponse struct { func (x *SetQuotaLimitsResponse) Reset() { *x = SetQuotaLimitsResponse{} - mi := &file_management_proto_msgTypes[34] + mi := &file_management_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3056,7 +3352,7 @@ func (x *SetQuotaLimitsResponse) String() string { func (*SetQuotaLimitsResponse) ProtoMessage() {} func (x *SetQuotaLimitsResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[34] + mi := &file_management_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3109,7 +3405,7 @@ type GetQuotaLimitsRequest struct { func (x *GetQuotaLimitsRequest) Reset() { *x = GetQuotaLimitsRequest{} - mi := &file_management_proto_msgTypes[35] + mi := &file_management_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3121,7 +3417,7 @@ func (x *GetQuotaLimitsRequest) String() string { func (*GetQuotaLimitsRequest) ProtoMessage() {} func (x *GetQuotaLimitsRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[35] + mi := &file_management_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3315,7 +3611,7 @@ type GetQuotaLimitsResponse struct { func (x *GetQuotaLimitsResponse) Reset() { *x = GetQuotaLimitsResponse{} - mi := &file_management_proto_msgTypes[36] + mi := &file_management_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3327,7 +3623,7 @@ func (x *GetQuotaLimitsResponse) String() string { func (*GetQuotaLimitsResponse) ProtoMessage() {} func (x *GetQuotaLimitsResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[36] + mi := &file_management_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3411,7 +3707,7 @@ type GetQuotaUsageRequest struct { func (x *GetQuotaUsageRequest) Reset() { *x = GetQuotaUsageRequest{} - mi := &file_management_proto_msgTypes[37] + mi := &file_management_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3423,7 +3719,7 @@ func (x *GetQuotaUsageRequest) String() string { func (*GetQuotaUsageRequest) ProtoMessage() {} func (x *GetQuotaUsageRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[37] + mi := &file_management_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3646,7 +3942,7 @@ type GetQuotaUsageResponse struct { func (x *GetQuotaUsageResponse) Reset() { *x = GetQuotaUsageResponse{} - mi := &file_management_proto_msgTypes[38] + mi := &file_management_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3658,7 +3954,7 @@ func (x *GetQuotaUsageResponse) String() string { func (*GetQuotaUsageResponse) ProtoMessage() {} func (x *GetQuotaUsageResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[38] + mi := &file_management_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3746,7 +4042,7 @@ type GetLicenseRequest struct { func (x *GetLicenseRequest) Reset() { *x = GetLicenseRequest{} - mi := &file_management_proto_msgTypes[39] + mi := &file_management_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3758,7 +4054,7 @@ func (x *GetLicenseRequest) String() string { func (*GetLicenseRequest) ProtoMessage() {} func (x *GetLicenseRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[39] + mi := &file_management_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3818,7 +4114,7 @@ type GetLicenseResponse struct { func (x *GetLicenseResponse) Reset() { *x = GetLicenseResponse{} - mi := &file_management_proto_msgTypes[40] + mi := &file_management_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3830,7 +4126,7 @@ func (x *GetLicenseResponse) String() string { func (*GetLicenseResponse) ProtoMessage() {} func (x *GetLicenseResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[40] + mi := &file_management_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3899,7 +4195,7 @@ type GetNodesResponse_Node struct { func (x *GetNodesResponse_Node) Reset() { *x = GetNodesResponse_Node{} - mi := &file_management_proto_msgTypes[41] + mi := &file_management_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3911,7 +4207,7 @@ func (x *GetNodesResponse_Node) String() string { func (*GetNodesResponse_Node) ProtoMessage() {} func (x *GetNodesResponse_Node) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[41] + mi := &file_management_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4022,7 +4318,7 @@ type GetNodesResponse_Node_Nic struct { func (x *GetNodesResponse_Node_Nic) Reset() { *x = GetNodesResponse_Node_Nic{} - mi := &file_management_proto_msgTypes[42] + mi := &file_management_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4034,7 +4330,7 @@ func (x *GetNodesResponse_Node_Nic) String() string { func (*GetNodesResponse_Node_Nic) ProtoMessage() {} func (x *GetNodesResponse_Node_Nic) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[42] + mi := &file_management_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4149,7 +4445,7 @@ type GetTargetsResponse_Target struct { func (x *GetTargetsResponse_Target) Reset() { *x = GetTargetsResponse_Target{} - mi := &file_management_proto_msgTypes[43] + mi := &file_management_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4161,7 +4457,7 @@ func (x *GetTargetsResponse_Target) String() string { func (*GetTargetsResponse_Target) ProtoMessage() {} func (x *GetTargetsResponse_Target) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[43] + mi := &file_management_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4488,7 +4784,7 @@ type GetPoolsResponse_StoragePool struct { func (x *GetPoolsResponse_StoragePool) Reset() { *x = GetPoolsResponse_StoragePool{} - mi := &file_management_proto_msgTypes[44] + mi := &file_management_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4500,7 +4796,7 @@ func (x *GetPoolsResponse_StoragePool) String() string { func (*GetPoolsResponse_StoragePool) ProtoMessage() {} func (x *GetPoolsResponse_StoragePool) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[44] + mi := &file_management_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4711,14 +5007,17 @@ type GetBuddyGroupsResponse_BuddyGroup struct { // The targets storage pool. // Required if this target is a storage target (e.g. node_type is STORAGE), unset otherwise. If // set, should be completely populated. - StoragePool *beegfs.EntityIdSet `protobuf:"bytes,7,opt,name=storage_pool,json=storagePool,proto3,oneof" json:"storage_pool,omitempty"` + StoragePool *beegfs.EntityIdSet `protobuf:"bytes,7,opt,name=storage_pool,json=storagePool,proto3,oneof" json:"storage_pool,omitempty"` + // The options for this buddy group. + // Required. + Options *BuddyGroupOptions `protobuf:"bytes,8,opt,name=options,proto3,oneof" json:"options,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetBuddyGroupsResponse_BuddyGroup) Reset() { *x = GetBuddyGroupsResponse_BuddyGroup{} - mi := &file_management_proto_msgTypes[45] + mi := &file_management_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4730,7 +5029,7 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) String() string { func (*GetBuddyGroupsResponse_BuddyGroup) ProtoMessage() {} func (x *GetBuddyGroupsResponse_BuddyGroup) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[45] + mi := &file_management_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4790,6 +5089,13 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) GetStoragePool() *beegfs.EntityIdSet return nil } +func (x *GetBuddyGroupsResponse_BuddyGroup) GetOptions() *BuddyGroupOptions { + if x != nil { + return x.Options + } + return nil +} + func (x *GetBuddyGroupsResponse_BuddyGroup) SetId(v *beegfs.EntityIdSet) { x.Id = v } @@ -4818,6 +5124,10 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) SetStoragePool(v *beegfs.EntityIdSet x.StoragePool = v } +func (x *GetBuddyGroupsResponse_BuddyGroup) SetOptions(v *BuddyGroupOptions) { + x.Options = v +} + func (x *GetBuddyGroupsResponse_BuddyGroup) HasId() bool { if x == nil { return false @@ -4846,6 +5156,13 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) HasStoragePool() bool { return x.StoragePool != nil } +func (x *GetBuddyGroupsResponse_BuddyGroup) HasOptions() bool { + if x == nil { + return false + } + return x.Options != nil +} + func (x *GetBuddyGroupsResponse_BuddyGroup) ClearId() { x.Id = nil } @@ -4862,6 +5179,10 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) ClearStoragePool() { x.StoragePool = nil } +func (x *GetBuddyGroupsResponse_BuddyGroup) ClearOptions() { + x.Options = nil +} + type GetBuddyGroupsResponse_BuddyGroup_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -4887,6 +5208,9 @@ type GetBuddyGroupsResponse_BuddyGroup_builder struct { // Required if this target is a storage target (e.g. node_type is STORAGE), unset otherwise. If // set, should be completely populated. StoragePool *beegfs.EntityIdSet + // The options for this buddy group. + // Required. + Options *BuddyGroupOptions } func (b0 GetBuddyGroupsResponse_BuddyGroup_builder) Build() *GetBuddyGroupsResponse_BuddyGroup { @@ -4900,6 +5224,7 @@ func (b0 GetBuddyGroupsResponse_BuddyGroup_builder) Build() *GetBuddyGroupsRespo x.PrimaryConsistencyState = b.PrimaryConsistencyState x.SecondaryConsistencyState = b.SecondaryConsistencyState x.StoragePool = b.StoragePool + x.Options = b.Options return m0 } @@ -5136,289 +5461,335 @@ var file_management_proto_rawDesc = []byte{ 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, - 0x6c, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc7, 0x04, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0b, 0x62, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0xda, 0x03, 0x0a, 0x0a, 0x42, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x09, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, - 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x54, 0x0a, 0x19, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x62, 0x65, 0x65, 0x67, - 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x1b, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x18, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x19, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, - 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, - 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, - 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0xd5, 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6e, 0x75, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, + 0x6c, 0x22, 0xae, 0x02, 0x0a, 0x11, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x67, 0x0a, 0x10, 0x71, 0x75, 0x6f, 0x74, 0x61, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x37, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x42, + 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x71, 0x75, + 0x6f, 0x74, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, + 0x22, 0x9a, 0x01, 0x0a, 0x19, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, + 0x75, 0x6f, 0x74, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2c, + 0x0a, 0x28, 0x42, 0x55, 0x44, 0x44, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x51, 0x55, + 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, + 0x42, 0x55, 0x44, 0x44, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x51, 0x55, 0x4f, 0x54, + 0x41, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x52, 0x49, + 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x55, 0x44, 0x44, 0x59, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x43, 0x43, 0x4f, + 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x02, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, + 0x6e, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x91, 0x05, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0b, 0x62, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0xa4, 0x04, 0x0a, 0x0a, 0x42, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x09, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x10, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x03, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x10, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x54, 0x0a, 0x18, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, - 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x22, 0x7e, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, + 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, + 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x54, 0x0a, 0x19, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x62, 0x65, 0x65, + 0x67, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, + 0x1b, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x19, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, + 0x65, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, + 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0x9f, 0x03, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, + 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x6e, 0x75, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x61, + 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x61, 0x6c, + 0x69, 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, + 0x53, 0x65, 0x74, 0x48, 0x03, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x05, 0x52, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x75, 0x6d, + 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x54, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, - 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, - 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, - 0x52, 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, + 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x9d, 0x01, 0x0a, 0x17, 0x4d, 0x6f, 0x64, 0x69, + 0x66, 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x6f, 0x64, 0x69, 0x66, + 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, - 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x69, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x74, - 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbb, 0x01, - 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0b, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, - 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, - 0x52, 0x0a, 0x62, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x21, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0xef, 0x02, 0x0a, 0x09, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1e, 0x0a, 0x08, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x2c, 0x0a, 0x07, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, - 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, - 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, - 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, - 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x6f, 0x64, 0x65, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x09, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, - 0x48, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x75, 0x73, 0x65, 0x64, 0x22, 0xeb, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, - 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x0e, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, - 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x53, - 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, - 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x69, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, - 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0c, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, - 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, - 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, - 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, - 0x48, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, - 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x32, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, - 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x73, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, - 0x9b, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, + 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x01, 0x52, 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, + 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x69, 0x72, + 0x72, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x6f, 0x6f, + 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbb, + 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0b, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, + 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, + 0x00, 0x52, 0x0a, 0x62, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x21, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x15, 0x0a, 0x13, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xef, 0x02, 0x0a, 0x09, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1e, 0x0a, 0x08, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x51, 0x75, 0x6f, 0x74, + 0x61, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, + 0x65, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x0b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x6f, 0x64, + 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, + 0x09, 0x73, 0x70, 0x61, 0x63, 0x65, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, + 0x0a, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x75, 0x73, 0x65, 0x64, 0x22, 0xeb, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x6f, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x97, 0x01, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, - 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x53, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x22, 0x3b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, - 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, - 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, - 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x60, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x63, 0x65, - 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63, 0x65, 0x72, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x65, 0x72, - 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x32, 0x98, 0x0d, 0x0a, 0x0a, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, - 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, - 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x41, - 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, - 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x1d, + 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6f, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, + 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, + 0x0e, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, + 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, + 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, + 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x18, 0x0a, 0x16, + 0x53, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, + 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0c, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x69, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, + 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, + 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, + 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, + 0x74, 0x48, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x32, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, + 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, + 0x22, 0x9b, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x61, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x61, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x04, 0x52, 0x04, 0x70, 0x6f, + 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x78, 0x63, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, + 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x97, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, + 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x22, 0x3b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x06, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x06, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, + 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x60, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x63, + 0x65, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63, 0x65, + 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x65, + 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x32, 0xf7, 0x0d, 0x0a, 0x0a, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x41, 0x6c, 0x69, + 0x61, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x53, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, + 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, + 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, + 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, - 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x2e, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, + 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x57, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x47, 0x65, 0x74, - 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4b, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x47, 0x65, + 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, + 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, - 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x2e, 0x6d, 0x61, + 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, + 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, - 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, - 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, - 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x5d, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, + 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, + 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5d, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, + 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5d, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, + 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, @@ -5471,171 +5842,183 @@ var file_management_proto_rawDesc = []byte{ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var file_management_proto_msgTypes = make([]protoimpl.MessageInfo, 46) +var file_management_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_management_proto_msgTypes = make([]protoimpl.MessageInfo, 49) var file_management_proto_goTypes = []any{ - (*SetAliasRequest)(nil), // 0: management.SetAliasRequest - (*SetAliasResponse)(nil), // 1: management.SetAliasResponse - (*GetNodesRequest)(nil), // 2: management.GetNodesRequest - (*GetNodesResponse)(nil), // 3: management.GetNodesResponse - (*DeleteNodeRequest)(nil), // 4: management.DeleteNodeRequest - (*DeleteNodeResponse)(nil), // 5: management.DeleteNodeResponse - (*GetTargetsRequest)(nil), // 6: management.GetTargetsRequest - (*GetTargetsResponse)(nil), // 7: management.GetTargetsResponse - (*DeleteTargetRequest)(nil), // 8: management.DeleteTargetRequest - (*DeleteTargetResponse)(nil), // 9: management.DeleteTargetResponse - (*SetTargetStateRequest)(nil), // 10: management.SetTargetStateRequest - (*SetTargetStateResponse)(nil), // 11: management.SetTargetStateResponse - (*GetPoolsRequest)(nil), // 12: management.GetPoolsRequest - (*GetPoolsResponse)(nil), // 13: management.GetPoolsResponse - (*CreatePoolRequest)(nil), // 14: management.CreatePoolRequest - (*CreatePoolResponse)(nil), // 15: management.CreatePoolResponse - (*AssignPoolRequest)(nil), // 16: management.AssignPoolRequest - (*AssignPoolResponse)(nil), // 17: management.AssignPoolResponse - (*DeletePoolRequest)(nil), // 18: management.DeletePoolRequest - (*DeletePoolResponse)(nil), // 19: management.DeletePoolResponse - (*GetBuddyGroupsRequest)(nil), // 20: management.GetBuddyGroupsRequest - (*GetBuddyGroupsResponse)(nil), // 21: management.GetBuddyGroupsResponse - (*CreateBuddyGroupRequest)(nil), // 22: management.CreateBuddyGroupRequest - (*CreateBuddyGroupResponse)(nil), // 23: management.CreateBuddyGroupResponse - (*DeleteBuddyGroupRequest)(nil), // 24: management.DeleteBuddyGroupRequest - (*DeleteBuddyGroupResponse)(nil), // 25: management.DeleteBuddyGroupResponse - (*MirrorRootInodeRequest)(nil), // 26: management.MirrorRootInodeRequest - (*MirrorRootInodeResponse)(nil), // 27: management.MirrorRootInodeResponse - (*StartResyncRequest)(nil), // 28: management.StartResyncRequest - (*StartResyncResponse)(nil), // 29: management.StartResyncResponse - (*QuotaInfo)(nil), // 30: management.QuotaInfo - (*SetDefaultQuotaLimitsRequest)(nil), // 31: management.SetDefaultQuotaLimitsRequest - (*SetDefaultQuotaLimitsResponse)(nil), // 32: management.SetDefaultQuotaLimitsResponse - (*SetQuotaLimitsRequest)(nil), // 33: management.SetQuotaLimitsRequest - (*SetQuotaLimitsResponse)(nil), // 34: management.SetQuotaLimitsResponse - (*GetQuotaLimitsRequest)(nil), // 35: management.GetQuotaLimitsRequest - (*GetQuotaLimitsResponse)(nil), // 36: management.GetQuotaLimitsResponse - (*GetQuotaUsageRequest)(nil), // 37: management.GetQuotaUsageRequest - (*GetQuotaUsageResponse)(nil), // 38: management.GetQuotaUsageResponse - (*GetLicenseRequest)(nil), // 39: management.GetLicenseRequest - (*GetLicenseResponse)(nil), // 40: management.GetLicenseResponse - (*GetNodesResponse_Node)(nil), // 41: management.GetNodesResponse.Node - (*GetNodesResponse_Node_Nic)(nil), // 42: management.GetNodesResponse.Node.Nic - (*GetTargetsResponse_Target)(nil), // 43: management.GetTargetsResponse.Target - (*GetPoolsResponse_StoragePool)(nil), // 44: management.GetPoolsResponse.StoragePool - (*GetBuddyGroupsResponse_BuddyGroup)(nil), // 45: management.GetBuddyGroupsResponse.BuddyGroup - (*beegfs.EntityIdSet)(nil), // 46: beegfs.EntityIdSet - (beegfs.EntityType)(0), // 47: beegfs.EntityType - (beegfs.ConsistencyState)(0), // 48: beegfs.ConsistencyState - (beegfs.NodeType)(0), // 49: beegfs.NodeType - (beegfs.QuotaIdType)(0), // 50: beegfs.QuotaIdType - (*license.GetCertDataResult)(nil), // 51: license.GetCertDataResult - (beegfs.NicType)(0), // 52: beegfs.NicType - (beegfs.ReachabilityState)(0), // 53: beegfs.ReachabilityState - (beegfs.CapacityPool)(0), // 54: beegfs.CapacityPool + (BuddyGroupOptions_BuddyGroupQuotaAccounting)(0), // 0: management.BuddyGroupOptions.BuddyGroupQuotaAccounting + (*SetAliasRequest)(nil), // 1: management.SetAliasRequest + (*SetAliasResponse)(nil), // 2: management.SetAliasResponse + (*GetNodesRequest)(nil), // 3: management.GetNodesRequest + (*GetNodesResponse)(nil), // 4: management.GetNodesResponse + (*DeleteNodeRequest)(nil), // 5: management.DeleteNodeRequest + (*DeleteNodeResponse)(nil), // 6: management.DeleteNodeResponse + (*GetTargetsRequest)(nil), // 7: management.GetTargetsRequest + (*GetTargetsResponse)(nil), // 8: management.GetTargetsResponse + (*DeleteTargetRequest)(nil), // 9: management.DeleteTargetRequest + (*DeleteTargetResponse)(nil), // 10: management.DeleteTargetResponse + (*SetTargetStateRequest)(nil), // 11: management.SetTargetStateRequest + (*SetTargetStateResponse)(nil), // 12: management.SetTargetStateResponse + (*GetPoolsRequest)(nil), // 13: management.GetPoolsRequest + (*GetPoolsResponse)(nil), // 14: management.GetPoolsResponse + (*CreatePoolRequest)(nil), // 15: management.CreatePoolRequest + (*CreatePoolResponse)(nil), // 16: management.CreatePoolResponse + (*AssignPoolRequest)(nil), // 17: management.AssignPoolRequest + (*AssignPoolResponse)(nil), // 18: management.AssignPoolResponse + (*DeletePoolRequest)(nil), // 19: management.DeletePoolRequest + (*DeletePoolResponse)(nil), // 20: management.DeletePoolResponse + (*BuddyGroupOptions)(nil), // 21: management.BuddyGroupOptions + (*GetBuddyGroupsRequest)(nil), // 22: management.GetBuddyGroupsRequest + (*GetBuddyGroupsResponse)(nil), // 23: management.GetBuddyGroupsResponse + (*CreateBuddyGroupRequest)(nil), // 24: management.CreateBuddyGroupRequest + (*CreateBuddyGroupResponse)(nil), // 25: management.CreateBuddyGroupResponse + (*ModifyBuddyGroupRequest)(nil), // 26: management.ModifyBuddyGroupRequest + (*ModifyBuddyGroupResponse)(nil), // 27: management.ModifyBuddyGroupResponse + (*DeleteBuddyGroupRequest)(nil), // 28: management.DeleteBuddyGroupRequest + (*DeleteBuddyGroupResponse)(nil), // 29: management.DeleteBuddyGroupResponse + (*MirrorRootInodeRequest)(nil), // 30: management.MirrorRootInodeRequest + (*MirrorRootInodeResponse)(nil), // 31: management.MirrorRootInodeResponse + (*StartResyncRequest)(nil), // 32: management.StartResyncRequest + (*StartResyncResponse)(nil), // 33: management.StartResyncResponse + (*QuotaInfo)(nil), // 34: management.QuotaInfo + (*SetDefaultQuotaLimitsRequest)(nil), // 35: management.SetDefaultQuotaLimitsRequest + (*SetDefaultQuotaLimitsResponse)(nil), // 36: management.SetDefaultQuotaLimitsResponse + (*SetQuotaLimitsRequest)(nil), // 37: management.SetQuotaLimitsRequest + (*SetQuotaLimitsResponse)(nil), // 38: management.SetQuotaLimitsResponse + (*GetQuotaLimitsRequest)(nil), // 39: management.GetQuotaLimitsRequest + (*GetQuotaLimitsResponse)(nil), // 40: management.GetQuotaLimitsResponse + (*GetQuotaUsageRequest)(nil), // 41: management.GetQuotaUsageRequest + (*GetQuotaUsageResponse)(nil), // 42: management.GetQuotaUsageResponse + (*GetLicenseRequest)(nil), // 43: management.GetLicenseRequest + (*GetLicenseResponse)(nil), // 44: management.GetLicenseResponse + (*GetNodesResponse_Node)(nil), // 45: management.GetNodesResponse.Node + (*GetNodesResponse_Node_Nic)(nil), // 46: management.GetNodesResponse.Node.Nic + (*GetTargetsResponse_Target)(nil), // 47: management.GetTargetsResponse.Target + (*GetPoolsResponse_StoragePool)(nil), // 48: management.GetPoolsResponse.StoragePool + (*GetBuddyGroupsResponse_BuddyGroup)(nil), // 49: management.GetBuddyGroupsResponse.BuddyGroup + (*beegfs.EntityIdSet)(nil), // 50: beegfs.EntityIdSet + (beegfs.EntityType)(0), // 51: beegfs.EntityType + (beegfs.ConsistencyState)(0), // 52: beegfs.ConsistencyState + (beegfs.NodeType)(0), // 53: beegfs.NodeType + (beegfs.QuotaIdType)(0), // 54: beegfs.QuotaIdType + (*license.GetCertDataResult)(nil), // 55: license.GetCertDataResult + (beegfs.NicType)(0), // 56: beegfs.NicType + (beegfs.ReachabilityState)(0), // 57: beegfs.ReachabilityState + (beegfs.CapacityPool)(0), // 58: beegfs.CapacityPool } var file_management_proto_depIdxs = []int32{ - 46, // 0: management.SetAliasRequest.entity_id:type_name -> beegfs.EntityIdSet - 47, // 1: management.SetAliasRequest.entity_type:type_name -> beegfs.EntityType - 41, // 2: management.GetNodesResponse.nodes:type_name -> management.GetNodesResponse.Node - 46, // 3: management.GetNodesResponse.meta_root_node:type_name -> beegfs.EntityIdSet - 46, // 4: management.GetNodesResponse.meta_root_buddy_group:type_name -> beegfs.EntityIdSet - 46, // 5: management.DeleteNodeRequest.node:type_name -> beegfs.EntityIdSet - 46, // 6: management.DeleteNodeResponse.node:type_name -> beegfs.EntityIdSet - 43, // 7: management.GetTargetsResponse.targets:type_name -> management.GetTargetsResponse.Target - 46, // 8: management.DeleteTargetRequest.target:type_name -> beegfs.EntityIdSet - 46, // 9: management.DeleteTargetResponse.target:type_name -> beegfs.EntityIdSet - 46, // 10: management.SetTargetStateRequest.target:type_name -> beegfs.EntityIdSet - 48, // 11: management.SetTargetStateRequest.consistency_state:type_name -> beegfs.ConsistencyState - 44, // 12: management.GetPoolsResponse.pools:type_name -> management.GetPoolsResponse.StoragePool - 49, // 13: management.CreatePoolRequest.node_type:type_name -> beegfs.NodeType - 46, // 14: management.CreatePoolRequest.targets:type_name -> beegfs.EntityIdSet - 46, // 15: management.CreatePoolRequest.buddy_groups:type_name -> beegfs.EntityIdSet - 46, // 16: management.CreatePoolResponse.pool:type_name -> beegfs.EntityIdSet - 46, // 17: management.AssignPoolRequest.pool:type_name -> beegfs.EntityIdSet - 46, // 18: management.AssignPoolRequest.targets:type_name -> beegfs.EntityIdSet - 46, // 19: management.AssignPoolRequest.buddy_groups:type_name -> beegfs.EntityIdSet - 46, // 20: management.AssignPoolResponse.pool:type_name -> beegfs.EntityIdSet - 46, // 21: management.DeletePoolRequest.pool:type_name -> beegfs.EntityIdSet - 46, // 22: management.DeletePoolResponse.pool:type_name -> beegfs.EntityIdSet - 45, // 23: management.GetBuddyGroupsResponse.buddy_groups:type_name -> management.GetBuddyGroupsResponse.BuddyGroup - 49, // 24: management.CreateBuddyGroupRequest.node_type:type_name -> beegfs.NodeType - 46, // 25: management.CreateBuddyGroupRequest.primary_target:type_name -> beegfs.EntityIdSet - 46, // 26: management.CreateBuddyGroupRequest.secondary_target:type_name -> beegfs.EntityIdSet - 46, // 27: management.CreateBuddyGroupResponse.group:type_name -> beegfs.EntityIdSet - 46, // 28: management.DeleteBuddyGroupRequest.group:type_name -> beegfs.EntityIdSet - 46, // 29: management.DeleteBuddyGroupResponse.group:type_name -> beegfs.EntityIdSet - 46, // 30: management.StartResyncRequest.buddy_group:type_name -> beegfs.EntityIdSet - 50, // 31: management.QuotaInfo.id_type:type_name -> beegfs.QuotaIdType - 46, // 32: management.QuotaInfo.pool:type_name -> beegfs.EntityIdSet - 46, // 33: management.SetDefaultQuotaLimitsRequest.pool:type_name -> beegfs.EntityIdSet - 30, // 34: management.SetQuotaLimitsRequest.limits:type_name -> management.QuotaInfo - 46, // 35: management.GetQuotaLimitsRequest.pool:type_name -> beegfs.EntityIdSet - 30, // 36: management.GetQuotaLimitsResponse.limits:type_name -> management.QuotaInfo - 46, // 37: management.GetQuotaUsageRequest.pool:type_name -> beegfs.EntityIdSet - 30, // 38: management.GetQuotaUsageResponse.entry:type_name -> management.QuotaInfo - 51, // 39: management.GetLicenseResponse.cert_data:type_name -> license.GetCertDataResult - 46, // 40: management.GetNodesResponse.Node.id:type_name -> beegfs.EntityIdSet - 49, // 41: management.GetNodesResponse.Node.node_type:type_name -> beegfs.NodeType - 42, // 42: management.GetNodesResponse.Node.nics:type_name -> management.GetNodesResponse.Node.Nic - 52, // 43: management.GetNodesResponse.Node.Nic.nic_type:type_name -> beegfs.NicType - 46, // 44: management.GetTargetsResponse.Target.id:type_name -> beegfs.EntityIdSet - 49, // 45: management.GetTargetsResponse.Target.node_type:type_name -> beegfs.NodeType - 53, // 46: management.GetTargetsResponse.Target.reachability_state:type_name -> beegfs.ReachabilityState - 48, // 47: management.GetTargetsResponse.Target.consistency_state:type_name -> beegfs.ConsistencyState - 54, // 48: management.GetTargetsResponse.Target.cap_pool:type_name -> beegfs.CapacityPool - 46, // 49: management.GetTargetsResponse.Target.node:type_name -> beegfs.EntityIdSet - 46, // 50: management.GetTargetsResponse.Target.storage_pool:type_name -> beegfs.EntityIdSet - 46, // 51: management.GetPoolsResponse.StoragePool.id:type_name -> beegfs.EntityIdSet - 46, // 52: management.GetPoolsResponse.StoragePool.targets:type_name -> beegfs.EntityIdSet - 46, // 53: management.GetPoolsResponse.StoragePool.buddy_groups:type_name -> beegfs.EntityIdSet - 46, // 54: management.GetBuddyGroupsResponse.BuddyGroup.id:type_name -> beegfs.EntityIdSet - 49, // 55: management.GetBuddyGroupsResponse.BuddyGroup.node_type:type_name -> beegfs.NodeType - 46, // 56: management.GetBuddyGroupsResponse.BuddyGroup.primary_target:type_name -> beegfs.EntityIdSet - 46, // 57: management.GetBuddyGroupsResponse.BuddyGroup.secondary_target:type_name -> beegfs.EntityIdSet - 48, // 58: management.GetBuddyGroupsResponse.BuddyGroup.primary_consistency_state:type_name -> beegfs.ConsistencyState - 48, // 59: management.GetBuddyGroupsResponse.BuddyGroup.secondary_consistency_state:type_name -> beegfs.ConsistencyState - 46, // 60: management.GetBuddyGroupsResponse.BuddyGroup.storage_pool:type_name -> beegfs.EntityIdSet - 0, // 61: management.Management.SetAlias:input_type -> management.SetAliasRequest - 2, // 62: management.Management.GetNodes:input_type -> management.GetNodesRequest - 4, // 63: management.Management.DeleteNode:input_type -> management.DeleteNodeRequest - 6, // 64: management.Management.GetTargets:input_type -> management.GetTargetsRequest - 8, // 65: management.Management.DeleteTarget:input_type -> management.DeleteTargetRequest - 10, // 66: management.Management.SetTargetState:input_type -> management.SetTargetStateRequest - 12, // 67: management.Management.GetPools:input_type -> management.GetPoolsRequest - 14, // 68: management.Management.CreatePool:input_type -> management.CreatePoolRequest - 16, // 69: management.Management.AssignPool:input_type -> management.AssignPoolRequest - 18, // 70: management.Management.DeletePool:input_type -> management.DeletePoolRequest - 20, // 71: management.Management.GetBuddyGroups:input_type -> management.GetBuddyGroupsRequest - 22, // 72: management.Management.CreateBuddyGroup:input_type -> management.CreateBuddyGroupRequest - 24, // 73: management.Management.DeleteBuddyGroup:input_type -> management.DeleteBuddyGroupRequest - 26, // 74: management.Management.MirrorRootInode:input_type -> management.MirrorRootInodeRequest - 28, // 75: management.Management.StartResync:input_type -> management.StartResyncRequest - 31, // 76: management.Management.SetDefaultQuotaLimits:input_type -> management.SetDefaultQuotaLimitsRequest - 33, // 77: management.Management.SetQuotaLimits:input_type -> management.SetQuotaLimitsRequest - 35, // 78: management.Management.GetQuotaLimits:input_type -> management.GetQuotaLimitsRequest - 37, // 79: management.Management.GetQuotaUsage:input_type -> management.GetQuotaUsageRequest - 39, // 80: management.Management.GetLicense:input_type -> management.GetLicenseRequest - 1, // 81: management.Management.SetAlias:output_type -> management.SetAliasResponse - 3, // 82: management.Management.GetNodes:output_type -> management.GetNodesResponse - 5, // 83: management.Management.DeleteNode:output_type -> management.DeleteNodeResponse - 7, // 84: management.Management.GetTargets:output_type -> management.GetTargetsResponse - 9, // 85: management.Management.DeleteTarget:output_type -> management.DeleteTargetResponse - 11, // 86: management.Management.SetTargetState:output_type -> management.SetTargetStateResponse - 13, // 87: management.Management.GetPools:output_type -> management.GetPoolsResponse - 15, // 88: management.Management.CreatePool:output_type -> management.CreatePoolResponse - 17, // 89: management.Management.AssignPool:output_type -> management.AssignPoolResponse - 19, // 90: management.Management.DeletePool:output_type -> management.DeletePoolResponse - 21, // 91: management.Management.GetBuddyGroups:output_type -> management.GetBuddyGroupsResponse - 23, // 92: management.Management.CreateBuddyGroup:output_type -> management.CreateBuddyGroupResponse - 25, // 93: management.Management.DeleteBuddyGroup:output_type -> management.DeleteBuddyGroupResponse - 27, // 94: management.Management.MirrorRootInode:output_type -> management.MirrorRootInodeResponse - 29, // 95: management.Management.StartResync:output_type -> management.StartResyncResponse - 32, // 96: management.Management.SetDefaultQuotaLimits:output_type -> management.SetDefaultQuotaLimitsResponse - 34, // 97: management.Management.SetQuotaLimits:output_type -> management.SetQuotaLimitsResponse - 36, // 98: management.Management.GetQuotaLimits:output_type -> management.GetQuotaLimitsResponse - 38, // 99: management.Management.GetQuotaUsage:output_type -> management.GetQuotaUsageResponse - 40, // 100: management.Management.GetLicense:output_type -> management.GetLicenseResponse - 81, // [81:101] is the sub-list for method output_type - 61, // [61:81] is the sub-list for method input_type - 61, // [61:61] is the sub-list for extension type_name - 61, // [61:61] is the sub-list for extension extendee - 0, // [0:61] is the sub-list for field type_name + 50, // 0: management.SetAliasRequest.entity_id:type_name -> beegfs.EntityIdSet + 51, // 1: management.SetAliasRequest.entity_type:type_name -> beegfs.EntityType + 45, // 2: management.GetNodesResponse.nodes:type_name -> management.GetNodesResponse.Node + 50, // 3: management.GetNodesResponse.meta_root_node:type_name -> beegfs.EntityIdSet + 50, // 4: management.GetNodesResponse.meta_root_buddy_group:type_name -> beegfs.EntityIdSet + 50, // 5: management.DeleteNodeRequest.node:type_name -> beegfs.EntityIdSet + 50, // 6: management.DeleteNodeResponse.node:type_name -> beegfs.EntityIdSet + 47, // 7: management.GetTargetsResponse.targets:type_name -> management.GetTargetsResponse.Target + 50, // 8: management.DeleteTargetRequest.target:type_name -> beegfs.EntityIdSet + 50, // 9: management.DeleteTargetResponse.target:type_name -> beegfs.EntityIdSet + 50, // 10: management.SetTargetStateRequest.target:type_name -> beegfs.EntityIdSet + 52, // 11: management.SetTargetStateRequest.consistency_state:type_name -> beegfs.ConsistencyState + 48, // 12: management.GetPoolsResponse.pools:type_name -> management.GetPoolsResponse.StoragePool + 53, // 13: management.CreatePoolRequest.node_type:type_name -> beegfs.NodeType + 50, // 14: management.CreatePoolRequest.targets:type_name -> beegfs.EntityIdSet + 50, // 15: management.CreatePoolRequest.buddy_groups:type_name -> beegfs.EntityIdSet + 50, // 16: management.CreatePoolResponse.pool:type_name -> beegfs.EntityIdSet + 50, // 17: management.AssignPoolRequest.pool:type_name -> beegfs.EntityIdSet + 50, // 18: management.AssignPoolRequest.targets:type_name -> beegfs.EntityIdSet + 50, // 19: management.AssignPoolRequest.buddy_groups:type_name -> beegfs.EntityIdSet + 50, // 20: management.AssignPoolResponse.pool:type_name -> beegfs.EntityIdSet + 50, // 21: management.DeletePoolRequest.pool:type_name -> beegfs.EntityIdSet + 50, // 22: management.DeletePoolResponse.pool:type_name -> beegfs.EntityIdSet + 0, // 23: management.BuddyGroupOptions.quota_accounting:type_name -> management.BuddyGroupOptions.BuddyGroupQuotaAccounting + 49, // 24: management.GetBuddyGroupsResponse.buddy_groups:type_name -> management.GetBuddyGroupsResponse.BuddyGroup + 53, // 25: management.CreateBuddyGroupRequest.node_type:type_name -> beegfs.NodeType + 50, // 26: management.CreateBuddyGroupRequest.primary_target:type_name -> beegfs.EntityIdSet + 50, // 27: management.CreateBuddyGroupRequest.secondary_target:type_name -> beegfs.EntityIdSet + 21, // 28: management.CreateBuddyGroupRequest.options:type_name -> management.BuddyGroupOptions + 50, // 29: management.CreateBuddyGroupResponse.group:type_name -> beegfs.EntityIdSet + 50, // 30: management.ModifyBuddyGroupRequest.group:type_name -> beegfs.EntityIdSet + 21, // 31: management.ModifyBuddyGroupRequest.options:type_name -> management.BuddyGroupOptions + 50, // 32: management.DeleteBuddyGroupRequest.group:type_name -> beegfs.EntityIdSet + 50, // 33: management.DeleteBuddyGroupResponse.group:type_name -> beegfs.EntityIdSet + 50, // 34: management.StartResyncRequest.buddy_group:type_name -> beegfs.EntityIdSet + 54, // 35: management.QuotaInfo.id_type:type_name -> beegfs.QuotaIdType + 50, // 36: management.QuotaInfo.pool:type_name -> beegfs.EntityIdSet + 50, // 37: management.SetDefaultQuotaLimitsRequest.pool:type_name -> beegfs.EntityIdSet + 34, // 38: management.SetQuotaLimitsRequest.limits:type_name -> management.QuotaInfo + 50, // 39: management.GetQuotaLimitsRequest.pool:type_name -> beegfs.EntityIdSet + 34, // 40: management.GetQuotaLimitsResponse.limits:type_name -> management.QuotaInfo + 50, // 41: management.GetQuotaUsageRequest.pool:type_name -> beegfs.EntityIdSet + 34, // 42: management.GetQuotaUsageResponse.entry:type_name -> management.QuotaInfo + 55, // 43: management.GetLicenseResponse.cert_data:type_name -> license.GetCertDataResult + 50, // 44: management.GetNodesResponse.Node.id:type_name -> beegfs.EntityIdSet + 53, // 45: management.GetNodesResponse.Node.node_type:type_name -> beegfs.NodeType + 46, // 46: management.GetNodesResponse.Node.nics:type_name -> management.GetNodesResponse.Node.Nic + 56, // 47: management.GetNodesResponse.Node.Nic.nic_type:type_name -> beegfs.NicType + 50, // 48: management.GetTargetsResponse.Target.id:type_name -> beegfs.EntityIdSet + 53, // 49: management.GetTargetsResponse.Target.node_type:type_name -> beegfs.NodeType + 57, // 50: management.GetTargetsResponse.Target.reachability_state:type_name -> beegfs.ReachabilityState + 52, // 51: management.GetTargetsResponse.Target.consistency_state:type_name -> beegfs.ConsistencyState + 58, // 52: management.GetTargetsResponse.Target.cap_pool:type_name -> beegfs.CapacityPool + 50, // 53: management.GetTargetsResponse.Target.node:type_name -> beegfs.EntityIdSet + 50, // 54: management.GetTargetsResponse.Target.storage_pool:type_name -> beegfs.EntityIdSet + 50, // 55: management.GetPoolsResponse.StoragePool.id:type_name -> beegfs.EntityIdSet + 50, // 56: management.GetPoolsResponse.StoragePool.targets:type_name -> beegfs.EntityIdSet + 50, // 57: management.GetPoolsResponse.StoragePool.buddy_groups:type_name -> beegfs.EntityIdSet + 50, // 58: management.GetBuddyGroupsResponse.BuddyGroup.id:type_name -> beegfs.EntityIdSet + 53, // 59: management.GetBuddyGroupsResponse.BuddyGroup.node_type:type_name -> beegfs.NodeType + 50, // 60: management.GetBuddyGroupsResponse.BuddyGroup.primary_target:type_name -> beegfs.EntityIdSet + 50, // 61: management.GetBuddyGroupsResponse.BuddyGroup.secondary_target:type_name -> beegfs.EntityIdSet + 52, // 62: management.GetBuddyGroupsResponse.BuddyGroup.primary_consistency_state:type_name -> beegfs.ConsistencyState + 52, // 63: management.GetBuddyGroupsResponse.BuddyGroup.secondary_consistency_state:type_name -> beegfs.ConsistencyState + 50, // 64: management.GetBuddyGroupsResponse.BuddyGroup.storage_pool:type_name -> beegfs.EntityIdSet + 21, // 65: management.GetBuddyGroupsResponse.BuddyGroup.options:type_name -> management.BuddyGroupOptions + 1, // 66: management.Management.SetAlias:input_type -> management.SetAliasRequest + 3, // 67: management.Management.GetNodes:input_type -> management.GetNodesRequest + 5, // 68: management.Management.DeleteNode:input_type -> management.DeleteNodeRequest + 7, // 69: management.Management.GetTargets:input_type -> management.GetTargetsRequest + 9, // 70: management.Management.DeleteTarget:input_type -> management.DeleteTargetRequest + 11, // 71: management.Management.SetTargetState:input_type -> management.SetTargetStateRequest + 13, // 72: management.Management.GetPools:input_type -> management.GetPoolsRequest + 15, // 73: management.Management.CreatePool:input_type -> management.CreatePoolRequest + 17, // 74: management.Management.AssignPool:input_type -> management.AssignPoolRequest + 19, // 75: management.Management.DeletePool:input_type -> management.DeletePoolRequest + 22, // 76: management.Management.GetBuddyGroups:input_type -> management.GetBuddyGroupsRequest + 24, // 77: management.Management.CreateBuddyGroup:input_type -> management.CreateBuddyGroupRequest + 26, // 78: management.Management.ModifyBuddyGroup:input_type -> management.ModifyBuddyGroupRequest + 28, // 79: management.Management.DeleteBuddyGroup:input_type -> management.DeleteBuddyGroupRequest + 30, // 80: management.Management.MirrorRootInode:input_type -> management.MirrorRootInodeRequest + 32, // 81: management.Management.StartResync:input_type -> management.StartResyncRequest + 35, // 82: management.Management.SetDefaultQuotaLimits:input_type -> management.SetDefaultQuotaLimitsRequest + 37, // 83: management.Management.SetQuotaLimits:input_type -> management.SetQuotaLimitsRequest + 39, // 84: management.Management.GetQuotaLimits:input_type -> management.GetQuotaLimitsRequest + 41, // 85: management.Management.GetQuotaUsage:input_type -> management.GetQuotaUsageRequest + 43, // 86: management.Management.GetLicense:input_type -> management.GetLicenseRequest + 2, // 87: management.Management.SetAlias:output_type -> management.SetAliasResponse + 4, // 88: management.Management.GetNodes:output_type -> management.GetNodesResponse + 6, // 89: management.Management.DeleteNode:output_type -> management.DeleteNodeResponse + 8, // 90: management.Management.GetTargets:output_type -> management.GetTargetsResponse + 10, // 91: management.Management.DeleteTarget:output_type -> management.DeleteTargetResponse + 12, // 92: management.Management.SetTargetState:output_type -> management.SetTargetStateResponse + 14, // 93: management.Management.GetPools:output_type -> management.GetPoolsResponse + 16, // 94: management.Management.CreatePool:output_type -> management.CreatePoolResponse + 18, // 95: management.Management.AssignPool:output_type -> management.AssignPoolResponse + 20, // 96: management.Management.DeletePool:output_type -> management.DeletePoolResponse + 23, // 97: management.Management.GetBuddyGroups:output_type -> management.GetBuddyGroupsResponse + 25, // 98: management.Management.CreateBuddyGroup:output_type -> management.CreateBuddyGroupResponse + 27, // 99: management.Management.ModifyBuddyGroup:output_type -> management.ModifyBuddyGroupResponse + 29, // 100: management.Management.DeleteBuddyGroup:output_type -> management.DeleteBuddyGroupResponse + 31, // 101: management.Management.MirrorRootInode:output_type -> management.MirrorRootInodeResponse + 33, // 102: management.Management.StartResync:output_type -> management.StartResyncResponse + 36, // 103: management.Management.SetDefaultQuotaLimits:output_type -> management.SetDefaultQuotaLimitsResponse + 38, // 104: management.Management.SetQuotaLimits:output_type -> management.SetQuotaLimitsResponse + 40, // 105: management.Management.GetQuotaLimits:output_type -> management.GetQuotaLimitsResponse + 42, // 106: management.Management.GetQuotaUsage:output_type -> management.GetQuotaUsageResponse + 44, // 107: management.Management.GetLicense:output_type -> management.GetLicenseResponse + 87, // [87:108] is the sub-list for method output_type + 66, // [66:87] is the sub-list for method input_type + 66, // [66:66] is the sub-list for extension type_name + 66, // [66:66] is the sub-list for extension extendee + 0, // [0:66] is the sub-list for field type_name } func init() { file_management_proto_init() } @@ -5655,34 +6038,37 @@ func file_management_proto_init() { file_management_proto_msgTypes[17].OneofWrappers = []any{} file_management_proto_msgTypes[18].OneofWrappers = []any{} file_management_proto_msgTypes[19].OneofWrappers = []any{} - file_management_proto_msgTypes[22].OneofWrappers = []any{} + file_management_proto_msgTypes[20].OneofWrappers = []any{} file_management_proto_msgTypes[23].OneofWrappers = []any{} file_management_proto_msgTypes[24].OneofWrappers = []any{} file_management_proto_msgTypes[25].OneofWrappers = []any{} + file_management_proto_msgTypes[27].OneofWrappers = []any{} file_management_proto_msgTypes[28].OneofWrappers = []any{} - file_management_proto_msgTypes[30].OneofWrappers = []any{} file_management_proto_msgTypes[31].OneofWrappers = []any{} - file_management_proto_msgTypes[35].OneofWrappers = []any{} - file_management_proto_msgTypes[36].OneofWrappers = []any{} - file_management_proto_msgTypes[37].OneofWrappers = []any{} + file_management_proto_msgTypes[33].OneofWrappers = []any{} + file_management_proto_msgTypes[34].OneofWrappers = []any{} file_management_proto_msgTypes[38].OneofWrappers = []any{} file_management_proto_msgTypes[39].OneofWrappers = []any{} file_management_proto_msgTypes[40].OneofWrappers = []any{} + file_management_proto_msgTypes[41].OneofWrappers = []any{} + file_management_proto_msgTypes[42].OneofWrappers = []any{} file_management_proto_msgTypes[43].OneofWrappers = []any{} - file_management_proto_msgTypes[44].OneofWrappers = []any{} - file_management_proto_msgTypes[45].OneofWrappers = []any{} + file_management_proto_msgTypes[46].OneofWrappers = []any{} + file_management_proto_msgTypes[47].OneofWrappers = []any{} + file_management_proto_msgTypes[48].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_management_proto_rawDesc, - NumEnums: 0, - NumMessages: 46, + NumEnums: 1, + NumMessages: 49, NumExtensions: 0, NumServices: 1, }, GoTypes: file_management_proto_goTypes, DependencyIndexes: file_management_proto_depIdxs, + EnumInfos: file_management_proto_enumTypes, MessageInfos: file_management_proto_msgTypes, }.Build() File_management_proto = out.File diff --git a/go/management/management_grpc.pb.go b/go/management/management_grpc.pb.go index 92fa8bd..53557d9 100644 --- a/go/management/management_grpc.pb.go +++ b/go/management/management_grpc.pb.go @@ -31,6 +31,7 @@ const ( Management_DeletePool_FullMethodName = "/management.Management/DeletePool" Management_GetBuddyGroups_FullMethodName = "/management.Management/GetBuddyGroups" Management_CreateBuddyGroup_FullMethodName = "/management.Management/CreateBuddyGroup" + Management_ModifyBuddyGroup_FullMethodName = "/management.Management/ModifyBuddyGroup" Management_DeleteBuddyGroup_FullMethodName = "/management.Management/DeleteBuddyGroup" Management_MirrorRootInode_FullMethodName = "/management.Management/MirrorRootInode" Management_StartResync_FullMethodName = "/management.Management/StartResync" @@ -62,6 +63,7 @@ type ManagementClient interface { // Buddy groups GetBuddyGroups(ctx context.Context, in *GetBuddyGroupsRequest, opts ...grpc.CallOption) (*GetBuddyGroupsResponse, error) CreateBuddyGroup(ctx context.Context, in *CreateBuddyGroupRequest, opts ...grpc.CallOption) (*CreateBuddyGroupResponse, error) + ModifyBuddyGroup(ctx context.Context, in *ModifyBuddyGroupRequest, opts ...grpc.CallOption) (*ModifyBuddyGroupResponse, error) DeleteBuddyGroup(ctx context.Context, in *DeleteBuddyGroupRequest, opts ...grpc.CallOption) (*DeleteBuddyGroupResponse, error) MirrorRootInode(ctx context.Context, in *MirrorRootInodeRequest, opts ...grpc.CallOption) (*MirrorRootInodeResponse, error) StartResync(ctx context.Context, in *StartResyncRequest, opts ...grpc.CallOption) (*StartResyncResponse, error) @@ -202,6 +204,16 @@ func (c *managementClient) CreateBuddyGroup(ctx context.Context, in *CreateBuddy return out, nil } +func (c *managementClient) ModifyBuddyGroup(ctx context.Context, in *ModifyBuddyGroupRequest, opts ...grpc.CallOption) (*ModifyBuddyGroupResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(ModifyBuddyGroupResponse) + err := c.cc.Invoke(ctx, Management_ModifyBuddyGroup_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *managementClient) DeleteBuddyGroup(ctx context.Context, in *DeleteBuddyGroupRequest, opts ...grpc.CallOption) (*DeleteBuddyGroupResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DeleteBuddyGroupResponse) @@ -321,6 +333,7 @@ type ManagementServer interface { // Buddy groups GetBuddyGroups(context.Context, *GetBuddyGroupsRequest) (*GetBuddyGroupsResponse, error) CreateBuddyGroup(context.Context, *CreateBuddyGroupRequest) (*CreateBuddyGroupResponse, error) + ModifyBuddyGroup(context.Context, *ModifyBuddyGroupRequest) (*ModifyBuddyGroupResponse, error) DeleteBuddyGroup(context.Context, *DeleteBuddyGroupRequest) (*DeleteBuddyGroupResponse, error) MirrorRootInode(context.Context, *MirrorRootInodeRequest) (*MirrorRootInodeResponse, error) StartResync(context.Context, *StartResyncRequest) (*StartResyncResponse, error) @@ -377,6 +390,9 @@ func (UnimplementedManagementServer) GetBuddyGroups(context.Context, *GetBuddyGr func (UnimplementedManagementServer) CreateBuddyGroup(context.Context, *CreateBuddyGroupRequest) (*CreateBuddyGroupResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateBuddyGroup not implemented") } +func (UnimplementedManagementServer) ModifyBuddyGroup(context.Context, *ModifyBuddyGroupRequest) (*ModifyBuddyGroupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ModifyBuddyGroup not implemented") +} func (UnimplementedManagementServer) DeleteBuddyGroup(context.Context, *DeleteBuddyGroupRequest) (*DeleteBuddyGroupResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteBuddyGroup not implemented") } @@ -638,6 +654,24 @@ func _Management_CreateBuddyGroup_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _Management_ModifyBuddyGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ModifyBuddyGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ManagementServer).ModifyBuddyGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Management_ModifyBuddyGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ManagementServer).ModifyBuddyGroup(ctx, req.(*ModifyBuddyGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Management_DeleteBuddyGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteBuddyGroupRequest) if err := dec(in); err != nil { @@ -823,6 +857,10 @@ var Management_ServiceDesc = grpc.ServiceDesc{ MethodName: "CreateBuddyGroup", Handler: _Management_CreateBuddyGroup_Handler, }, + { + MethodName: "ModifyBuddyGroup", + Handler: _Management_ModifyBuddyGroup_Handler, + }, { MethodName: "DeleteBuddyGroup", Handler: _Management_DeleteBuddyGroup_Handler, diff --git a/go/management/management_protoopaque.pb.go b/go/management/management_protoopaque.pb.go index 5ec382d..3f939e4 100644 --- a/go/management/management_protoopaque.pb.go +++ b/go/management/management_protoopaque.pb.go @@ -23,6 +23,50 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type BuddyGroupOptions_BuddyGroupQuotaAccounting int32 + +const ( + BuddyGroupOptions_BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED BuddyGroupOptions_BuddyGroupQuotaAccounting = 0 + BuddyGroupOptions_BUDDY_GROUP_QUOTA_ACCOUNTING_PRIMARY BuddyGroupOptions_BuddyGroupQuotaAccounting = 1 + BuddyGroupOptions_BUDDY_GROUP_QUOTA_ACCOUNTING_BOTH BuddyGroupOptions_BuddyGroupQuotaAccounting = 2 +) + +// Enum value maps for BuddyGroupOptions_BuddyGroupQuotaAccounting. +var ( + BuddyGroupOptions_BuddyGroupQuotaAccounting_name = map[int32]string{ + 0: "BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED", + 1: "BUDDY_GROUP_QUOTA_ACCOUNTING_PRIMARY", + 2: "BUDDY_GROUP_QUOTA_ACCOUNTING_BOTH", + } + BuddyGroupOptions_BuddyGroupQuotaAccounting_value = map[string]int32{ + "BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED": 0, + "BUDDY_GROUP_QUOTA_ACCOUNTING_PRIMARY": 1, + "BUDDY_GROUP_QUOTA_ACCOUNTING_BOTH": 2, + } +) + +func (x BuddyGroupOptions_BuddyGroupQuotaAccounting) Enum() *BuddyGroupOptions_BuddyGroupQuotaAccounting { + p := new(BuddyGroupOptions_BuddyGroupQuotaAccounting) + *p = x + return p +} + +func (x BuddyGroupOptions_BuddyGroupQuotaAccounting) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BuddyGroupOptions_BuddyGroupQuotaAccounting) Descriptor() protoreflect.EnumDescriptor { + return file_management_proto_enumTypes[0].Descriptor() +} + +func (BuddyGroupOptions_BuddyGroupQuotaAccounting) Type() protoreflect.EnumType { + return &file_management_proto_enumTypes[0] +} + +func (x BuddyGroupOptions_BuddyGroupQuotaAccounting) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + // Sets an entity alias. type SetAliasRequest struct { state protoimpl.MessageState `protogen:"opaque.v1"` @@ -1711,6 +1755,88 @@ func (b0 DeletePoolResponse_builder) Build() *DeletePoolResponse { return m0 } +type BuddyGroupOptions struct { + state protoimpl.MessageState `protogen:"opaque.v1"` + xxx_hidden_QuotaAccounting BuddyGroupOptions_BuddyGroupQuotaAccounting `protobuf:"varint,1,opt,name=quota_accounting,json=quotaAccounting,proto3,enum=management.BuddyGroupOptions_BuddyGroupQuotaAccounting,oneof" json:"quota_accounting,omitempty"` + XXX_raceDetectHookData protoimpl.RaceDetectHookData + XXX_presence [1]uint32 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *BuddyGroupOptions) Reset() { + *x = BuddyGroupOptions{} + mi := &file_management_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BuddyGroupOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuddyGroupOptions) ProtoMessage() {} + +func (x *BuddyGroupOptions) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +func (x *BuddyGroupOptions) GetQuotaAccounting() BuddyGroupOptions_BuddyGroupQuotaAccounting { + if x != nil { + if protoimpl.X.Present(&(x.XXX_presence[0]), 0) { + return x.xxx_hidden_QuotaAccounting + } + } + return BuddyGroupOptions_BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED +} + +func (x *BuddyGroupOptions) SetQuotaAccounting(v BuddyGroupOptions_BuddyGroupQuotaAccounting) { + x.xxx_hidden_QuotaAccounting = v + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 1) +} + +func (x *BuddyGroupOptions) HasQuotaAccounting() bool { + if x == nil { + return false + } + return protoimpl.X.Present(&(x.XXX_presence[0]), 0) +} + +func (x *BuddyGroupOptions) ClearQuotaAccounting() { + protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0) + x.xxx_hidden_QuotaAccounting = BuddyGroupOptions_BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED +} + +type BuddyGroupOptions_builder struct { + _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. + + // The quota accounting mode for this buddy group. + // When used for setting options: Optional if the corresponding buddy group is a storage group, + // unset otherwise. + // When used for getting options: Required if the corresponding buddy group is a storage group, + // unset otherwise. + QuotaAccounting *BuddyGroupOptions_BuddyGroupQuotaAccounting +} + +func (b0 BuddyGroupOptions_builder) Build() *BuddyGroupOptions { + m0 := &BuddyGroupOptions{} + b, x := &b0, m0 + _, _ = b, x + if b.QuotaAccounting != nil { + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 1) + x.xxx_hidden_QuotaAccounting = *b.QuotaAccounting + } + return m0 +} + // Gets the list of buddy groups. type GetBuddyGroupsRequest struct { state protoimpl.MessageState `protogen:"opaque.v1"` @@ -1720,7 +1846,7 @@ type GetBuddyGroupsRequest struct { func (x *GetBuddyGroupsRequest) Reset() { *x = GetBuddyGroupsRequest{} - mi := &file_management_proto_msgTypes[20] + mi := &file_management_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1732,7 +1858,7 @@ func (x *GetBuddyGroupsRequest) String() string { func (*GetBuddyGroupsRequest) ProtoMessage() {} func (x *GetBuddyGroupsRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[20] + mi := &file_management_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1764,7 +1890,7 @@ type GetBuddyGroupsResponse struct { func (x *GetBuddyGroupsResponse) Reset() { *x = GetBuddyGroupsResponse{} - mi := &file_management_proto_msgTypes[21] + mi := &file_management_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1776,7 +1902,7 @@ func (x *GetBuddyGroupsResponse) String() string { func (*GetBuddyGroupsResponse) ProtoMessage() {} func (x *GetBuddyGroupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[21] + mi := &file_management_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1823,6 +1949,7 @@ type CreateBuddyGroupRequest struct { xxx_hidden_Alias *string `protobuf:"bytes,3,opt,name=alias,proto3,oneof" json:"alias,omitempty"` xxx_hidden_PrimaryTarget *beegfs.EntityIdSet `protobuf:"bytes,4,opt,name=primary_target,json=primaryTarget,proto3,oneof" json:"primary_target,omitempty"` xxx_hidden_SecondaryTarget *beegfs.EntityIdSet `protobuf:"bytes,5,opt,name=secondary_target,json=secondaryTarget,proto3,oneof" json:"secondary_target,omitempty"` + xxx_hidden_Options *BuddyGroupOptions `protobuf:"bytes,6,opt,name=options,proto3,oneof" json:"options,omitempty"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -1831,7 +1958,7 @@ type CreateBuddyGroupRequest struct { func (x *CreateBuddyGroupRequest) Reset() { *x = CreateBuddyGroupRequest{} - mi := &file_management_proto_msgTypes[22] + mi := &file_management_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1843,7 +1970,7 @@ func (x *CreateBuddyGroupRequest) String() string { func (*CreateBuddyGroupRequest) ProtoMessage() {} func (x *CreateBuddyGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[22] + mi := &file_management_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1894,19 +2021,26 @@ func (x *CreateBuddyGroupRequest) GetSecondaryTarget() *beegfs.EntityIdSet { return nil } +func (x *CreateBuddyGroupRequest) GetOptions() *BuddyGroupOptions { + if x != nil { + return x.xxx_hidden_Options + } + return nil +} + func (x *CreateBuddyGroupRequest) SetNodeType(v beegfs.NodeType) { x.xxx_hidden_NodeType = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 5) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 0, 6) } func (x *CreateBuddyGroupRequest) SetNumId(v uint32) { x.xxx_hidden_NumId = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 5) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 1, 6) } func (x *CreateBuddyGroupRequest) SetAlias(v string) { x.xxx_hidden_Alias = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 5) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 2, 6) } func (x *CreateBuddyGroupRequest) SetPrimaryTarget(v *beegfs.EntityIdSet) { @@ -1917,6 +2051,10 @@ func (x *CreateBuddyGroupRequest) SetSecondaryTarget(v *beegfs.EntityIdSet) { x.xxx_hidden_SecondaryTarget = v } +func (x *CreateBuddyGroupRequest) SetOptions(v *BuddyGroupOptions) { + x.xxx_hidden_Options = v +} + func (x *CreateBuddyGroupRequest) HasNodeType() bool { if x == nil { return false @@ -1952,6 +2090,13 @@ func (x *CreateBuddyGroupRequest) HasSecondaryTarget() bool { return x.xxx_hidden_SecondaryTarget != nil } +func (x *CreateBuddyGroupRequest) HasOptions() bool { + if x == nil { + return false + } + return x.xxx_hidden_Options != nil +} + func (x *CreateBuddyGroupRequest) ClearNodeType() { protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 0) x.xxx_hidden_NodeType = beegfs.NodeType_NODE_TYPE_UNSPECIFIED @@ -1975,6 +2120,10 @@ func (x *CreateBuddyGroupRequest) ClearSecondaryTarget() { x.xxx_hidden_SecondaryTarget = nil } +func (x *CreateBuddyGroupRequest) ClearOptions() { + x.xxx_hidden_Options = nil +} + type CreateBuddyGroupRequest_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -1993,6 +2142,9 @@ type CreateBuddyGroupRequest_builder struct { // The new buddy groups secondary target. // Required. One identifier is sufficient. SecondaryTarget *beegfs.EntityIdSet + // The options for this buddy group. + // Required. + Options *BuddyGroupOptions } func (b0 CreateBuddyGroupRequest_builder) Build() *CreateBuddyGroupRequest { @@ -2000,19 +2152,20 @@ func (b0 CreateBuddyGroupRequest_builder) Build() *CreateBuddyGroupRequest { b, x := &b0, m0 _, _ = b, x if b.NodeType != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 5) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 0, 6) x.xxx_hidden_NodeType = *b.NodeType } if b.NumId != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 5) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 1, 6) x.xxx_hidden_NumId = *b.NumId } if b.Alias != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 5) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 2, 6) x.xxx_hidden_Alias = b.Alias } x.xxx_hidden_PrimaryTarget = b.PrimaryTarget x.xxx_hidden_SecondaryTarget = b.SecondaryTarget + x.xxx_hidden_Options = b.Options return m0 } @@ -2025,7 +2178,7 @@ type CreateBuddyGroupResponse struct { func (x *CreateBuddyGroupResponse) Reset() { *x = CreateBuddyGroupResponse{} - mi := &file_management_proto_msgTypes[23] + mi := &file_management_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2037,7 +2190,7 @@ func (x *CreateBuddyGroupResponse) String() string { func (*CreateBuddyGroupResponse) ProtoMessage() {} func (x *CreateBuddyGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[23] + mi := &file_management_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2086,6 +2239,147 @@ func (b0 CreateBuddyGroupResponse_builder) Build() *CreateBuddyGroupResponse { return m0 } +// Modifies a buddy group or its config. +type ModifyBuddyGroupRequest struct { + state protoimpl.MessageState `protogen:"opaque.v1"` + xxx_hidden_Group *beegfs.EntityIdSet `protobuf:"bytes,1,opt,name=group,proto3,oneof" json:"group,omitempty"` + xxx_hidden_Options *BuddyGroupOptions `protobuf:"bytes,2,opt,name=options,proto3,oneof" json:"options,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModifyBuddyGroupRequest) Reset() { + *x = ModifyBuddyGroupRequest{} + mi := &file_management_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModifyBuddyGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModifyBuddyGroupRequest) ProtoMessage() {} + +func (x *ModifyBuddyGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +func (x *ModifyBuddyGroupRequest) GetGroup() *beegfs.EntityIdSet { + if x != nil { + return x.xxx_hidden_Group + } + return nil +} + +func (x *ModifyBuddyGroupRequest) GetOptions() *BuddyGroupOptions { + if x != nil { + return x.xxx_hidden_Options + } + return nil +} + +func (x *ModifyBuddyGroupRequest) SetGroup(v *beegfs.EntityIdSet) { + x.xxx_hidden_Group = v +} + +func (x *ModifyBuddyGroupRequest) SetOptions(v *BuddyGroupOptions) { + x.xxx_hidden_Options = v +} + +func (x *ModifyBuddyGroupRequest) HasGroup() bool { + if x == nil { + return false + } + return x.xxx_hidden_Group != nil +} + +func (x *ModifyBuddyGroupRequest) HasOptions() bool { + if x == nil { + return false + } + return x.xxx_hidden_Options != nil +} + +func (x *ModifyBuddyGroupRequest) ClearGroup() { + x.xxx_hidden_Group = nil +} + +func (x *ModifyBuddyGroupRequest) ClearOptions() { + x.xxx_hidden_Options = nil +} + +type ModifyBuddyGroupRequest_builder struct { + _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. + + // The buddy group to modify. + // Required. One identifier is sufficient. + Group *beegfs.EntityIdSet + // The options for this buddy group. + // Required. + Options *BuddyGroupOptions +} + +func (b0 ModifyBuddyGroupRequest_builder) Build() *ModifyBuddyGroupRequest { + m0 := &ModifyBuddyGroupRequest{} + b, x := &b0, m0 + _, _ = b, x + x.xxx_hidden_Group = b.Group + x.xxx_hidden_Options = b.Options + return m0 +} + +type ModifyBuddyGroupResponse struct { + state protoimpl.MessageState `protogen:"opaque.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ModifyBuddyGroupResponse) Reset() { + *x = ModifyBuddyGroupResponse{} + mi := &file_management_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ModifyBuddyGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModifyBuddyGroupResponse) ProtoMessage() {} + +func (x *ModifyBuddyGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_management_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +type ModifyBuddyGroupResponse_builder struct { + _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. + +} + +func (b0 ModifyBuddyGroupResponse_builder) Build() *ModifyBuddyGroupResponse { + m0 := &ModifyBuddyGroupResponse{} + b, x := &b0, m0 + _, _ = b, x + return m0 +} + // Deletes a buddy group from the system. type DeleteBuddyGroupRequest struct { state protoimpl.MessageState `protogen:"opaque.v1"` @@ -2099,7 +2393,7 @@ type DeleteBuddyGroupRequest struct { func (x *DeleteBuddyGroupRequest) Reset() { *x = DeleteBuddyGroupRequest{} - mi := &file_management_proto_msgTypes[24] + mi := &file_management_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2111,7 +2405,7 @@ func (x *DeleteBuddyGroupRequest) String() string { func (*DeleteBuddyGroupRequest) ProtoMessage() {} func (x *DeleteBuddyGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[24] + mi := &file_management_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2201,7 +2495,7 @@ type DeleteBuddyGroupResponse struct { func (x *DeleteBuddyGroupResponse) Reset() { *x = DeleteBuddyGroupResponse{} - mi := &file_management_proto_msgTypes[25] + mi := &file_management_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2213,7 +2507,7 @@ func (x *DeleteBuddyGroupResponse) String() string { func (*DeleteBuddyGroupResponse) ProtoMessage() {} func (x *DeleteBuddyGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[25] + mi := &file_management_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2271,7 +2565,7 @@ type MirrorRootInodeRequest struct { func (x *MirrorRootInodeRequest) Reset() { *x = MirrorRootInodeRequest{} - mi := &file_management_proto_msgTypes[26] + mi := &file_management_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2283,7 +2577,7 @@ func (x *MirrorRootInodeRequest) String() string { func (*MirrorRootInodeRequest) ProtoMessage() {} func (x *MirrorRootInodeRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[26] + mi := &file_management_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2314,7 +2608,7 @@ type MirrorRootInodeResponse struct { func (x *MirrorRootInodeResponse) Reset() { *x = MirrorRootInodeResponse{} - mi := &file_management_proto_msgTypes[27] + mi := &file_management_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2326,7 +2620,7 @@ func (x *MirrorRootInodeResponse) String() string { func (*MirrorRootInodeResponse) ProtoMessage() {} func (x *MirrorRootInodeResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[27] + mi := &file_management_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2363,7 +2657,7 @@ type StartResyncRequest struct { func (x *StartResyncRequest) Reset() { *x = StartResyncRequest{} - mi := &file_management_proto_msgTypes[28] + mi := &file_management_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2375,7 +2669,7 @@ func (x *StartResyncRequest) String() string { func (*StartResyncRequest) ProtoMessage() {} func (x *StartResyncRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[28] + mi := &file_management_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2494,7 +2788,7 @@ type StartResyncResponse struct { func (x *StartResyncResponse) Reset() { *x = StartResyncResponse{} - mi := &file_management_proto_msgTypes[29] + mi := &file_management_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2506,7 +2800,7 @@ func (x *StartResyncResponse) String() string { func (*StartResyncResponse) ProtoMessage() {} func (x *StartResyncResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[29] + mi := &file_management_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2548,7 +2842,7 @@ type QuotaInfo struct { func (x *QuotaInfo) Reset() { *x = QuotaInfo{} - mi := &file_management_proto_msgTypes[30] + mi := &file_management_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2560,7 +2854,7 @@ func (x *QuotaInfo) String() string { func (*QuotaInfo) ProtoMessage() {} func (x *QuotaInfo) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[30] + mi := &file_management_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2799,7 +3093,7 @@ type SetDefaultQuotaLimitsRequest struct { func (x *SetDefaultQuotaLimitsRequest) Reset() { *x = SetDefaultQuotaLimitsRequest{} - mi := &file_management_proto_msgTypes[31] + mi := &file_management_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2811,7 +3105,7 @@ func (x *SetDefaultQuotaLimitsRequest) String() string { func (*SetDefaultQuotaLimitsRequest) ProtoMessage() {} func (x *SetDefaultQuotaLimitsRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[31] + mi := &file_management_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2992,7 +3286,7 @@ type SetDefaultQuotaLimitsResponse struct { func (x *SetDefaultQuotaLimitsResponse) Reset() { *x = SetDefaultQuotaLimitsResponse{} - mi := &file_management_proto_msgTypes[32] + mi := &file_management_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3004,7 +3298,7 @@ func (x *SetDefaultQuotaLimitsResponse) String() string { func (*SetDefaultQuotaLimitsResponse) ProtoMessage() {} func (x *SetDefaultQuotaLimitsResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[32] + mi := &file_management_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3037,7 +3331,7 @@ type SetQuotaLimitsRequest struct { func (x *SetQuotaLimitsRequest) Reset() { *x = SetQuotaLimitsRequest{} - mi := &file_management_proto_msgTypes[33] + mi := &file_management_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3049,7 +3343,7 @@ func (x *SetQuotaLimitsRequest) String() string { func (*SetQuotaLimitsRequest) ProtoMessage() {} func (x *SetQuotaLimitsRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[33] + mi := &file_management_proto_msgTypes[36] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3096,7 +3390,7 @@ type SetQuotaLimitsResponse struct { func (x *SetQuotaLimitsResponse) Reset() { *x = SetQuotaLimitsResponse{} - mi := &file_management_proto_msgTypes[34] + mi := &file_management_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3108,7 +3402,7 @@ func (x *SetQuotaLimitsResponse) String() string { func (*SetQuotaLimitsResponse) ProtoMessage() {} func (x *SetQuotaLimitsResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[34] + mi := &file_management_proto_msgTypes[37] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3151,7 +3445,7 @@ type GetQuotaLimitsRequest struct { func (x *GetQuotaLimitsRequest) Reset() { *x = GetQuotaLimitsRequest{} - mi := &file_management_proto_msgTypes[35] + mi := &file_management_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3163,7 +3457,7 @@ func (x *GetQuotaLimitsRequest) String() string { func (*GetQuotaLimitsRequest) ProtoMessage() {} func (x *GetQuotaLimitsRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[35] + mi := &file_management_proto_msgTypes[38] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3374,7 +3668,7 @@ type GetQuotaLimitsResponse struct { func (x *GetQuotaLimitsResponse) Reset() { *x = GetQuotaLimitsResponse{} - mi := &file_management_proto_msgTypes[36] + mi := &file_management_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3386,7 +3680,7 @@ func (x *GetQuotaLimitsResponse) String() string { func (*GetQuotaLimitsResponse) ProtoMessage() {} func (x *GetQuotaLimitsResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[36] + mi := &file_management_proto_msgTypes[39] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3458,7 +3752,7 @@ type GetQuotaUsageRequest struct { func (x *GetQuotaUsageRequest) Reset() { *x = GetQuotaUsageRequest{} - mi := &file_management_proto_msgTypes[37] + mi := &file_management_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3470,7 +3764,7 @@ func (x *GetQuotaUsageRequest) String() string { func (*GetQuotaUsageRequest) ProtoMessage() {} func (x *GetQuotaUsageRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[37] + mi := &file_management_proto_msgTypes[40] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3715,7 +4009,7 @@ type GetQuotaUsageResponse struct { func (x *GetQuotaUsageResponse) Reset() { *x = GetQuotaUsageResponse{} - mi := &file_management_proto_msgTypes[38] + mi := &file_management_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3727,7 +4021,7 @@ func (x *GetQuotaUsageResponse) String() string { func (*GetQuotaUsageResponse) ProtoMessage() {} func (x *GetQuotaUsageResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[38] + mi := &file_management_proto_msgTypes[41] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3820,7 +4114,7 @@ type GetLicenseRequest struct { func (x *GetLicenseRequest) Reset() { *x = GetLicenseRequest{} - mi := &file_management_proto_msgTypes[39] + mi := &file_management_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3832,7 +4126,7 @@ func (x *GetLicenseRequest) String() string { func (*GetLicenseRequest) ProtoMessage() {} func (x *GetLicenseRequest) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[39] + mi := &file_management_proto_msgTypes[42] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3895,7 +4189,7 @@ type GetLicenseResponse struct { func (x *GetLicenseResponse) Reset() { *x = GetLicenseResponse{} - mi := &file_management_proto_msgTypes[40] + mi := &file_management_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3907,7 +4201,7 @@ func (x *GetLicenseResponse) String() string { func (*GetLicenseResponse) ProtoMessage() {} func (x *GetLicenseResponse) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[40] + mi := &file_management_proto_msgTypes[43] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3969,7 +4263,7 @@ type GetNodesResponse_Node struct { func (x *GetNodesResponse_Node) Reset() { *x = GetNodesResponse_Node{} - mi := &file_management_proto_msgTypes[41] + mi := &file_management_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3981,7 +4275,7 @@ func (x *GetNodesResponse_Node) String() string { func (*GetNodesResponse_Node) ProtoMessage() {} func (x *GetNodesResponse_Node) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[41] + mi := &file_management_proto_msgTypes[44] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4088,7 +4382,7 @@ type GetNodesResponse_Node_Nic struct { func (x *GetNodesResponse_Node_Nic) Reset() { *x = GetNodesResponse_Node_Nic{} - mi := &file_management_proto_msgTypes[42] + mi := &file_management_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4100,7 +4394,7 @@ func (x *GetNodesResponse_Node_Nic) String() string { func (*GetNodesResponse_Node_Nic) ProtoMessage() {} func (x *GetNodesResponse_Node_Nic) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[42] + mi := &file_management_proto_msgTypes[45] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4191,7 +4485,7 @@ type GetTargetsResponse_Target struct { func (x *GetTargetsResponse_Target) Reset() { *x = GetTargetsResponse_Target{} - mi := &file_management_proto_msgTypes[43] + mi := &file_management_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4203,7 +4497,7 @@ func (x *GetTargetsResponse_Target) String() string { func (*GetTargetsResponse_Target) ProtoMessage() {} func (x *GetTargetsResponse_Target) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[43] + mi := &file_management_proto_msgTypes[46] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4539,7 +4833,7 @@ type GetPoolsResponse_StoragePool struct { func (x *GetPoolsResponse_StoragePool) Reset() { *x = GetPoolsResponse_StoragePool{} - mi := &file_management_proto_msgTypes[44] + mi := &file_management_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4551,7 +4845,7 @@ func (x *GetPoolsResponse_StoragePool) String() string { func (*GetPoolsResponse_StoragePool) ProtoMessage() {} func (x *GetPoolsResponse_StoragePool) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[44] + mi := &file_management_proto_msgTypes[47] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4772,13 +5066,14 @@ type GetBuddyGroupsResponse_BuddyGroup struct { xxx_hidden_PrimaryConsistencyState beegfs.ConsistencyState `protobuf:"varint,5,opt,name=primary_consistency_state,json=primaryConsistencyState,proto3,enum=beegfs.ConsistencyState" json:"primary_consistency_state,omitempty"` xxx_hidden_SecondaryConsistencyState beegfs.ConsistencyState `protobuf:"varint,6,opt,name=secondary_consistency_state,json=secondaryConsistencyState,proto3,enum=beegfs.ConsistencyState" json:"secondary_consistency_state,omitempty"` xxx_hidden_StoragePool *beegfs.EntityIdSet `protobuf:"bytes,7,opt,name=storage_pool,json=storagePool,proto3,oneof" json:"storage_pool,omitempty"` + xxx_hidden_Options *BuddyGroupOptions `protobuf:"bytes,8,opt,name=options,proto3,oneof" json:"options,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetBuddyGroupsResponse_BuddyGroup) Reset() { *x = GetBuddyGroupsResponse_BuddyGroup{} - mi := &file_management_proto_msgTypes[45] + mi := &file_management_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4790,7 +5085,7 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) String() string { func (*GetBuddyGroupsResponse_BuddyGroup) ProtoMessage() {} func (x *GetBuddyGroupsResponse_BuddyGroup) ProtoReflect() protoreflect.Message { - mi := &file_management_proto_msgTypes[45] + mi := &file_management_proto_msgTypes[48] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4850,6 +5145,13 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) GetStoragePool() *beegfs.EntityIdSet return nil } +func (x *GetBuddyGroupsResponse_BuddyGroup) GetOptions() *BuddyGroupOptions { + if x != nil { + return x.xxx_hidden_Options + } + return nil +} + func (x *GetBuddyGroupsResponse_BuddyGroup) SetId(v *beegfs.EntityIdSet) { x.xxx_hidden_Id = v } @@ -4878,6 +5180,10 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) SetStoragePool(v *beegfs.EntityIdSet x.xxx_hidden_StoragePool = v } +func (x *GetBuddyGroupsResponse_BuddyGroup) SetOptions(v *BuddyGroupOptions) { + x.xxx_hidden_Options = v +} + func (x *GetBuddyGroupsResponse_BuddyGroup) HasId() bool { if x == nil { return false @@ -4906,6 +5212,13 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) HasStoragePool() bool { return x.xxx_hidden_StoragePool != nil } +func (x *GetBuddyGroupsResponse_BuddyGroup) HasOptions() bool { + if x == nil { + return false + } + return x.xxx_hidden_Options != nil +} + func (x *GetBuddyGroupsResponse_BuddyGroup) ClearId() { x.xxx_hidden_Id = nil } @@ -4922,6 +5235,10 @@ func (x *GetBuddyGroupsResponse_BuddyGroup) ClearStoragePool() { x.xxx_hidden_StoragePool = nil } +func (x *GetBuddyGroupsResponse_BuddyGroup) ClearOptions() { + x.xxx_hidden_Options = nil +} + type GetBuddyGroupsResponse_BuddyGroup_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -4947,6 +5264,9 @@ type GetBuddyGroupsResponse_BuddyGroup_builder struct { // Required if this target is a storage target (e.g. node_type is STORAGE), unset otherwise. If // set, should be completely populated. StoragePool *beegfs.EntityIdSet + // The options for this buddy group. + // Required. + Options *BuddyGroupOptions } func (b0 GetBuddyGroupsResponse_BuddyGroup_builder) Build() *GetBuddyGroupsResponse_BuddyGroup { @@ -4960,6 +5280,7 @@ func (b0 GetBuddyGroupsResponse_BuddyGroup_builder) Build() *GetBuddyGroupsRespo x.xxx_hidden_PrimaryConsistencyState = b.PrimaryConsistencyState x.xxx_hidden_SecondaryConsistencyState = b.SecondaryConsistencyState x.xxx_hidden_StoragePool = b.StoragePool + x.xxx_hidden_Options = b.Options return m0 } @@ -5196,289 +5517,335 @@ var file_management_proto_rawDesc = []byte{ 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, - 0x6c, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc7, 0x04, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0b, 0x62, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0xda, 0x03, 0x0a, 0x0a, 0x42, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x09, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, - 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x70, 0x72, - 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x54, 0x0a, 0x19, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x62, 0x65, 0x65, 0x67, - 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x1b, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x18, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x19, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, - 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, - 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, 0x6c, - 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0xd5, 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x4e, 0x6f, 0x64, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x05, 0x6e, 0x75, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, + 0x6c, 0x22, 0xae, 0x02, 0x0a, 0x11, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x67, 0x0a, 0x10, 0x71, 0x75, 0x6f, 0x74, 0x61, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x37, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x42, + 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x71, 0x75, + 0x6f, 0x74, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, + 0x22, 0x9a, 0x01, 0x0a, 0x19, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x51, + 0x75, 0x6f, 0x74, 0x61, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2c, + 0x0a, 0x28, 0x42, 0x55, 0x44, 0x44, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x51, 0x55, + 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x28, 0x0a, 0x24, + 0x42, 0x55, 0x44, 0x44, 0x59, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x51, 0x55, 0x4f, 0x54, + 0x41, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x52, 0x49, + 0x4d, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x55, 0x44, 0x44, 0x59, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x41, 0x43, 0x43, 0x4f, + 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x02, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, + 0x6e, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x91, 0x05, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0b, 0x62, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0xa4, 0x04, 0x0a, 0x0a, 0x42, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2d, 0x0a, 0x09, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x10, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0e, 0x70, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x03, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x10, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, - 0x6c, 0x69, 0x61, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x54, 0x0a, 0x18, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, - 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x22, 0x7e, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, + 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, + 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x54, 0x0a, 0x19, 0x70, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x62, 0x65, 0x65, + 0x67, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x58, 0x0a, + 0x1b, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x19, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, + 0x65, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, + 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0x9f, 0x03, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x09, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, + 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1a, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x01, 0x52, 0x05, 0x6e, 0x75, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x61, + 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x61, 0x6c, + 0x69, 0x61, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, + 0x53, 0x65, 0x74, 0x48, 0x03, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x61, 0x72, 0x79, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x05, 0x52, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x75, 0x6d, + 0x5f, 0x69, 0x64, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x5f, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x54, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, - 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, - 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, - 0x52, 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, - 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, + 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x9d, 0x01, 0x0a, 0x17, 0x4d, 0x6f, 0x64, 0x69, + 0x66, 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x48, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x6f, 0x64, 0x69, 0x66, + 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x7e, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, - 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x69, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x74, - 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbb, 0x01, - 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0b, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, - 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, - 0x52, 0x0a, 0x62, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x21, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0xef, 0x02, 0x0a, 0x09, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1e, 0x0a, 0x08, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x2c, 0x0a, 0x07, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, - 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, - 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, - 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, - 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x6f, 0x64, 0x65, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x09, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, - 0x48, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x75, 0x73, 0x65, 0x64, 0x22, 0xeb, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, - 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, - 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x0e, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, - 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x53, - 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, - 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x69, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, - 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, - 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0c, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, - 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, - 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, - 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, - 0x48, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, - 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x32, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, - 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x73, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, - 0x9b, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, - 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, - 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, + 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x12, 0x1d, + 0x0a, 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x01, 0x52, 0x07, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x65, 0x22, 0x54, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, + 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, + 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x69, 0x72, + 0x72, 0x6f, 0x72, 0x52, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x6f, 0x6f, + 0x74, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbb, + 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0b, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, + 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, + 0x00, 0x52, 0x0a, 0x62, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x21, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x62, 0x75, 0x64, 0x64, 0x79, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x15, 0x0a, 0x13, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xef, 0x02, 0x0a, 0x09, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1e, 0x0a, 0x08, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x07, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x07, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x51, 0x75, 0x6f, 0x74, + 0x61, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, + 0x65, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x0b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x6f, 0x64, + 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, + 0x09, 0x73, 0x70, 0x61, 0x63, 0x65, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, + 0x0a, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x05, 0x52, 0x09, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x73, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x75, 0x73, 0x65, 0x64, 0x22, 0xeb, 0x02, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x6f, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, - 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x97, 0x01, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, - 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x53, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6e, 0x74, - 0x72, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x22, 0x3b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, - 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, - 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, - 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x60, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x63, 0x65, 0x6e, - 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x63, 0x65, - 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63, 0x65, 0x72, - 0x74, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x65, 0x72, - 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x32, 0x98, 0x0d, 0x0a, 0x0a, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, - 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, - 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x41, - 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, - 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x1d, + 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6f, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, + 0x52, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x53, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, + 0x0e, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, + 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x70, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, + 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x22, 0x1f, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, + 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x18, 0x0a, 0x16, + 0x53, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xee, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, + 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0c, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x69, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, + 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, + 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, + 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, + 0x74, 0x48, 0x04, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0x57, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x32, 0x0a, 0x06, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, + 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, + 0x22, 0x9b, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0b, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, + 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, + 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4d, 0x61, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, + 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0a, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x48, 0x03, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x4d, 0x61, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x5f, + 0x6c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x65, 0x65, 0x67, 0x66, 0x73, 0x2e, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x53, 0x65, 0x74, 0x48, 0x04, 0x52, 0x04, 0x70, 0x6f, + 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x65, 0x78, 0x63, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x6f, + 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x97, + 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x55, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, + 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x22, 0x3b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x06, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x06, 0x72, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, + 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x60, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x63, + 0x65, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x65, 0x72, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63, 0x65, + 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x63, 0x65, + 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x32, 0xf7, 0x0d, 0x0a, 0x0a, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x41, 0x6c, 0x69, + 0x61, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x53, 0x65, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, + 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, + 0x08, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, + 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, - 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x2e, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, + 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x57, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x47, 0x65, 0x74, - 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4b, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x08, 0x47, 0x65, + 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, + 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, - 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x2e, 0x6d, 0x61, + 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, + 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x2e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, - 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x50, 0x6f, - 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x75, - 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, - 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x5d, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, + 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x64, 0x64, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, + 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x5d, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, + 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x5d, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, + 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x64, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x64, 0x64, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, @@ -5531,171 +5898,183 @@ var file_management_proto_rawDesc = []byte{ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var file_management_proto_msgTypes = make([]protoimpl.MessageInfo, 46) +var file_management_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_management_proto_msgTypes = make([]protoimpl.MessageInfo, 49) var file_management_proto_goTypes = []any{ - (*SetAliasRequest)(nil), // 0: management.SetAliasRequest - (*SetAliasResponse)(nil), // 1: management.SetAliasResponse - (*GetNodesRequest)(nil), // 2: management.GetNodesRequest - (*GetNodesResponse)(nil), // 3: management.GetNodesResponse - (*DeleteNodeRequest)(nil), // 4: management.DeleteNodeRequest - (*DeleteNodeResponse)(nil), // 5: management.DeleteNodeResponse - (*GetTargetsRequest)(nil), // 6: management.GetTargetsRequest - (*GetTargetsResponse)(nil), // 7: management.GetTargetsResponse - (*DeleteTargetRequest)(nil), // 8: management.DeleteTargetRequest - (*DeleteTargetResponse)(nil), // 9: management.DeleteTargetResponse - (*SetTargetStateRequest)(nil), // 10: management.SetTargetStateRequest - (*SetTargetStateResponse)(nil), // 11: management.SetTargetStateResponse - (*GetPoolsRequest)(nil), // 12: management.GetPoolsRequest - (*GetPoolsResponse)(nil), // 13: management.GetPoolsResponse - (*CreatePoolRequest)(nil), // 14: management.CreatePoolRequest - (*CreatePoolResponse)(nil), // 15: management.CreatePoolResponse - (*AssignPoolRequest)(nil), // 16: management.AssignPoolRequest - (*AssignPoolResponse)(nil), // 17: management.AssignPoolResponse - (*DeletePoolRequest)(nil), // 18: management.DeletePoolRequest - (*DeletePoolResponse)(nil), // 19: management.DeletePoolResponse - (*GetBuddyGroupsRequest)(nil), // 20: management.GetBuddyGroupsRequest - (*GetBuddyGroupsResponse)(nil), // 21: management.GetBuddyGroupsResponse - (*CreateBuddyGroupRequest)(nil), // 22: management.CreateBuddyGroupRequest - (*CreateBuddyGroupResponse)(nil), // 23: management.CreateBuddyGroupResponse - (*DeleteBuddyGroupRequest)(nil), // 24: management.DeleteBuddyGroupRequest - (*DeleteBuddyGroupResponse)(nil), // 25: management.DeleteBuddyGroupResponse - (*MirrorRootInodeRequest)(nil), // 26: management.MirrorRootInodeRequest - (*MirrorRootInodeResponse)(nil), // 27: management.MirrorRootInodeResponse - (*StartResyncRequest)(nil), // 28: management.StartResyncRequest - (*StartResyncResponse)(nil), // 29: management.StartResyncResponse - (*QuotaInfo)(nil), // 30: management.QuotaInfo - (*SetDefaultQuotaLimitsRequest)(nil), // 31: management.SetDefaultQuotaLimitsRequest - (*SetDefaultQuotaLimitsResponse)(nil), // 32: management.SetDefaultQuotaLimitsResponse - (*SetQuotaLimitsRequest)(nil), // 33: management.SetQuotaLimitsRequest - (*SetQuotaLimitsResponse)(nil), // 34: management.SetQuotaLimitsResponse - (*GetQuotaLimitsRequest)(nil), // 35: management.GetQuotaLimitsRequest - (*GetQuotaLimitsResponse)(nil), // 36: management.GetQuotaLimitsResponse - (*GetQuotaUsageRequest)(nil), // 37: management.GetQuotaUsageRequest - (*GetQuotaUsageResponse)(nil), // 38: management.GetQuotaUsageResponse - (*GetLicenseRequest)(nil), // 39: management.GetLicenseRequest - (*GetLicenseResponse)(nil), // 40: management.GetLicenseResponse - (*GetNodesResponse_Node)(nil), // 41: management.GetNodesResponse.Node - (*GetNodesResponse_Node_Nic)(nil), // 42: management.GetNodesResponse.Node.Nic - (*GetTargetsResponse_Target)(nil), // 43: management.GetTargetsResponse.Target - (*GetPoolsResponse_StoragePool)(nil), // 44: management.GetPoolsResponse.StoragePool - (*GetBuddyGroupsResponse_BuddyGroup)(nil), // 45: management.GetBuddyGroupsResponse.BuddyGroup - (*beegfs.EntityIdSet)(nil), // 46: beegfs.EntityIdSet - (beegfs.EntityType)(0), // 47: beegfs.EntityType - (beegfs.ConsistencyState)(0), // 48: beegfs.ConsistencyState - (beegfs.NodeType)(0), // 49: beegfs.NodeType - (beegfs.QuotaIdType)(0), // 50: beegfs.QuotaIdType - (*license.GetCertDataResult)(nil), // 51: license.GetCertDataResult - (beegfs.NicType)(0), // 52: beegfs.NicType - (beegfs.ReachabilityState)(0), // 53: beegfs.ReachabilityState - (beegfs.CapacityPool)(0), // 54: beegfs.CapacityPool + (BuddyGroupOptions_BuddyGroupQuotaAccounting)(0), // 0: management.BuddyGroupOptions.BuddyGroupQuotaAccounting + (*SetAliasRequest)(nil), // 1: management.SetAliasRequest + (*SetAliasResponse)(nil), // 2: management.SetAliasResponse + (*GetNodesRequest)(nil), // 3: management.GetNodesRequest + (*GetNodesResponse)(nil), // 4: management.GetNodesResponse + (*DeleteNodeRequest)(nil), // 5: management.DeleteNodeRequest + (*DeleteNodeResponse)(nil), // 6: management.DeleteNodeResponse + (*GetTargetsRequest)(nil), // 7: management.GetTargetsRequest + (*GetTargetsResponse)(nil), // 8: management.GetTargetsResponse + (*DeleteTargetRequest)(nil), // 9: management.DeleteTargetRequest + (*DeleteTargetResponse)(nil), // 10: management.DeleteTargetResponse + (*SetTargetStateRequest)(nil), // 11: management.SetTargetStateRequest + (*SetTargetStateResponse)(nil), // 12: management.SetTargetStateResponse + (*GetPoolsRequest)(nil), // 13: management.GetPoolsRequest + (*GetPoolsResponse)(nil), // 14: management.GetPoolsResponse + (*CreatePoolRequest)(nil), // 15: management.CreatePoolRequest + (*CreatePoolResponse)(nil), // 16: management.CreatePoolResponse + (*AssignPoolRequest)(nil), // 17: management.AssignPoolRequest + (*AssignPoolResponse)(nil), // 18: management.AssignPoolResponse + (*DeletePoolRequest)(nil), // 19: management.DeletePoolRequest + (*DeletePoolResponse)(nil), // 20: management.DeletePoolResponse + (*BuddyGroupOptions)(nil), // 21: management.BuddyGroupOptions + (*GetBuddyGroupsRequest)(nil), // 22: management.GetBuddyGroupsRequest + (*GetBuddyGroupsResponse)(nil), // 23: management.GetBuddyGroupsResponse + (*CreateBuddyGroupRequest)(nil), // 24: management.CreateBuddyGroupRequest + (*CreateBuddyGroupResponse)(nil), // 25: management.CreateBuddyGroupResponse + (*ModifyBuddyGroupRequest)(nil), // 26: management.ModifyBuddyGroupRequest + (*ModifyBuddyGroupResponse)(nil), // 27: management.ModifyBuddyGroupResponse + (*DeleteBuddyGroupRequest)(nil), // 28: management.DeleteBuddyGroupRequest + (*DeleteBuddyGroupResponse)(nil), // 29: management.DeleteBuddyGroupResponse + (*MirrorRootInodeRequest)(nil), // 30: management.MirrorRootInodeRequest + (*MirrorRootInodeResponse)(nil), // 31: management.MirrorRootInodeResponse + (*StartResyncRequest)(nil), // 32: management.StartResyncRequest + (*StartResyncResponse)(nil), // 33: management.StartResyncResponse + (*QuotaInfo)(nil), // 34: management.QuotaInfo + (*SetDefaultQuotaLimitsRequest)(nil), // 35: management.SetDefaultQuotaLimitsRequest + (*SetDefaultQuotaLimitsResponse)(nil), // 36: management.SetDefaultQuotaLimitsResponse + (*SetQuotaLimitsRequest)(nil), // 37: management.SetQuotaLimitsRequest + (*SetQuotaLimitsResponse)(nil), // 38: management.SetQuotaLimitsResponse + (*GetQuotaLimitsRequest)(nil), // 39: management.GetQuotaLimitsRequest + (*GetQuotaLimitsResponse)(nil), // 40: management.GetQuotaLimitsResponse + (*GetQuotaUsageRequest)(nil), // 41: management.GetQuotaUsageRequest + (*GetQuotaUsageResponse)(nil), // 42: management.GetQuotaUsageResponse + (*GetLicenseRequest)(nil), // 43: management.GetLicenseRequest + (*GetLicenseResponse)(nil), // 44: management.GetLicenseResponse + (*GetNodesResponse_Node)(nil), // 45: management.GetNodesResponse.Node + (*GetNodesResponse_Node_Nic)(nil), // 46: management.GetNodesResponse.Node.Nic + (*GetTargetsResponse_Target)(nil), // 47: management.GetTargetsResponse.Target + (*GetPoolsResponse_StoragePool)(nil), // 48: management.GetPoolsResponse.StoragePool + (*GetBuddyGroupsResponse_BuddyGroup)(nil), // 49: management.GetBuddyGroupsResponse.BuddyGroup + (*beegfs.EntityIdSet)(nil), // 50: beegfs.EntityIdSet + (beegfs.EntityType)(0), // 51: beegfs.EntityType + (beegfs.ConsistencyState)(0), // 52: beegfs.ConsistencyState + (beegfs.NodeType)(0), // 53: beegfs.NodeType + (beegfs.QuotaIdType)(0), // 54: beegfs.QuotaIdType + (*license.GetCertDataResult)(nil), // 55: license.GetCertDataResult + (beegfs.NicType)(0), // 56: beegfs.NicType + (beegfs.ReachabilityState)(0), // 57: beegfs.ReachabilityState + (beegfs.CapacityPool)(0), // 58: beegfs.CapacityPool } var file_management_proto_depIdxs = []int32{ - 46, // 0: management.SetAliasRequest.entity_id:type_name -> beegfs.EntityIdSet - 47, // 1: management.SetAliasRequest.entity_type:type_name -> beegfs.EntityType - 41, // 2: management.GetNodesResponse.nodes:type_name -> management.GetNodesResponse.Node - 46, // 3: management.GetNodesResponse.meta_root_node:type_name -> beegfs.EntityIdSet - 46, // 4: management.GetNodesResponse.meta_root_buddy_group:type_name -> beegfs.EntityIdSet - 46, // 5: management.DeleteNodeRequest.node:type_name -> beegfs.EntityIdSet - 46, // 6: management.DeleteNodeResponse.node:type_name -> beegfs.EntityIdSet - 43, // 7: management.GetTargetsResponse.targets:type_name -> management.GetTargetsResponse.Target - 46, // 8: management.DeleteTargetRequest.target:type_name -> beegfs.EntityIdSet - 46, // 9: management.DeleteTargetResponse.target:type_name -> beegfs.EntityIdSet - 46, // 10: management.SetTargetStateRequest.target:type_name -> beegfs.EntityIdSet - 48, // 11: management.SetTargetStateRequest.consistency_state:type_name -> beegfs.ConsistencyState - 44, // 12: management.GetPoolsResponse.pools:type_name -> management.GetPoolsResponse.StoragePool - 49, // 13: management.CreatePoolRequest.node_type:type_name -> beegfs.NodeType - 46, // 14: management.CreatePoolRequest.targets:type_name -> beegfs.EntityIdSet - 46, // 15: management.CreatePoolRequest.buddy_groups:type_name -> beegfs.EntityIdSet - 46, // 16: management.CreatePoolResponse.pool:type_name -> beegfs.EntityIdSet - 46, // 17: management.AssignPoolRequest.pool:type_name -> beegfs.EntityIdSet - 46, // 18: management.AssignPoolRequest.targets:type_name -> beegfs.EntityIdSet - 46, // 19: management.AssignPoolRequest.buddy_groups:type_name -> beegfs.EntityIdSet - 46, // 20: management.AssignPoolResponse.pool:type_name -> beegfs.EntityIdSet - 46, // 21: management.DeletePoolRequest.pool:type_name -> beegfs.EntityIdSet - 46, // 22: management.DeletePoolResponse.pool:type_name -> beegfs.EntityIdSet - 45, // 23: management.GetBuddyGroupsResponse.buddy_groups:type_name -> management.GetBuddyGroupsResponse.BuddyGroup - 49, // 24: management.CreateBuddyGroupRequest.node_type:type_name -> beegfs.NodeType - 46, // 25: management.CreateBuddyGroupRequest.primary_target:type_name -> beegfs.EntityIdSet - 46, // 26: management.CreateBuddyGroupRequest.secondary_target:type_name -> beegfs.EntityIdSet - 46, // 27: management.CreateBuddyGroupResponse.group:type_name -> beegfs.EntityIdSet - 46, // 28: management.DeleteBuddyGroupRequest.group:type_name -> beegfs.EntityIdSet - 46, // 29: management.DeleteBuddyGroupResponse.group:type_name -> beegfs.EntityIdSet - 46, // 30: management.StartResyncRequest.buddy_group:type_name -> beegfs.EntityIdSet - 50, // 31: management.QuotaInfo.id_type:type_name -> beegfs.QuotaIdType - 46, // 32: management.QuotaInfo.pool:type_name -> beegfs.EntityIdSet - 46, // 33: management.SetDefaultQuotaLimitsRequest.pool:type_name -> beegfs.EntityIdSet - 30, // 34: management.SetQuotaLimitsRequest.limits:type_name -> management.QuotaInfo - 46, // 35: management.GetQuotaLimitsRequest.pool:type_name -> beegfs.EntityIdSet - 30, // 36: management.GetQuotaLimitsResponse.limits:type_name -> management.QuotaInfo - 46, // 37: management.GetQuotaUsageRequest.pool:type_name -> beegfs.EntityIdSet - 30, // 38: management.GetQuotaUsageResponse.entry:type_name -> management.QuotaInfo - 51, // 39: management.GetLicenseResponse.cert_data:type_name -> license.GetCertDataResult - 46, // 40: management.GetNodesResponse.Node.id:type_name -> beegfs.EntityIdSet - 49, // 41: management.GetNodesResponse.Node.node_type:type_name -> beegfs.NodeType - 42, // 42: management.GetNodesResponse.Node.nics:type_name -> management.GetNodesResponse.Node.Nic - 52, // 43: management.GetNodesResponse.Node.Nic.nic_type:type_name -> beegfs.NicType - 46, // 44: management.GetTargetsResponse.Target.id:type_name -> beegfs.EntityIdSet - 49, // 45: management.GetTargetsResponse.Target.node_type:type_name -> beegfs.NodeType - 53, // 46: management.GetTargetsResponse.Target.reachability_state:type_name -> beegfs.ReachabilityState - 48, // 47: management.GetTargetsResponse.Target.consistency_state:type_name -> beegfs.ConsistencyState - 54, // 48: management.GetTargetsResponse.Target.cap_pool:type_name -> beegfs.CapacityPool - 46, // 49: management.GetTargetsResponse.Target.node:type_name -> beegfs.EntityIdSet - 46, // 50: management.GetTargetsResponse.Target.storage_pool:type_name -> beegfs.EntityIdSet - 46, // 51: management.GetPoolsResponse.StoragePool.id:type_name -> beegfs.EntityIdSet - 46, // 52: management.GetPoolsResponse.StoragePool.targets:type_name -> beegfs.EntityIdSet - 46, // 53: management.GetPoolsResponse.StoragePool.buddy_groups:type_name -> beegfs.EntityIdSet - 46, // 54: management.GetBuddyGroupsResponse.BuddyGroup.id:type_name -> beegfs.EntityIdSet - 49, // 55: management.GetBuddyGroupsResponse.BuddyGroup.node_type:type_name -> beegfs.NodeType - 46, // 56: management.GetBuddyGroupsResponse.BuddyGroup.primary_target:type_name -> beegfs.EntityIdSet - 46, // 57: management.GetBuddyGroupsResponse.BuddyGroup.secondary_target:type_name -> beegfs.EntityIdSet - 48, // 58: management.GetBuddyGroupsResponse.BuddyGroup.primary_consistency_state:type_name -> beegfs.ConsistencyState - 48, // 59: management.GetBuddyGroupsResponse.BuddyGroup.secondary_consistency_state:type_name -> beegfs.ConsistencyState - 46, // 60: management.GetBuddyGroupsResponse.BuddyGroup.storage_pool:type_name -> beegfs.EntityIdSet - 0, // 61: management.Management.SetAlias:input_type -> management.SetAliasRequest - 2, // 62: management.Management.GetNodes:input_type -> management.GetNodesRequest - 4, // 63: management.Management.DeleteNode:input_type -> management.DeleteNodeRequest - 6, // 64: management.Management.GetTargets:input_type -> management.GetTargetsRequest - 8, // 65: management.Management.DeleteTarget:input_type -> management.DeleteTargetRequest - 10, // 66: management.Management.SetTargetState:input_type -> management.SetTargetStateRequest - 12, // 67: management.Management.GetPools:input_type -> management.GetPoolsRequest - 14, // 68: management.Management.CreatePool:input_type -> management.CreatePoolRequest - 16, // 69: management.Management.AssignPool:input_type -> management.AssignPoolRequest - 18, // 70: management.Management.DeletePool:input_type -> management.DeletePoolRequest - 20, // 71: management.Management.GetBuddyGroups:input_type -> management.GetBuddyGroupsRequest - 22, // 72: management.Management.CreateBuddyGroup:input_type -> management.CreateBuddyGroupRequest - 24, // 73: management.Management.DeleteBuddyGroup:input_type -> management.DeleteBuddyGroupRequest - 26, // 74: management.Management.MirrorRootInode:input_type -> management.MirrorRootInodeRequest - 28, // 75: management.Management.StartResync:input_type -> management.StartResyncRequest - 31, // 76: management.Management.SetDefaultQuotaLimits:input_type -> management.SetDefaultQuotaLimitsRequest - 33, // 77: management.Management.SetQuotaLimits:input_type -> management.SetQuotaLimitsRequest - 35, // 78: management.Management.GetQuotaLimits:input_type -> management.GetQuotaLimitsRequest - 37, // 79: management.Management.GetQuotaUsage:input_type -> management.GetQuotaUsageRequest - 39, // 80: management.Management.GetLicense:input_type -> management.GetLicenseRequest - 1, // 81: management.Management.SetAlias:output_type -> management.SetAliasResponse - 3, // 82: management.Management.GetNodes:output_type -> management.GetNodesResponse - 5, // 83: management.Management.DeleteNode:output_type -> management.DeleteNodeResponse - 7, // 84: management.Management.GetTargets:output_type -> management.GetTargetsResponse - 9, // 85: management.Management.DeleteTarget:output_type -> management.DeleteTargetResponse - 11, // 86: management.Management.SetTargetState:output_type -> management.SetTargetStateResponse - 13, // 87: management.Management.GetPools:output_type -> management.GetPoolsResponse - 15, // 88: management.Management.CreatePool:output_type -> management.CreatePoolResponse - 17, // 89: management.Management.AssignPool:output_type -> management.AssignPoolResponse - 19, // 90: management.Management.DeletePool:output_type -> management.DeletePoolResponse - 21, // 91: management.Management.GetBuddyGroups:output_type -> management.GetBuddyGroupsResponse - 23, // 92: management.Management.CreateBuddyGroup:output_type -> management.CreateBuddyGroupResponse - 25, // 93: management.Management.DeleteBuddyGroup:output_type -> management.DeleteBuddyGroupResponse - 27, // 94: management.Management.MirrorRootInode:output_type -> management.MirrorRootInodeResponse - 29, // 95: management.Management.StartResync:output_type -> management.StartResyncResponse - 32, // 96: management.Management.SetDefaultQuotaLimits:output_type -> management.SetDefaultQuotaLimitsResponse - 34, // 97: management.Management.SetQuotaLimits:output_type -> management.SetQuotaLimitsResponse - 36, // 98: management.Management.GetQuotaLimits:output_type -> management.GetQuotaLimitsResponse - 38, // 99: management.Management.GetQuotaUsage:output_type -> management.GetQuotaUsageResponse - 40, // 100: management.Management.GetLicense:output_type -> management.GetLicenseResponse - 81, // [81:101] is the sub-list for method output_type - 61, // [61:81] is the sub-list for method input_type - 61, // [61:61] is the sub-list for extension type_name - 61, // [61:61] is the sub-list for extension extendee - 0, // [0:61] is the sub-list for field type_name + 50, // 0: management.SetAliasRequest.entity_id:type_name -> beegfs.EntityIdSet + 51, // 1: management.SetAliasRequest.entity_type:type_name -> beegfs.EntityType + 45, // 2: management.GetNodesResponse.nodes:type_name -> management.GetNodesResponse.Node + 50, // 3: management.GetNodesResponse.meta_root_node:type_name -> beegfs.EntityIdSet + 50, // 4: management.GetNodesResponse.meta_root_buddy_group:type_name -> beegfs.EntityIdSet + 50, // 5: management.DeleteNodeRequest.node:type_name -> beegfs.EntityIdSet + 50, // 6: management.DeleteNodeResponse.node:type_name -> beegfs.EntityIdSet + 47, // 7: management.GetTargetsResponse.targets:type_name -> management.GetTargetsResponse.Target + 50, // 8: management.DeleteTargetRequest.target:type_name -> beegfs.EntityIdSet + 50, // 9: management.DeleteTargetResponse.target:type_name -> beegfs.EntityIdSet + 50, // 10: management.SetTargetStateRequest.target:type_name -> beegfs.EntityIdSet + 52, // 11: management.SetTargetStateRequest.consistency_state:type_name -> beegfs.ConsistencyState + 48, // 12: management.GetPoolsResponse.pools:type_name -> management.GetPoolsResponse.StoragePool + 53, // 13: management.CreatePoolRequest.node_type:type_name -> beegfs.NodeType + 50, // 14: management.CreatePoolRequest.targets:type_name -> beegfs.EntityIdSet + 50, // 15: management.CreatePoolRequest.buddy_groups:type_name -> beegfs.EntityIdSet + 50, // 16: management.CreatePoolResponse.pool:type_name -> beegfs.EntityIdSet + 50, // 17: management.AssignPoolRequest.pool:type_name -> beegfs.EntityIdSet + 50, // 18: management.AssignPoolRequest.targets:type_name -> beegfs.EntityIdSet + 50, // 19: management.AssignPoolRequest.buddy_groups:type_name -> beegfs.EntityIdSet + 50, // 20: management.AssignPoolResponse.pool:type_name -> beegfs.EntityIdSet + 50, // 21: management.DeletePoolRequest.pool:type_name -> beegfs.EntityIdSet + 50, // 22: management.DeletePoolResponse.pool:type_name -> beegfs.EntityIdSet + 0, // 23: management.BuddyGroupOptions.quota_accounting:type_name -> management.BuddyGroupOptions.BuddyGroupQuotaAccounting + 49, // 24: management.GetBuddyGroupsResponse.buddy_groups:type_name -> management.GetBuddyGroupsResponse.BuddyGroup + 53, // 25: management.CreateBuddyGroupRequest.node_type:type_name -> beegfs.NodeType + 50, // 26: management.CreateBuddyGroupRequest.primary_target:type_name -> beegfs.EntityIdSet + 50, // 27: management.CreateBuddyGroupRequest.secondary_target:type_name -> beegfs.EntityIdSet + 21, // 28: management.CreateBuddyGroupRequest.options:type_name -> management.BuddyGroupOptions + 50, // 29: management.CreateBuddyGroupResponse.group:type_name -> beegfs.EntityIdSet + 50, // 30: management.ModifyBuddyGroupRequest.group:type_name -> beegfs.EntityIdSet + 21, // 31: management.ModifyBuddyGroupRequest.options:type_name -> management.BuddyGroupOptions + 50, // 32: management.DeleteBuddyGroupRequest.group:type_name -> beegfs.EntityIdSet + 50, // 33: management.DeleteBuddyGroupResponse.group:type_name -> beegfs.EntityIdSet + 50, // 34: management.StartResyncRequest.buddy_group:type_name -> beegfs.EntityIdSet + 54, // 35: management.QuotaInfo.id_type:type_name -> beegfs.QuotaIdType + 50, // 36: management.QuotaInfo.pool:type_name -> beegfs.EntityIdSet + 50, // 37: management.SetDefaultQuotaLimitsRequest.pool:type_name -> beegfs.EntityIdSet + 34, // 38: management.SetQuotaLimitsRequest.limits:type_name -> management.QuotaInfo + 50, // 39: management.GetQuotaLimitsRequest.pool:type_name -> beegfs.EntityIdSet + 34, // 40: management.GetQuotaLimitsResponse.limits:type_name -> management.QuotaInfo + 50, // 41: management.GetQuotaUsageRequest.pool:type_name -> beegfs.EntityIdSet + 34, // 42: management.GetQuotaUsageResponse.entry:type_name -> management.QuotaInfo + 55, // 43: management.GetLicenseResponse.cert_data:type_name -> license.GetCertDataResult + 50, // 44: management.GetNodesResponse.Node.id:type_name -> beegfs.EntityIdSet + 53, // 45: management.GetNodesResponse.Node.node_type:type_name -> beegfs.NodeType + 46, // 46: management.GetNodesResponse.Node.nics:type_name -> management.GetNodesResponse.Node.Nic + 56, // 47: management.GetNodesResponse.Node.Nic.nic_type:type_name -> beegfs.NicType + 50, // 48: management.GetTargetsResponse.Target.id:type_name -> beegfs.EntityIdSet + 53, // 49: management.GetTargetsResponse.Target.node_type:type_name -> beegfs.NodeType + 57, // 50: management.GetTargetsResponse.Target.reachability_state:type_name -> beegfs.ReachabilityState + 52, // 51: management.GetTargetsResponse.Target.consistency_state:type_name -> beegfs.ConsistencyState + 58, // 52: management.GetTargetsResponse.Target.cap_pool:type_name -> beegfs.CapacityPool + 50, // 53: management.GetTargetsResponse.Target.node:type_name -> beegfs.EntityIdSet + 50, // 54: management.GetTargetsResponse.Target.storage_pool:type_name -> beegfs.EntityIdSet + 50, // 55: management.GetPoolsResponse.StoragePool.id:type_name -> beegfs.EntityIdSet + 50, // 56: management.GetPoolsResponse.StoragePool.targets:type_name -> beegfs.EntityIdSet + 50, // 57: management.GetPoolsResponse.StoragePool.buddy_groups:type_name -> beegfs.EntityIdSet + 50, // 58: management.GetBuddyGroupsResponse.BuddyGroup.id:type_name -> beegfs.EntityIdSet + 53, // 59: management.GetBuddyGroupsResponse.BuddyGroup.node_type:type_name -> beegfs.NodeType + 50, // 60: management.GetBuddyGroupsResponse.BuddyGroup.primary_target:type_name -> beegfs.EntityIdSet + 50, // 61: management.GetBuddyGroupsResponse.BuddyGroup.secondary_target:type_name -> beegfs.EntityIdSet + 52, // 62: management.GetBuddyGroupsResponse.BuddyGroup.primary_consistency_state:type_name -> beegfs.ConsistencyState + 52, // 63: management.GetBuddyGroupsResponse.BuddyGroup.secondary_consistency_state:type_name -> beegfs.ConsistencyState + 50, // 64: management.GetBuddyGroupsResponse.BuddyGroup.storage_pool:type_name -> beegfs.EntityIdSet + 21, // 65: management.GetBuddyGroupsResponse.BuddyGroup.options:type_name -> management.BuddyGroupOptions + 1, // 66: management.Management.SetAlias:input_type -> management.SetAliasRequest + 3, // 67: management.Management.GetNodes:input_type -> management.GetNodesRequest + 5, // 68: management.Management.DeleteNode:input_type -> management.DeleteNodeRequest + 7, // 69: management.Management.GetTargets:input_type -> management.GetTargetsRequest + 9, // 70: management.Management.DeleteTarget:input_type -> management.DeleteTargetRequest + 11, // 71: management.Management.SetTargetState:input_type -> management.SetTargetStateRequest + 13, // 72: management.Management.GetPools:input_type -> management.GetPoolsRequest + 15, // 73: management.Management.CreatePool:input_type -> management.CreatePoolRequest + 17, // 74: management.Management.AssignPool:input_type -> management.AssignPoolRequest + 19, // 75: management.Management.DeletePool:input_type -> management.DeletePoolRequest + 22, // 76: management.Management.GetBuddyGroups:input_type -> management.GetBuddyGroupsRequest + 24, // 77: management.Management.CreateBuddyGroup:input_type -> management.CreateBuddyGroupRequest + 26, // 78: management.Management.ModifyBuddyGroup:input_type -> management.ModifyBuddyGroupRequest + 28, // 79: management.Management.DeleteBuddyGroup:input_type -> management.DeleteBuddyGroupRequest + 30, // 80: management.Management.MirrorRootInode:input_type -> management.MirrorRootInodeRequest + 32, // 81: management.Management.StartResync:input_type -> management.StartResyncRequest + 35, // 82: management.Management.SetDefaultQuotaLimits:input_type -> management.SetDefaultQuotaLimitsRequest + 37, // 83: management.Management.SetQuotaLimits:input_type -> management.SetQuotaLimitsRequest + 39, // 84: management.Management.GetQuotaLimits:input_type -> management.GetQuotaLimitsRequest + 41, // 85: management.Management.GetQuotaUsage:input_type -> management.GetQuotaUsageRequest + 43, // 86: management.Management.GetLicense:input_type -> management.GetLicenseRequest + 2, // 87: management.Management.SetAlias:output_type -> management.SetAliasResponse + 4, // 88: management.Management.GetNodes:output_type -> management.GetNodesResponse + 6, // 89: management.Management.DeleteNode:output_type -> management.DeleteNodeResponse + 8, // 90: management.Management.GetTargets:output_type -> management.GetTargetsResponse + 10, // 91: management.Management.DeleteTarget:output_type -> management.DeleteTargetResponse + 12, // 92: management.Management.SetTargetState:output_type -> management.SetTargetStateResponse + 14, // 93: management.Management.GetPools:output_type -> management.GetPoolsResponse + 16, // 94: management.Management.CreatePool:output_type -> management.CreatePoolResponse + 18, // 95: management.Management.AssignPool:output_type -> management.AssignPoolResponse + 20, // 96: management.Management.DeletePool:output_type -> management.DeletePoolResponse + 23, // 97: management.Management.GetBuddyGroups:output_type -> management.GetBuddyGroupsResponse + 25, // 98: management.Management.CreateBuddyGroup:output_type -> management.CreateBuddyGroupResponse + 27, // 99: management.Management.ModifyBuddyGroup:output_type -> management.ModifyBuddyGroupResponse + 29, // 100: management.Management.DeleteBuddyGroup:output_type -> management.DeleteBuddyGroupResponse + 31, // 101: management.Management.MirrorRootInode:output_type -> management.MirrorRootInodeResponse + 33, // 102: management.Management.StartResync:output_type -> management.StartResyncResponse + 36, // 103: management.Management.SetDefaultQuotaLimits:output_type -> management.SetDefaultQuotaLimitsResponse + 38, // 104: management.Management.SetQuotaLimits:output_type -> management.SetQuotaLimitsResponse + 40, // 105: management.Management.GetQuotaLimits:output_type -> management.GetQuotaLimitsResponse + 42, // 106: management.Management.GetQuotaUsage:output_type -> management.GetQuotaUsageResponse + 44, // 107: management.Management.GetLicense:output_type -> management.GetLicenseResponse + 87, // [87:108] is the sub-list for method output_type + 66, // [66:87] is the sub-list for method input_type + 66, // [66:66] is the sub-list for extension type_name + 66, // [66:66] is the sub-list for extension extendee + 0, // [0:66] is the sub-list for field type_name } func init() { file_management_proto_init() } @@ -5715,34 +6094,37 @@ func file_management_proto_init() { file_management_proto_msgTypes[17].OneofWrappers = []any{} file_management_proto_msgTypes[18].OneofWrappers = []any{} file_management_proto_msgTypes[19].OneofWrappers = []any{} - file_management_proto_msgTypes[22].OneofWrappers = []any{} + file_management_proto_msgTypes[20].OneofWrappers = []any{} file_management_proto_msgTypes[23].OneofWrappers = []any{} file_management_proto_msgTypes[24].OneofWrappers = []any{} file_management_proto_msgTypes[25].OneofWrappers = []any{} + file_management_proto_msgTypes[27].OneofWrappers = []any{} file_management_proto_msgTypes[28].OneofWrappers = []any{} - file_management_proto_msgTypes[30].OneofWrappers = []any{} file_management_proto_msgTypes[31].OneofWrappers = []any{} - file_management_proto_msgTypes[35].OneofWrappers = []any{} - file_management_proto_msgTypes[36].OneofWrappers = []any{} - file_management_proto_msgTypes[37].OneofWrappers = []any{} + file_management_proto_msgTypes[33].OneofWrappers = []any{} + file_management_proto_msgTypes[34].OneofWrappers = []any{} file_management_proto_msgTypes[38].OneofWrappers = []any{} file_management_proto_msgTypes[39].OneofWrappers = []any{} file_management_proto_msgTypes[40].OneofWrappers = []any{} + file_management_proto_msgTypes[41].OneofWrappers = []any{} + file_management_proto_msgTypes[42].OneofWrappers = []any{} file_management_proto_msgTypes[43].OneofWrappers = []any{} - file_management_proto_msgTypes[44].OneofWrappers = []any{} - file_management_proto_msgTypes[45].OneofWrappers = []any{} + file_management_proto_msgTypes[46].OneofWrappers = []any{} + file_management_proto_msgTypes[47].OneofWrappers = []any{} + file_management_proto_msgTypes[48].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_management_proto_rawDesc, - NumEnums: 0, - NumMessages: 46, + NumEnums: 1, + NumMessages: 49, NumExtensions: 0, NumServices: 1, }, GoTypes: file_management_proto_goTypes, DependencyIndexes: file_management_proto_depIdxs, + EnumInfos: file_management_proto_enumTypes, MessageInfos: file_management_proto_msgTypes, }.Build() File_management_proto = out.File diff --git a/proto/management.proto b/proto/management.proto index c11acb8..7479036 100644 --- a/proto/management.proto +++ b/proto/management.proto @@ -27,6 +27,7 @@ service Management { // Buddy groups rpc GetBuddyGroups(GetBuddyGroupsRequest) returns (GetBuddyGroupsResponse); rpc CreateBuddyGroup(CreateBuddyGroupRequest) returns (CreateBuddyGroupResponse); + rpc ModifyBuddyGroup(ModifyBuddyGroupRequest) returns (ModifyBuddyGroupResponse); rpc DeleteBuddyGroup(DeleteBuddyGroupRequest) returns (DeleteBuddyGroupResponse); rpc MirrorRootInode(MirrorRootInodeRequest) returns (MirrorRootInodeResponse); rpc StartResync(StartResyncRequest) returns (StartResyncResponse); @@ -301,6 +302,21 @@ message DeletePoolResponse { // Buddy groups +message BuddyGroupOptions { + enum BuddyGroupQuotaAccounting { + BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED = 0; + BUDDY_GROUP_QUOTA_ACCOUNTING_PRIMARY = 1; + BUDDY_GROUP_QUOTA_ACCOUNTING_BOTH = 2; + } + + // The quota accounting mode for this buddy group. + // When used for setting options: Optional if the corresponding buddy group is a storage group, + // unset otherwise. + // When used for getting options: Required if the corresponding buddy group is a storage group, + // unset otherwise. + optional BuddyGroupQuotaAccounting quota_accounting = 1; +} + // Gets the list of buddy groups. message GetBuddyGroupsRequest {} message GetBuddyGroupsResponse { @@ -328,6 +344,9 @@ message GetBuddyGroupsResponse { // Required if this target is a storage target (e.g. node_type is STORAGE), unset otherwise. If // set, should be completely populated. optional beegfs.EntityIdSet storage_pool = 7; + // The options for this buddy group. + // Required. + optional BuddyGroupOptions options = 8; } // The list of buddy groups. @@ -351,6 +370,9 @@ message CreateBuddyGroupRequest { // The new buddy groups secondary target. // Required. One identifier is sufficient. optional beegfs.EntityIdSet secondary_target = 5; + // The options for this buddy group. + // Required. + optional BuddyGroupOptions options = 6; } message CreateBuddyGroupResponse { // The identifier set of the new buddy group. @@ -358,6 +380,17 @@ message CreateBuddyGroupResponse { optional beegfs.EntityIdSet group = 1; } +// Modifies a buddy group or its config. +message ModifyBuddyGroupRequest { + // The buddy group to modify. + // Required. One identifier is sufficient. + optional beegfs.EntityIdSet group = 1; + // The options for this buddy group. + // Required. + optional BuddyGroupOptions options = 2; +} +message ModifyBuddyGroupResponse {} + // Deletes a buddy group from the system. message DeleteBuddyGroupRequest { // The buddy group to delete. diff --git a/rust/management.rs b/rust/management.rs index 05a0a43..7c38fa5 100644 --- a/rust/management.rs +++ b/rust/management.rs @@ -330,6 +330,62 @@ pub struct DeletePoolResponse { #[prost(message, optional, tag = "1")] pub pool: ::core::option::Option, } +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +pub struct BuddyGroupOptions { + /// The quota accounting mode for this buddy group. + /// When used for setting options: Optional if the corresponding buddy group is a storage group, + /// unset otherwise. + /// When used for getting options: Required if the corresponding buddy group is a storage group, + /// unset otherwise. + #[prost( + enumeration = "buddy_group_options::BuddyGroupQuotaAccounting", + optional, + tag = "1" + )] + pub quota_accounting: ::core::option::Option, +} +/// Nested message and enum types in `BuddyGroupOptions`. +pub mod buddy_group_options { + #[derive( + Clone, + Copy, + Debug, + PartialEq, + Eq, + Hash, + PartialOrd, + Ord, + ::prost::Enumeration + )] + #[repr(i32)] + pub enum BuddyGroupQuotaAccounting { + Unspecified = 0, + Primary = 1, + Both = 2, + } + impl BuddyGroupQuotaAccounting { + /// String value of the enum field names used in the ProtoBuf definition. + /// + /// The values are not transformed in any way and thus are considered stable + /// (if the ProtoBuf definition does not change) and safe for programmatic use. + pub fn as_str_name(&self) -> &'static str { + match self { + Self::Unspecified => "BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED", + Self::Primary => "BUDDY_GROUP_QUOTA_ACCOUNTING_PRIMARY", + Self::Both => "BUDDY_GROUP_QUOTA_ACCOUNTING_BOTH", + } + } + /// Creates an enum from field names used in the ProtoBuf definition. + pub fn from_str_name(value: &str) -> ::core::option::Option { + match value { + "BUDDY_GROUP_QUOTA_ACCOUNTING_UNSPECIFIED" => Some(Self::Unspecified), + "BUDDY_GROUP_QUOTA_ACCOUNTING_PRIMARY" => Some(Self::Primary), + "BUDDY_GROUP_QUOTA_ACCOUNTING_BOTH" => Some(Self::Both), + _ => None, + } + } + } +} /// Gets the list of buddy groups. #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] pub struct GetBuddyGroupsRequest {} @@ -373,6 +429,10 @@ pub mod get_buddy_groups_response { /// set, should be completely populated. #[prost(message, optional, tag = "7")] pub storage_pool: ::core::option::Option, + /// The options for this buddy group. + /// Required. + #[prost(message, optional, tag = "8")] + pub options: ::core::option::Option, } } /// Creates a new buddy group. @@ -398,6 +458,10 @@ pub struct CreateBuddyGroupRequest { /// Required. One identifier is sufficient. #[prost(message, optional, tag = "5")] pub secondary_target: ::core::option::Option, + /// The options for this buddy group. + /// Required. + #[prost(message, optional, tag = "6")] + pub options: ::core::option::Option, } #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct CreateBuddyGroupResponse { @@ -406,6 +470,20 @@ pub struct CreateBuddyGroupResponse { #[prost(message, optional, tag = "1")] pub group: ::core::option::Option, } +/// Modifies a buddy group or its config. +#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ModifyBuddyGroupRequest { + /// The buddy group to modify. + /// Required. One identifier is sufficient. + #[prost(message, optional, tag = "1")] + pub group: ::core::option::Option, + /// The options for this buddy group. + /// Required. + #[prost(message, optional, tag = "2")] + pub options: ::core::option::Option, +} +#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] +pub struct ModifyBuddyGroupResponse {} /// Deletes a buddy group from the system. #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct DeleteBuddyGroupRequest { @@ -1011,6 +1089,30 @@ pub mod management_client { .insert(GrpcMethod::new("management.Management", "CreateBuddyGroup")); self.inner.unary(req, path, codec).await } + pub async fn modify_buddy_group( + &mut self, + request: impl tonic::IntoRequest, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + > { + self.inner + .ready() + .await + .map_err(|e| { + tonic::Status::unknown( + format!("Service was not ready: {}", e.into()), + ) + })?; + let codec = tonic_prost::ProstCodec::default(); + let path = http::uri::PathAndQuery::from_static( + "/management.Management/ModifyBuddyGroup", + ); + let mut req = request.into_request(); + req.extensions_mut() + .insert(GrpcMethod::new("management.Management", "ModifyBuddyGroup")); + self.inner.unary(req, path, codec).await + } pub async fn delete_buddy_group( &mut self, request: impl tonic::IntoRequest, @@ -1311,6 +1413,13 @@ pub mod management_server { tonic::Response, tonic::Status, >; + async fn modify_buddy_group( + &self, + request: tonic::Request, + ) -> std::result::Result< + tonic::Response, + tonic::Status, + >; async fn delete_buddy_group( &self, request: tonic::Request, @@ -1998,6 +2107,51 @@ pub mod management_server { }; Box::pin(fut) } + "/management.Management/ModifyBuddyGroup" => { + #[allow(non_camel_case_types)] + struct ModifyBuddyGroupSvc(pub Arc); + impl< + T: Management, + > tonic::server::UnaryService + for ModifyBuddyGroupSvc { + type Response = super::ModifyBuddyGroupResponse; + type Future = BoxFuture< + tonic::Response, + tonic::Status, + >; + fn call( + &mut self, + request: tonic::Request, + ) -> Self::Future { + let inner = Arc::clone(&self.0); + let fut = async move { + ::modify_buddy_group(&inner, request).await + }; + Box::pin(fut) + } + } + let accept_compression_encodings = self.accept_compression_encodings; + let send_compression_encodings = self.send_compression_encodings; + let max_decoding_message_size = self.max_decoding_message_size; + let max_encoding_message_size = self.max_encoding_message_size; + let inner = self.inner.clone(); + let fut = async move { + let method = ModifyBuddyGroupSvc(inner); + let codec = tonic_prost::ProstCodec::default(); + let mut grpc = tonic::server::Grpc::new(codec) + .apply_compression_config( + accept_compression_encodings, + send_compression_encodings, + ) + .apply_max_message_size_config( + max_decoding_message_size, + max_encoding_message_size, + ); + let res = grpc.unary(method, req).await; + Ok(res) + }; + Box::pin(fut) + } "/management.Management/DeleteBuddyGroup" => { #[allow(non_camel_case_types)] struct DeleteBuddyGroupSvc(pub Arc);