From fc9e304367094560c4ed0fdd73616b123483d2bb Mon Sep 17 00:00:00 2001 From: godlovegeekin Date: Tue, 25 Jun 2024 16:41:18 +0800 Subject: [PATCH] add openmeeting proto --- gen_openmeeting.sh | 33 + openmeeting/admin/admin.pb.go | 386 +++ openmeeting/admin/admin.proto | 41 + openmeeting/meeting/meeting.pb.go | 4680 +++++++++++++++++++++++++++++ openmeeting/meeting/meeting.proto | 338 +++ openmeeting/user/user.pb.go | 1194 ++++++++ openmeeting/user/user.proto | 90 + 7 files changed, 6762 insertions(+) create mode 100755 gen_openmeeting.sh create mode 100644 openmeeting/admin/admin.pb.go create mode 100644 openmeeting/admin/admin.proto create mode 100644 openmeeting/meeting/meeting.pb.go create mode 100644 openmeeting/meeting/meeting.proto create mode 100644 openmeeting/user/user.pb.go create mode 100644 openmeeting/user/user.proto diff --git a/gen_openmeeting.sh b/gen_openmeeting.sh new file mode 100755 index 00000000..00de5914 --- /dev/null +++ b/gen_openmeeting.sh @@ -0,0 +1,33 @@ +# Copyright © 2023 OpenIM. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +PROTO_NAMES=( + "admin" + "user" + "meeting" +) + +for name in "${PROTO_NAMES[@]}"; do + protoc --go_out=plugins=grpc:./openmeeting/${name} --go_opt=module=github.com/openimsdk/protocol/openmeeting/${name} openmeeting/${name}/${name}.proto + if [ $? -ne 0 ]; then + echo "error processing ${name}.proto" + exit $? + fi +done + +if [ "$(uname -s)" == "Darwin" ]; then + find . -type f -name '*.pb.go' -exec sed -i '' 's/,omitempty"`/\"\`/g' {} + +else + find . -type f -name '*.pb.go' -exec sed -i 's/,omitempty"`/\"\`/g' {} + +fi \ No newline at end of file diff --git a/openmeeting/admin/admin.pb.go b/openmeeting/admin/admin.pb.go new file mode 100644 index 00000000..db590379 --- /dev/null +++ b/openmeeting/admin/admin.pb.go @@ -0,0 +1,386 @@ +// Copyright © 2023 OpenIM. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.33.0 +// protoc v3.15.0 +// source: openmeeting/admin/admin.proto + +package admin + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type UserLoginReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Account string `protobuf:"bytes,4,opt,name=account,proto3" json:"account"` + Password string `protobuf:"bytes,5,opt,name=password,proto3" json:"password"` +} + +func (x *UserLoginReq) Reset() { + *x = UserLoginReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_admin_admin_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserLoginReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserLoginReq) ProtoMessage() {} + +func (x *UserLoginReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_admin_admin_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserLoginReq.ProtoReflect.Descriptor instead. +func (*UserLoginReq) Descriptor() ([]byte, []int) { + return file_openmeeting_admin_admin_proto_rawDescGZIP(), []int{0} +} + +func (x *UserLoginReq) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *UserLoginReq) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type UserLoginResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token"` + UserID string `protobuf:"bytes,3,opt,name=userID,proto3" json:"userID"` +} + +func (x *UserLoginResp) Reset() { + *x = UserLoginResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_admin_admin_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserLoginResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserLoginResp) ProtoMessage() {} + +func (x *UserLoginResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_admin_admin_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserLoginResp.ProtoReflect.Descriptor instead. +func (*UserLoginResp) Descriptor() ([]byte, []int) { + return file_openmeeting_admin_admin_proto_rawDescGZIP(), []int{1} +} + +func (x *UserLoginResp) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *UserLoginResp) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +type UserRegisterReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"` + Account string `protobuf:"bytes,3,opt,name=account,proto3" json:"account"` + Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password"` +} + +func (x *UserRegisterReq) Reset() { + *x = UserRegisterReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_admin_admin_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserRegisterReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserRegisterReq) ProtoMessage() {} + +func (x *UserRegisterReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_admin_admin_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserRegisterReq.ProtoReflect.Descriptor instead. +func (*UserRegisterReq) Descriptor() ([]byte, []int) { + return file_openmeeting_admin_admin_proto_rawDescGZIP(), []int{2} +} + +func (x *UserRegisterReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *UserRegisterReq) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *UserRegisterReq) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *UserRegisterReq) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type UserRegisterResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UserRegisterResp) Reset() { + *x = UserRegisterResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_admin_admin_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserRegisterResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserRegisterResp) ProtoMessage() {} + +func (x *UserRegisterResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_admin_admin_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserRegisterResp.ProtoReflect.Descriptor instead. +func (*UserRegisterResp) Descriptor() ([]byte, []int) { + return file_openmeeting_admin_admin_proto_rawDescGZIP(), []int{3} +} + +var File_openmeeting_admin_admin_proto protoreflect.FileDescriptor + +var file_openmeeting_admin_admin_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x11, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x22, 0x44, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, + 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x3d, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x7b, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x73, 0x64, 0x6b, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_openmeeting_admin_admin_proto_rawDescOnce sync.Once + file_openmeeting_admin_admin_proto_rawDescData = file_openmeeting_admin_admin_proto_rawDesc +) + +func file_openmeeting_admin_admin_proto_rawDescGZIP() []byte { + file_openmeeting_admin_admin_proto_rawDescOnce.Do(func() { + file_openmeeting_admin_admin_proto_rawDescData = protoimpl.X.CompressGZIP(file_openmeeting_admin_admin_proto_rawDescData) + }) + return file_openmeeting_admin_admin_proto_rawDescData +} + +var file_openmeeting_admin_admin_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_openmeeting_admin_admin_proto_goTypes = []interface{}{ + (*UserLoginReq)(nil), // 0: openmeeting.admin.userLoginReq + (*UserLoginResp)(nil), // 1: openmeeting.admin.userLoginResp + (*UserRegisterReq)(nil), // 2: openmeeting.admin.userRegisterReq + (*UserRegisterResp)(nil), // 3: openmeeting.admin.userRegisterResp +} +var file_openmeeting_admin_admin_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_openmeeting_admin_admin_proto_init() } +func file_openmeeting_admin_admin_proto_init() { + if File_openmeeting_admin_admin_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_openmeeting_admin_admin_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserLoginReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_admin_admin_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserLoginResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_admin_admin_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRegisterReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_admin_admin_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRegisterResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_openmeeting_admin_admin_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_openmeeting_admin_admin_proto_goTypes, + DependencyIndexes: file_openmeeting_admin_admin_proto_depIdxs, + MessageInfos: file_openmeeting_admin_admin_proto_msgTypes, + }.Build() + File_openmeeting_admin_admin_proto = out.File + file_openmeeting_admin_admin_proto_rawDesc = nil + file_openmeeting_admin_admin_proto_goTypes = nil + file_openmeeting_admin_admin_proto_depIdxs = nil +} diff --git a/openmeeting/admin/admin.proto b/openmeeting/admin/admin.proto new file mode 100644 index 00000000..1aaaf18d --- /dev/null +++ b/openmeeting/admin/admin.proto @@ -0,0 +1,41 @@ +// Copyright © 2023 OpenIM. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package openmeeting.admin; + +option go_package = "github.com/openimsdk/protocol/openmeeting/admin"; + + +message userLoginReq { + string account = 4; + string password = 5; +} + +message userLoginResp { + string token = 2; + string userID = 3; +} + +message userRegisterReq { + string userID = 1; + string nickname = 2; + string account = 3; + string password = 4; +} + +message userRegisterResp { +} + diff --git a/openmeeting/meeting/meeting.pb.go b/openmeeting/meeting/meeting.pb.go new file mode 100644 index 00000000..11b78c53 --- /dev/null +++ b/openmeeting/meeting/meeting.pb.go @@ -0,0 +1,4680 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.33.0 +// protoc v3.15.0 +// source: openmeeting/meeting/meeting.proto + +package meeting + +import ( + context "context" + wrapperspb "github.com/openimsdk/protocol/wrapperspb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Defines LiveKit access information. +type LiveKit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token"` // Access token for authentication. + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url"` // URL to connect to LiveKit. +} + +func (x *LiveKit) Reset() { + *x = LiveKit{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LiveKit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LiveKit) ProtoMessage() {} + +func (x *LiveKit) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LiveKit.ProtoReflect.Descriptor instead. +func (*LiveKit) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{0} +} + +func (x *LiveKit) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *LiveKit) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +// Information about a specific meeting that cannot be changed once set. +type SystemGeneratedMeetingInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatorUserID string `protobuf:"bytes,1,opt,name=creatorUserID,proto3" json:"creatorUserID"` // The user ID of the meeting creator. + CreatorNickname string `protobuf:"bytes,2,opt,name=creatorNickname,proto3" json:"creatorNickname"` // The user name of the meeting creator. + Status string `protobuf:"bytes,3,opt,name=status,proto3" json:"status"` // The current status of the meeting, e.g., scheduled, in-progress, completed. + StartTime int64 `protobuf:"varint,4,opt,name=startTime,proto3" json:"startTime"` // The actual start time of the meeting (as a timestamp). + MeetingID string `protobuf:"bytes,5,opt,name=meetingID,proto3" json:"meetingID"` // Unique identifier for the meeting. +} + +func (x *SystemGeneratedMeetingInfo) Reset() { + *x = SystemGeneratedMeetingInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SystemGeneratedMeetingInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SystemGeneratedMeetingInfo) ProtoMessage() {} + +func (x *SystemGeneratedMeetingInfo) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SystemGeneratedMeetingInfo.ProtoReflect.Descriptor instead. +func (*SystemGeneratedMeetingInfo) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{1} +} + +func (x *SystemGeneratedMeetingInfo) GetCreatorUserID() string { + if x != nil { + return x.CreatorUserID + } + return "" +} + +func (x *SystemGeneratedMeetingInfo) GetCreatorNickname() string { + if x != nil { + return x.CreatorNickname + } + return "" +} + +func (x *SystemGeneratedMeetingInfo) GetStatus() string { + if x != nil { + return x.Status + } + return "" +} + +func (x *SystemGeneratedMeetingInfo) GetStartTime() int64 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *SystemGeneratedMeetingInfo) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +// Information about a specific meeting that can be modified. +type CreatorDefinedMeetingInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"` // The title of the meeting. + ScheduledTime int64 `protobuf:"varint,2,opt,name=scheduledTime,proto3" json:"scheduledTime"` // The scheduled start time of the meeting (as a timestamp). + MeetingDuration int64 `protobuf:"varint,3,opt,name=meetingDuration,proto3" json:"meetingDuration"` // The duration of the meeting in seconds. + Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password"` // Password required to join the meeting, if any. + TimeZone string `protobuf:"bytes,5,opt,name=timeZone,proto3" json:"timeZone"` // creator specify time zone. + HostUserID string `protobuf:"bytes,6,opt,name=hostUserID,proto3" json:"hostUserID"` + CoHostUSerID []string `protobuf:"bytes,7,rep,name=coHostUSerID,proto3" json:"coHostUSerID"` +} + +func (x *CreatorDefinedMeetingInfo) Reset() { + *x = CreatorDefinedMeetingInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreatorDefinedMeetingInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatorDefinedMeetingInfo) ProtoMessage() {} + +func (x *CreatorDefinedMeetingInfo) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreatorDefinedMeetingInfo.ProtoReflect.Descriptor instead. +func (*CreatorDefinedMeetingInfo) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{2} +} + +func (x *CreatorDefinedMeetingInfo) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *CreatorDefinedMeetingInfo) GetScheduledTime() int64 { + if x != nil { + return x.ScheduledTime + } + return 0 +} + +func (x *CreatorDefinedMeetingInfo) GetMeetingDuration() int64 { + if x != nil { + return x.MeetingDuration + } + return 0 +} + +func (x *CreatorDefinedMeetingInfo) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *CreatorDefinedMeetingInfo) GetTimeZone() string { + if x != nil { + return x.TimeZone + } + return "" +} + +func (x *CreatorDefinedMeetingInfo) GetHostUserID() string { + if x != nil { + return x.HostUserID + } + return "" +} + +func (x *CreatorDefinedMeetingInfo) GetCoHostUSerID() []string { + if x != nil { + return x.CoHostUSerID + } + return nil +} + +// Information about a specific meeting, combining system-generated and creator-defined information. +type MeetingInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SystemGenerated *SystemGeneratedMeetingInfo `protobuf:"bytes,1,opt,name=systemGenerated,proto3" json:"systemGenerated"` + CreatorDefinedMeeting *CreatorDefinedMeetingInfo `protobuf:"bytes,2,opt,name=creatorDefinedMeeting,proto3" json:"creatorDefinedMeeting"` +} + +func (x *MeetingInfo) Reset() { + *x = MeetingInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MeetingInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MeetingInfo) ProtoMessage() {} + +func (x *MeetingInfo) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MeetingInfo.ProtoReflect.Descriptor instead. +func (*MeetingInfo) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{3} +} + +func (x *MeetingInfo) GetSystemGenerated() *SystemGeneratedMeetingInfo { + if x != nil { + return x.SystemGenerated + } + return nil +} + +func (x *MeetingInfo) GetCreatorDefinedMeeting() *CreatorDefinedMeetingInfo { + if x != nil { + return x.CreatorDefinedMeeting + } + return nil +} + +type MeetingRepeatInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EndDate string `protobuf:"bytes,1,opt,name=endDate,proto3" json:"endDate"` + RepeatType string `protobuf:"bytes,2,opt,name=repeatType,proto3" json:"repeatType"` + UintType string `protobuf:"bytes,3,opt,name=uintType,proto3" json:"uintType"` + Interval int32 `protobuf:"varint,4,opt,name=interval,proto3" json:"interval"` +} + +func (x *MeetingRepeatInfo) Reset() { + *x = MeetingRepeatInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MeetingRepeatInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MeetingRepeatInfo) ProtoMessage() {} + +func (x *MeetingRepeatInfo) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MeetingRepeatInfo.ProtoReflect.Descriptor instead. +func (*MeetingRepeatInfo) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{4} +} + +func (x *MeetingRepeatInfo) GetEndDate() string { + if x != nil { + return x.EndDate + } + return "" +} + +func (x *MeetingRepeatInfo) GetRepeatType() string { + if x != nil { + return x.RepeatType + } + return "" +} + +func (x *MeetingRepeatInfo) GetUintType() string { + if x != nil { + return x.UintType + } + return "" +} + +func (x *MeetingRepeatInfo) GetInterval() int32 { + if x != nil { + return x.Interval + } + return 0 +} + +// Settings controlling meeting features such as video, audio, and screen sharing permissions. +type MeetingSetting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CanParticipantsEnableCamera bool `protobuf:"varint,1,opt,name=canParticipantsEnableCamera,proto3" json:"canParticipantsEnableCamera"` // Whether participants can enable their video camera. + CanParticipantsUnmuteMicrophone bool `protobuf:"varint,2,opt,name=canParticipantsUnmuteMicrophone,proto3" json:"canParticipantsUnmuteMicrophone"` // Whether participants can unmute their microphone. + CanParticipantsShareScreen bool `protobuf:"varint,3,opt,name=canParticipantsShareScreen,proto3" json:"canParticipantsShareScreen"` // Whether participants can share their screen. + DisableCameraOnJoin bool `protobuf:"varint,4,opt,name=disableCameraOnJoin,proto3" json:"disableCameraOnJoin"` // Whether the camera is disabled by default when joining. + DisableMicrophoneOnJoin bool `protobuf:"varint,5,opt,name=disableMicrophoneOnJoin,proto3" json:"disableMicrophoneOnJoin"` // Whether the microphone is disabled by default when joining. + CanParticipantJoinMeetingEarly bool `protobuf:"varint,6,opt,name=canParticipantJoinMeetingEarly,proto3" json:"canParticipantJoinMeetingEarly"` // Allow participants to join the meeting early. + LockMeeting bool `protobuf:"varint,7,opt,name=lockMeeting,proto3" json:"lockMeeting"` // if the meeting is locked, new comer could not join the meeting. + AudioEncouragement bool `protobuf:"varint,8,opt,name=audioEncouragement,proto3" json:"audioEncouragement"` // could turn on the audio encouragement for client. + VideoMirroring bool `protobuf:"varint,9,opt,name=videoMirroring,proto3" json:"videoMirroring"` // could turn on the video mirroring for client. +} + +func (x *MeetingSetting) Reset() { + *x = MeetingSetting{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MeetingSetting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MeetingSetting) ProtoMessage() {} + +func (x *MeetingSetting) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MeetingSetting.ProtoReflect.Descriptor instead. +func (*MeetingSetting) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{5} +} + +func (x *MeetingSetting) GetCanParticipantsEnableCamera() bool { + if x != nil { + return x.CanParticipantsEnableCamera + } + return false +} + +func (x *MeetingSetting) GetCanParticipantsUnmuteMicrophone() bool { + if x != nil { + return x.CanParticipantsUnmuteMicrophone + } + return false +} + +func (x *MeetingSetting) GetCanParticipantsShareScreen() bool { + if x != nil { + return x.CanParticipantsShareScreen + } + return false +} + +func (x *MeetingSetting) GetDisableCameraOnJoin() bool { + if x != nil { + return x.DisableCameraOnJoin + } + return false +} + +func (x *MeetingSetting) GetDisableMicrophoneOnJoin() bool { + if x != nil { + return x.DisableMicrophoneOnJoin + } + return false +} + +func (x *MeetingSetting) GetCanParticipantJoinMeetingEarly() bool { + if x != nil { + return x.CanParticipantJoinMeetingEarly + } + return false +} + +func (x *MeetingSetting) GetLockMeeting() bool { + if x != nil { + return x.LockMeeting + } + return false +} + +func (x *MeetingSetting) GetAudioEncouragement() bool { + if x != nil { + return x.AudioEncouragement + } + return false +} + +func (x *MeetingSetting) GetVideoMirroring() bool { + if x != nil { + return x.VideoMirroring + } + return false +} + +// Detailed information about a meeting, combining info and settings. +type MeetingInfoSetting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info *MeetingInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info"` + Setting *MeetingSetting `protobuf:"bytes,2,opt,name=setting,proto3" json:"setting"` + RepeatInfo *MeetingRepeatInfo `protobuf:"bytes,3,opt,name=repeatInfo,proto3" json:"repeatInfo"` +} + +func (x *MeetingInfoSetting) Reset() { + *x = MeetingInfoSetting{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MeetingInfoSetting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MeetingInfoSetting) ProtoMessage() {} + +func (x *MeetingInfoSetting) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MeetingInfoSetting.ProtoReflect.Descriptor instead. +func (*MeetingInfoSetting) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{6} +} + +func (x *MeetingInfoSetting) GetInfo() *MeetingInfo { + if x != nil { + return x.Info + } + return nil +} + +func (x *MeetingInfoSetting) GetSetting() *MeetingSetting { + if x != nil { + return x.Setting + } + return nil +} + +func (x *MeetingInfoSetting) GetRepeatInfo() *MeetingRepeatInfo { + if x != nil { + return x.RepeatInfo + } + return nil +} + +type UserInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"` + Account string `protobuf:"bytes,3,opt,name=account,proto3" json:"account"` +} + +func (x *UserInfo) Reset() { + *x = UserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserInfo) ProtoMessage() {} + +func (x *UserInfo) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. +func (*UserInfo) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{7} +} + +func (x *UserInfo) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *UserInfo) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *UserInfo) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +// participant meta data +type ParticipantMetaData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserInfo *UserInfo `protobuf:"bytes,1,opt,name=userInfo,proto3" json:"userInfo"` +} + +func (x *ParticipantMetaData) Reset() { + *x = ParticipantMetaData{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParticipantMetaData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParticipantMetaData) ProtoMessage() {} + +func (x *ParticipantMetaData) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParticipantMetaData.ProtoReflect.Descriptor instead. +func (*ParticipantMetaData) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{8} +} + +func (x *ParticipantMetaData) GetUserInfo() *UserInfo { + if x != nil { + return x.UserInfo + } + return nil +} + +type StreamOperateData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperatorUserID string `protobuf:"bytes,1,opt,name=operatorUserID,proto3" json:"operatorUserID"` + Operation []*UserOperationData `protobuf:"bytes,2,rep,name=operation,proto3" json:"operation"` +} + +func (x *StreamOperateData) Reset() { + *x = StreamOperateData{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamOperateData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamOperateData) ProtoMessage() {} + +func (x *StreamOperateData) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StreamOperateData.ProtoReflect.Descriptor instead. +func (*StreamOperateData) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{9} +} + +func (x *StreamOperateData) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID + } + return "" +} + +func (x *StreamOperateData) GetOperation() []*UserOperationData { + if x != nil { + return x.Operation + } + return nil +} + +type UserOperationData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` + // pbwrapper.BoolValue cameraOnEntry = 2; + // pbwrapper.BoolValue microphoneOnEntry = 3; + CameraOnEntry bool `protobuf:"varint,2,opt,name=cameraOnEntry,proto3" json:"cameraOnEntry"` + MicrophoneOnEntry bool `protobuf:"varint,3,opt,name=microphoneOnEntry,proto3" json:"microphoneOnEntry"` +} + +func (x *UserOperationData) Reset() { + *x = UserOperationData{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserOperationData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserOperationData) ProtoMessage() {} + +func (x *UserOperationData) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserOperationData.ProtoReflect.Descriptor instead. +func (*UserOperationData) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{10} +} + +func (x *UserOperationData) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *UserOperationData) GetCameraOnEntry() bool { + if x != nil { + return x.CameraOnEntry + } + return false +} + +func (x *UserOperationData) GetMicrophoneOnEntry() bool { + if x != nil { + return x.MicrophoneOnEntry + } + return false +} + +// Request to book a future meeting. +type BookMeetingReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatorUserID string `protobuf:"bytes,1,opt,name=creatorUserID,proto3" json:"creatorUserID"` + CreatorDefinedMeetingInfo *CreatorDefinedMeetingInfo `protobuf:"bytes,2,opt,name=creatorDefinedMeetingInfo,proto3" json:"creatorDefinedMeetingInfo"` + Setting *MeetingSetting `protobuf:"bytes,3,opt,name=setting,proto3" json:"setting"` + RepeatInfo *MeetingRepeatInfo `protobuf:"bytes,4,opt,name=repeatInfo,proto3" json:"repeatInfo"` +} + +func (x *BookMeetingReq) Reset() { + *x = BookMeetingReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BookMeetingReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BookMeetingReq) ProtoMessage() {} + +func (x *BookMeetingReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BookMeetingReq.ProtoReflect.Descriptor instead. +func (*BookMeetingReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{11} +} + +func (x *BookMeetingReq) GetCreatorUserID() string { + if x != nil { + return x.CreatorUserID + } + return "" +} + +func (x *BookMeetingReq) GetCreatorDefinedMeetingInfo() *CreatorDefinedMeetingInfo { + if x != nil { + return x.CreatorDefinedMeetingInfo + } + return nil +} + +func (x *BookMeetingReq) GetSetting() *MeetingSetting { + if x != nil { + return x.Setting + } + return nil +} + +func (x *BookMeetingReq) GetRepeatInfo() *MeetingRepeatInfo { + if x != nil { + return x.RepeatInfo + } + return nil +} + +// Response after booking a meeting. +type BookMeetingResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Detail *MeetingInfoSetting `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail"` +} + +func (x *BookMeetingResp) Reset() { + *x = BookMeetingResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BookMeetingResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BookMeetingResp) ProtoMessage() {} + +func (x *BookMeetingResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BookMeetingResp.ProtoReflect.Descriptor instead. +func (*BookMeetingResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{12} +} + +func (x *BookMeetingResp) GetDetail() *MeetingInfoSetting { + if x != nil { + return x.Detail + } + return nil +} + +// Request to create an immediate meeting. +type CreateImmediateMeetingReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatorUserID string `protobuf:"bytes,1,opt,name=creatorUserID,proto3" json:"creatorUserID"` + CreatorDefinedMeetingInfo *CreatorDefinedMeetingInfo `protobuf:"bytes,2,opt,name=creatorDefinedMeetingInfo,proto3" json:"creatorDefinedMeetingInfo"` + Setting *MeetingSetting `protobuf:"bytes,3,opt,name=setting,proto3" json:"setting"` +} + +func (x *CreateImmediateMeetingReq) Reset() { + *x = CreateImmediateMeetingReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateImmediateMeetingReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateImmediateMeetingReq) ProtoMessage() {} + +func (x *CreateImmediateMeetingReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateImmediateMeetingReq.ProtoReflect.Descriptor instead. +func (*CreateImmediateMeetingReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{13} +} + +func (x *CreateImmediateMeetingReq) GetCreatorUserID() string { + if x != nil { + return x.CreatorUserID + } + return "" +} + +func (x *CreateImmediateMeetingReq) GetCreatorDefinedMeetingInfo() *CreatorDefinedMeetingInfo { + if x != nil { + return x.CreatorDefinedMeetingInfo + } + return nil +} + +func (x *CreateImmediateMeetingReq) GetSetting() *MeetingSetting { + if x != nil { + return x.Setting + } + return nil +} + +// Response after creating an immediate meeting. +type CreateImmediateMeetingResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Detail *MeetingInfoSetting `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail"` + LiveKit *LiveKit `protobuf:"bytes,2,opt,name=liveKit,proto3" json:"liveKit"` +} + +func (x *CreateImmediateMeetingResp) Reset() { + *x = CreateImmediateMeetingResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateImmediateMeetingResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateImmediateMeetingResp) ProtoMessage() {} + +func (x *CreateImmediateMeetingResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateImmediateMeetingResp.ProtoReflect.Descriptor instead. +func (*CreateImmediateMeetingResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{14} +} + +func (x *CreateImmediateMeetingResp) GetDetail() *MeetingInfoSetting { + if x != nil { + return x.Detail + } + return nil +} + +func (x *CreateImmediateMeetingResp) GetLiveKit() *LiveKit { + if x != nil { + return x.LiveKit + } + return nil +} + +// Request to join a meeting. +type JoinMeetingReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"` // User who joins the meeting. + Password string `protobuf:"bytes,3,opt,name=password,proto3" json:"password"` +} + +func (x *JoinMeetingReq) Reset() { + *x = JoinMeetingReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinMeetingReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinMeetingReq) ProtoMessage() {} + +func (x *JoinMeetingReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JoinMeetingReq.ProtoReflect.Descriptor instead. +func (*JoinMeetingReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{15} +} + +func (x *JoinMeetingReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *JoinMeetingReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *JoinMeetingReq) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +// Response after joining a meeting. +type JoinMeetingResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LiveKit *LiveKit `protobuf:"bytes,1,opt,name=liveKit,proto3" json:"liveKit"` +} + +func (x *JoinMeetingResp) Reset() { + *x = JoinMeetingResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinMeetingResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinMeetingResp) ProtoMessage() {} + +func (x *JoinMeetingResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JoinMeetingResp.ProtoReflect.Descriptor instead. +func (*JoinMeetingResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{16} +} + +func (x *JoinMeetingResp) GetLiveKit() *LiveKit { + if x != nil { + return x.LiveKit + } + return nil +} + +// Request to get a specific meeting token. +type GetMeetingTokenReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"` // User who joins the meeting. +} + +func (x *GetMeetingTokenReq) Reset() { + *x = GetMeetingTokenReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMeetingTokenReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMeetingTokenReq) ProtoMessage() {} + +func (x *GetMeetingTokenReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMeetingTokenReq.ProtoReflect.Descriptor instead. +func (*GetMeetingTokenReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{17} +} + +func (x *GetMeetingTokenReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *GetMeetingTokenReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +// Response after getting a specific meeting. +type GetMeetingTokenResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + LiveKit *LiveKit `protobuf:"bytes,2,opt,name=liveKit,proto3" json:"liveKit"` +} + +func (x *GetMeetingTokenResp) Reset() { + *x = GetMeetingTokenResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMeetingTokenResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMeetingTokenResp) ProtoMessage() {} + +func (x *GetMeetingTokenResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMeetingTokenResp.ProtoReflect.Descriptor instead. +func (*GetMeetingTokenResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{18} +} + +func (x *GetMeetingTokenResp) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *GetMeetingTokenResp) GetLiveKit() *LiveKit { + if x != nil { + return x.LiveKit + } + return nil +} + +// Request to leave a meeting. +type LeaveMeetingReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"` // User who leaves the room. +} + +func (x *LeaveMeetingReq) Reset() { + *x = LeaveMeetingReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeaveMeetingReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeaveMeetingReq) ProtoMessage() {} + +func (x *LeaveMeetingReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LeaveMeetingReq.ProtoReflect.Descriptor instead. +func (*LeaveMeetingReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{19} +} + +func (x *LeaveMeetingReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *LeaveMeetingReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +// Response after leaving a meeting. +type LeaveMeetingResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *LeaveMeetingResp) Reset() { + *x = LeaveMeetingResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeaveMeetingResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeaveMeetingResp) ProtoMessage() {} + +func (x *LeaveMeetingResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LeaveMeetingResp.ProtoReflect.Descriptor instead. +func (*LeaveMeetingResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{20} +} + +// Request to end a meeting. +type EndMeetingReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"` +} + +func (x *EndMeetingReq) Reset() { + *x = EndMeetingReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EndMeetingReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EndMeetingReq) ProtoMessage() {} + +func (x *EndMeetingReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EndMeetingReq.ProtoReflect.Descriptor instead. +func (*EndMeetingReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{21} +} + +func (x *EndMeetingReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *EndMeetingReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +// Response after ending a meeting. +type EndMeetingResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EndMeetingResp) Reset() { + *x = EndMeetingResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EndMeetingResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EndMeetingResp) ProtoMessage() {} + +func (x *EndMeetingResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EndMeetingResp.ProtoReflect.Descriptor instead. +func (*EndMeetingResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{22} +} + +// Request to get a list of meetings both created and joined by a user. +type GetMeetingsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` // The unique identifier of the user. + Status []string `protobuf:"bytes,2,rep,name=status,proto3" json:"status"` // The status filter for meetings, e.g., "scheduled", "in-progress", "completed". +} + +func (x *GetMeetingsReq) Reset() { + *x = GetMeetingsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMeetingsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMeetingsReq) ProtoMessage() {} + +func (x *GetMeetingsReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMeetingsReq.ProtoReflect.Descriptor instead. +func (*GetMeetingsReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{23} +} + +func (x *GetMeetingsReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *GetMeetingsReq) GetStatus() []string { + if x != nil { + return x.Status + } + return nil +} + +// Response with a list of meetings that the user has created or joined. +type GetMeetingsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingDetails []*MeetingInfoSetting `protobuf:"bytes,1,rep,name=meetingDetails,proto3" json:"meetingDetails"` // Detailed information about each meeting. +} + +func (x *GetMeetingsResp) Reset() { + *x = GetMeetingsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMeetingsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMeetingsResp) ProtoMessage() {} + +func (x *GetMeetingsResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMeetingsResp.ProtoReflect.Descriptor instead. +func (*GetMeetingsResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{24} +} + +func (x *GetMeetingsResp) GetMeetingDetails() []*MeetingInfoSetting { + if x != nil { + return x.MeetingDetails + } + return nil +} + +// Request to get information about a specific meeting. +type GetMeetingReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` + MeetingID string `protobuf:"bytes,2,opt,name=meetingID,proto3" json:"meetingID"` +} + +func (x *GetMeetingReq) Reset() { + *x = GetMeetingReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMeetingReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMeetingReq) ProtoMessage() {} + +func (x *GetMeetingReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMeetingReq.ProtoReflect.Descriptor instead. +func (*GetMeetingReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{25} +} + +func (x *GetMeetingReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *GetMeetingReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +// Response with detailed information about a meeting. +type GetMeetingResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingDetail *MeetingInfoSetting `protobuf:"bytes,1,opt,name=meetingDetail,proto3" json:"meetingDetail"` +} + +func (x *GetMeetingResp) Reset() { + *x = GetMeetingResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMeetingResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMeetingResp) ProtoMessage() {} + +func (x *GetMeetingResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMeetingResp.ProtoReflect.Descriptor instead. +func (*GetMeetingResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{26} +} + +func (x *GetMeetingResp) GetMeetingDetail() *MeetingInfoSetting { + if x != nil { + return x.MeetingDetail + } + return nil +} + +type ModifyMeetingParticipantNickNameReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"` + ParticipantUserID string `protobuf:"bytes,3,opt,name=participantUserID,proto3" json:"participantUserID"` + Nickname string `protobuf:"bytes,4,opt,name=nickname,proto3" json:"nickname"` +} + +func (x *ModifyMeetingParticipantNickNameReq) Reset() { + *x = ModifyMeetingParticipantNickNameReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModifyMeetingParticipantNickNameReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModifyMeetingParticipantNickNameReq) ProtoMessage() {} + +func (x *ModifyMeetingParticipantNickNameReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModifyMeetingParticipantNickNameReq.ProtoReflect.Descriptor instead. +func (*ModifyMeetingParticipantNickNameReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{27} +} + +func (x *ModifyMeetingParticipantNickNameReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *ModifyMeetingParticipantNickNameReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *ModifyMeetingParticipantNickNameReq) GetParticipantUserID() string { + if x != nil { + return x.ParticipantUserID + } + return "" +} + +func (x *ModifyMeetingParticipantNickNameReq) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +type ModifyMeetingParticipantNickNameResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ModifyMeetingParticipantNickNameResp) Reset() { + *x = ModifyMeetingParticipantNickNameResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModifyMeetingParticipantNickNameResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModifyMeetingParticipantNickNameResp) ProtoMessage() {} + +func (x *ModifyMeetingParticipantNickNameResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ModifyMeetingParticipantNickNameResp.ProtoReflect.Descriptor instead. +func (*ModifyMeetingParticipantNickNameResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{28} +} + +// Request to update specific fields of a meeting. +type UpdateMeetingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UpdatingUserID string `protobuf:"bytes,2,opt,name=updatingUserID,proto3" json:"updatingUserID"` + Title *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=title,proto3" json:"title"` + ScheduledTime *wrapperspb.Int64Value `protobuf:"bytes,4,opt,name=scheduledTime,proto3" json:"scheduledTime"` + MeetingDuration *wrapperspb.Int64Value `protobuf:"bytes,5,opt,name=meetingDuration,proto3" json:"meetingDuration"` + Password *wrapperspb.StringValue `protobuf:"bytes,6,opt,name=password,proto3" json:"password"` + TimeZone *wrapperspb.StringValue `protobuf:"bytes,7,opt,name=timeZone,proto3" json:"timeZone"` + RepeatInfo *MeetingRepeatInfo `protobuf:"bytes,8,opt,name=repeatInfo,proto3" json:"repeatInfo"` + CanParticipantsEnableCamera *wrapperspb.BoolValue `protobuf:"bytes,9,opt,name=canParticipantsEnableCamera,proto3" json:"canParticipantsEnableCamera"` + CanParticipantsUnmuteMicrophone *wrapperspb.BoolValue `protobuf:"bytes,10,opt,name=canParticipantsUnmuteMicrophone,proto3" json:"canParticipantsUnmuteMicrophone"` + CanParticipantsShareScreen *wrapperspb.BoolValue `protobuf:"bytes,11,opt,name=canParticipantsShareScreen,proto3" json:"canParticipantsShareScreen"` + DisableCameraOnJoin *wrapperspb.BoolValue `protobuf:"bytes,12,opt,name=disableCameraOnJoin,proto3" json:"disableCameraOnJoin"` + DisableMicrophoneOnJoin *wrapperspb.BoolValue `protobuf:"bytes,13,opt,name=disableMicrophoneOnJoin,proto3" json:"disableMicrophoneOnJoin"` + CanParticipantJoinMeetingEarly *wrapperspb.BoolValue `protobuf:"bytes,14,opt,name=canParticipantJoinMeetingEarly,proto3" json:"canParticipantJoinMeetingEarly"` // Allow participants to join the meeting early. + LockMeeting *wrapperspb.BoolValue `protobuf:"bytes,15,opt,name=lockMeeting,proto3" json:"lockMeeting"` // if the meeting is locked, new comer could not join the meeting. + AudioEncouragement *wrapperspb.BoolValue `protobuf:"bytes,16,opt,name=audioEncouragement,proto3" json:"audioEncouragement"` // could turn on the audio encouragement for client. + VideoMirroring *wrapperspb.BoolValue `protobuf:"bytes,17,opt,name=videoMirroring,proto3" json:"videoMirroring"` // could turn on the video mirroring for client. +} + +func (x *UpdateMeetingRequest) Reset() { + *x = UpdateMeetingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMeetingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMeetingRequest) ProtoMessage() {} + +func (x *UpdateMeetingRequest) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateMeetingRequest.ProtoReflect.Descriptor instead. +func (*UpdateMeetingRequest) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{29} +} + +func (x *UpdateMeetingRequest) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *UpdateMeetingRequest) GetUpdatingUserID() string { + if x != nil { + return x.UpdatingUserID + } + return "" +} + +func (x *UpdateMeetingRequest) GetTitle() *wrapperspb.StringValue { + if x != nil { + return x.Title + } + return nil +} + +func (x *UpdateMeetingRequest) GetScheduledTime() *wrapperspb.Int64Value { + if x != nil { + return x.ScheduledTime + } + return nil +} + +func (x *UpdateMeetingRequest) GetMeetingDuration() *wrapperspb.Int64Value { + if x != nil { + return x.MeetingDuration + } + return nil +} + +func (x *UpdateMeetingRequest) GetPassword() *wrapperspb.StringValue { + if x != nil { + return x.Password + } + return nil +} + +func (x *UpdateMeetingRequest) GetTimeZone() *wrapperspb.StringValue { + if x != nil { + return x.TimeZone + } + return nil +} + +func (x *UpdateMeetingRequest) GetRepeatInfo() *MeetingRepeatInfo { + if x != nil { + return x.RepeatInfo + } + return nil +} + +func (x *UpdateMeetingRequest) GetCanParticipantsEnableCamera() *wrapperspb.BoolValue { + if x != nil { + return x.CanParticipantsEnableCamera + } + return nil +} + +func (x *UpdateMeetingRequest) GetCanParticipantsUnmuteMicrophone() *wrapperspb.BoolValue { + if x != nil { + return x.CanParticipantsUnmuteMicrophone + } + return nil +} + +func (x *UpdateMeetingRequest) GetCanParticipantsShareScreen() *wrapperspb.BoolValue { + if x != nil { + return x.CanParticipantsShareScreen + } + return nil +} + +func (x *UpdateMeetingRequest) GetDisableCameraOnJoin() *wrapperspb.BoolValue { + if x != nil { + return x.DisableCameraOnJoin + } + return nil +} + +func (x *UpdateMeetingRequest) GetDisableMicrophoneOnJoin() *wrapperspb.BoolValue { + if x != nil { + return x.DisableMicrophoneOnJoin + } + return nil +} + +func (x *UpdateMeetingRequest) GetCanParticipantJoinMeetingEarly() *wrapperspb.BoolValue { + if x != nil { + return x.CanParticipantJoinMeetingEarly + } + return nil +} + +func (x *UpdateMeetingRequest) GetLockMeeting() *wrapperspb.BoolValue { + if x != nil { + return x.LockMeeting + } + return nil +} + +func (x *UpdateMeetingRequest) GetAudioEncouragement() *wrapperspb.BoolValue { + if x != nil { + return x.AudioEncouragement + } + return nil +} + +func (x *UpdateMeetingRequest) GetVideoMirroring() *wrapperspb.BoolValue { + if x != nil { + return x.VideoMirroring + } + return nil +} + +// Response after updating meeting settings. +type UpdateMeetingResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateMeetingResp) Reset() { + *x = UpdateMeetingResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMeetingResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMeetingResp) ProtoMessage() {} + +func (x *UpdateMeetingResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateMeetingResp.ProtoReflect.Descriptor instead. +func (*UpdateMeetingResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{30} +} + +// Personal meeting settings related to video and audio on entry. +type PersonalMeetingSetting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CameraOnEntry bool `protobuf:"varint,1,opt,name=cameraOnEntry,proto3" json:"cameraOnEntry"` // Whether the camera should be enabled by default when joining the meeting. + MicrophoneOnEntry bool `protobuf:"varint,2,opt,name=microphoneOnEntry,proto3" json:"microphoneOnEntry"` // Whether the microphone should be enabled by default when joining the meeting. +} + +func (x *PersonalMeetingSetting) Reset() { + *x = PersonalMeetingSetting{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalMeetingSetting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalMeetingSetting) ProtoMessage() {} + +func (x *PersonalMeetingSetting) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PersonalMeetingSetting.ProtoReflect.Descriptor instead. +func (*PersonalMeetingSetting) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{31} +} + +func (x *PersonalMeetingSetting) GetCameraOnEntry() bool { + if x != nil { + return x.CameraOnEntry + } + return false +} + +func (x *PersonalMeetingSetting) GetMicrophoneOnEntry() bool { + if x != nil { + return x.MicrophoneOnEntry + } + return false +} + +// Request to get personal meeting settings. +type GetPersonalMeetingSettingsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"` +} + +func (x *GetPersonalMeetingSettingsReq) Reset() { + *x = GetPersonalMeetingSettingsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPersonalMeetingSettingsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPersonalMeetingSettingsReq) ProtoMessage() {} + +func (x *GetPersonalMeetingSettingsReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPersonalMeetingSettingsReq.ProtoReflect.Descriptor instead. +func (*GetPersonalMeetingSettingsReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{32} +} + +func (x *GetPersonalMeetingSettingsReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *GetPersonalMeetingSettingsReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +// Response with personal meeting settings. +type GetPersonalMeetingSettingsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Setting *PersonalMeetingSetting `protobuf:"bytes,1,opt,name=setting,proto3" json:"setting"` +} + +func (x *GetPersonalMeetingSettingsResp) Reset() { + *x = GetPersonalMeetingSettingsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPersonalMeetingSettingsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPersonalMeetingSettingsResp) ProtoMessage() {} + +func (x *GetPersonalMeetingSettingsResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPersonalMeetingSettingsResp.ProtoReflect.Descriptor instead. +func (*GetPersonalMeetingSettingsResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{33} +} + +func (x *GetPersonalMeetingSettingsResp) GetSetting() *PersonalMeetingSetting { + if x != nil { + return x.Setting + } + return nil +} + +// Request to set personal meeting settings. +type SetPersonalMeetingSettingsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"` + CameraOnEntry *wrapperspb.BoolValue `protobuf:"bytes,3,opt,name=cameraOnEntry,proto3" json:"cameraOnEntry"` // Whether the camera should be enabled by default when joining the meeting. + MicrophoneOnEntry *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=microphoneOnEntry,proto3" json:"microphoneOnEntry"` // Whether the microphone should be enabled by default when joining the meeting. +} + +func (x *SetPersonalMeetingSettingsReq) Reset() { + *x = SetPersonalMeetingSettingsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetPersonalMeetingSettingsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetPersonalMeetingSettingsReq) ProtoMessage() {} + +func (x *SetPersonalMeetingSettingsReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetPersonalMeetingSettingsReq.ProtoReflect.Descriptor instead. +func (*SetPersonalMeetingSettingsReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{34} +} + +func (x *SetPersonalMeetingSettingsReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *SetPersonalMeetingSettingsReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *SetPersonalMeetingSettingsReq) GetCameraOnEntry() *wrapperspb.BoolValue { + if x != nil { + return x.CameraOnEntry + } + return nil +} + +func (x *SetPersonalMeetingSettingsReq) GetMicrophoneOnEntry() *wrapperspb.BoolValue { + if x != nil { + return x.MicrophoneOnEntry + } + return nil +} + +// Response after setting personal meeting settings. +type SetPersonalMeetingSettingsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetPersonalMeetingSettingsResp) Reset() { + *x = SetPersonalMeetingSettingsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetPersonalMeetingSettingsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetPersonalMeetingSettingsResp) ProtoMessage() {} + +func (x *SetPersonalMeetingSettingsResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetPersonalMeetingSettingsResp.ProtoReflect.Descriptor instead. +func (*SetPersonalMeetingSettingsResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{35} +} + +type PersonalData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` + PersonalSetting *PersonalMeetingSetting `protobuf:"bytes,2,opt,name=personalSetting,proto3" json:"personalSetting"` + // limitSetting is that host user limit this user's stream operation + LimitSetting *PersonalMeetingSetting `protobuf:"bytes,3,opt,name=limitSetting,proto3" json:"limitSetting"` +} + +func (x *PersonalData) Reset() { + *x = PersonalData{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalData) ProtoMessage() {} + +func (x *PersonalData) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PersonalData.ProtoReflect.Descriptor instead. +func (*PersonalData) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{36} +} + +func (x *PersonalData) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *PersonalData) GetPersonalSetting() *PersonalMeetingSetting { + if x != nil { + return x.PersonalSetting + } + return nil +} + +func (x *PersonalData) GetLimitSetting() *PersonalMeetingSetting { + if x != nil { + return x.LimitSetting + } + return nil +} + +// Metadata about a meeting, primarily used for encapsulating meeting details. +type MeetingMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Detail *MeetingInfoSetting `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail"` + PersonalData []*PersonalData `protobuf:"bytes,2,rep,name=personalData,proto3" json:"personalData"` +} + +func (x *MeetingMetadata) Reset() { + *x = MeetingMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MeetingMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MeetingMetadata) ProtoMessage() {} + +func (x *MeetingMetadata) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MeetingMetadata.ProtoReflect.Descriptor instead. +func (*MeetingMetadata) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{37} +} + +func (x *MeetingMetadata) GetDetail() *MeetingInfoSetting { + if x != nil { + return x.Detail + } + return nil +} + +func (x *MeetingMetadata) GetPersonalData() []*PersonalData { + if x != nil { + return x.PersonalData + } + return nil +} + +// operate room all stream related to video and audio on entry. +type OperateRoomAllStreamReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + OperatorUserID string `protobuf:"bytes,2,opt,name=operatorUserID,proto3" json:"operatorUserID"` + CameraOnEntry *wrapperspb.BoolValue `protobuf:"bytes,3,opt,name=cameraOnEntry,proto3" json:"cameraOnEntry"` // Whether the camera should be enabled by default when joining the meeting. + MicrophoneOnEntry *wrapperspb.BoolValue `protobuf:"bytes,4,opt,name=microphoneOnEntry,proto3" json:"microphoneOnEntry"` // Whether the microphone should be enabled by default when joining the meeting. +} + +func (x *OperateRoomAllStreamReq) Reset() { + *x = OperateRoomAllStreamReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperateRoomAllStreamReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperateRoomAllStreamReq) ProtoMessage() {} + +func (x *OperateRoomAllStreamReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OperateRoomAllStreamReq.ProtoReflect.Descriptor instead. +func (*OperateRoomAllStreamReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{38} +} + +func (x *OperateRoomAllStreamReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *OperateRoomAllStreamReq) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID + } + return "" +} + +func (x *OperateRoomAllStreamReq) GetCameraOnEntry() *wrapperspb.BoolValue { + if x != nil { + return x.CameraOnEntry + } + return nil +} + +func (x *OperateRoomAllStreamReq) GetMicrophoneOnEntry() *wrapperspb.BoolValue { + if x != nil { + return x.MicrophoneOnEntry + } + return nil +} + +// Response with operate room all stream. +type OperateRoomAllStreamResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StreamNotExistUserIDList []string `protobuf:"bytes,1,rep,name=streamNotExistUserIDList,proto3" json:"streamNotExistUserIDList"` + FailedUserIDList []string `protobuf:"bytes,2,rep,name=failedUserIDList,proto3" json:"failedUserIDList"` +} + +func (x *OperateRoomAllStreamResp) Reset() { + *x = OperateRoomAllStreamResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperateRoomAllStreamResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperateRoomAllStreamResp) ProtoMessage() {} + +func (x *OperateRoomAllStreamResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OperateRoomAllStreamResp.ProtoReflect.Descriptor instead. +func (*OperateRoomAllStreamResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{39} +} + +func (x *OperateRoomAllStreamResp) GetStreamNotExistUserIDList() []string { + if x != nil { + return x.StreamNotExistUserIDList + } + return nil +} + +func (x *OperateRoomAllStreamResp) GetFailedUserIDList() []string { + if x != nil { + return x.FailedUserIDList + } + return nil +} + +type RemoveMeetingParticipantsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"` + ParticipantUserIDs []string `protobuf:"bytes,3,rep,name=participantUserIDs,proto3" json:"participantUserIDs"` +} + +func (x *RemoveMeetingParticipantsReq) Reset() { + *x = RemoveMeetingParticipantsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveMeetingParticipantsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveMeetingParticipantsReq) ProtoMessage() {} + +func (x *RemoveMeetingParticipantsReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveMeetingParticipantsReq.ProtoReflect.Descriptor instead. +func (*RemoveMeetingParticipantsReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{40} +} + +func (x *RemoveMeetingParticipantsReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *RemoveMeetingParticipantsReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *RemoveMeetingParticipantsReq) GetParticipantUserIDs() []string { + if x != nil { + return x.ParticipantUserIDs + } + return nil +} + +type RemoveMeetingParticipantsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SuccessUserIDList []string `protobuf:"bytes,1,rep,name=successUserIDList,proto3" json:"successUserIDList"` + FailedUserIDList []string `protobuf:"bytes,2,rep,name=failedUserIDList,proto3" json:"failedUserIDList"` +} + +func (x *RemoveMeetingParticipantsResp) Reset() { + *x = RemoveMeetingParticipantsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveMeetingParticipantsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveMeetingParticipantsResp) ProtoMessage() {} + +func (x *RemoveMeetingParticipantsResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RemoveMeetingParticipantsResp.ProtoReflect.Descriptor instead. +func (*RemoveMeetingParticipantsResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{41} +} + +func (x *RemoveMeetingParticipantsResp) GetSuccessUserIDList() []string { + if x != nil { + return x.SuccessUserIDList + } + return nil +} + +func (x *RemoveMeetingParticipantsResp) GetFailedUserIDList() []string { + if x != nil { + return x.FailedUserIDList + } + return nil +} + +type SetMeetingHostInfoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeetingID string `protobuf:"bytes,1,opt,name=meetingID,proto3" json:"meetingID"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"` + HostUserID *wrapperspb.StringValue `protobuf:"bytes,3,opt,name=hostUserID,proto3" json:"hostUserID"` + CoHostUserIDs []string `protobuf:"bytes,4,rep,name=coHostUserIDs,proto3" json:"coHostUserIDs"` +} + +func (x *SetMeetingHostInfoReq) Reset() { + *x = SetMeetingHostInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMeetingHostInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMeetingHostInfoReq) ProtoMessage() {} + +func (x *SetMeetingHostInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMeetingHostInfoReq.ProtoReflect.Descriptor instead. +func (*SetMeetingHostInfoReq) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{42} +} + +func (x *SetMeetingHostInfoReq) GetMeetingID() string { + if x != nil { + return x.MeetingID + } + return "" +} + +func (x *SetMeetingHostInfoReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *SetMeetingHostInfoReq) GetHostUserID() *wrapperspb.StringValue { + if x != nil { + return x.HostUserID + } + return nil +} + +func (x *SetMeetingHostInfoReq) GetCoHostUserIDs() []string { + if x != nil { + return x.CoHostUserIDs + } + return nil +} + +type SetMeetingHostInfoResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetMeetingHostInfoResp) Reset() { + *x = SetMeetingHostInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMeetingHostInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMeetingHostInfoResp) ProtoMessage() {} + +func (x *SetMeetingHostInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMeetingHostInfoResp.ProtoReflect.Descriptor instead. +func (*SetMeetingHostInfoResp) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{43} +} + +type NotifyMeetingHostData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperatorUserID string `protobuf:"bytes,1,opt,name=operatorUserID,proto3" json:"operatorUserID"` + OperatorNickname string `protobuf:"bytes,2,opt,name=operatorNickname,proto3" json:"operatorNickname"` + UserID string `protobuf:"bytes,3,opt,name=userID,proto3" json:"userID"` + HostType string `protobuf:"bytes,4,opt,name=hostType,proto3" json:"hostType"` +} + +func (x *NotifyMeetingHostData) Reset() { + *x = NotifyMeetingHostData{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotifyMeetingHostData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyMeetingHostData) ProtoMessage() {} + +func (x *NotifyMeetingHostData) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_meeting_meeting_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NotifyMeetingHostData.ProtoReflect.Descriptor instead. +func (*NotifyMeetingHostData) Descriptor() ([]byte, []int) { + return file_openmeeting_meeting_meeting_proto_rawDescGZIP(), []int{44} +} + +func (x *NotifyMeetingHostData) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID + } + return "" +} + +func (x *NotifyMeetingHostData) GetOperatorNickname() string { + if x != nil { + return x.OperatorNickname + } + return "" +} + +func (x *NotifyMeetingHostData) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *NotifyMeetingHostData) GetHostType() string { + if x != nil { + return x.HostType + } + return "" +} + +var File_openmeeting_meeting_meeting_proto protoreflect.FileDescriptor + +var file_openmeeting_meeting_meeting_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x1a, 0x1b, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x70, 0x62, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x70, 0x62, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x31, 0x0a, 0x07, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xc0, 0x01, 0x0a, 0x1a, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x28, 0x0a, + 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x22, 0xfd, 0x01, 0x0a, 0x19, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, + 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, + 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x48, 0x6f, 0x73, + 0x74, 0x55, 0x53, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x63, + 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x55, 0x53, 0x65, 0x72, 0x49, 0x44, 0x22, 0xce, 0x01, 0x0a, 0x0b, + 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x0f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x85, 0x01, 0x0a, + 0x11, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x75, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x22, 0x8a, 0x04, 0x0a, 0x0e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x40, 0x0a, 0x1b, 0x63, 0x61, 0x6e, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x63, 0x61, + 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x12, 0x48, 0x0a, 0x1f, 0x63, 0x61, 0x6e, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x55, 0x6e, 0x6d, 0x75, + 0x74, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x1f, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x73, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x12, 0x3e, 0x0a, 0x1a, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x63, 0x72, + 0x65, 0x65, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0x4f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4f, + 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x38, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, + 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x12, + 0x46, 0x0a, 0x1e, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x61, 0x72, 0x6c, + 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1e, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x6f, + 0x63, 0x6b, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x75, 0x64, + 0x69, 0x6f, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x72, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x45, 0x6e, 0x63, 0x6f, + 0x75, 0x72, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x22, 0xd1, 0x01, 0x0a, 0x12, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3d, + 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x46, 0x0a, + 0x0a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x58, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x50, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x44, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7f, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x61, 0x6d, 0x65, 0x72, + 0x61, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x69, 0x63, 0x72, + 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0xab, 0x02, 0x0a, 0x0e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x6c, 0x0a, 0x19, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, + 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x19, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x65, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, + 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x46, 0x0a, 0x0a, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x52, 0x0a, 0x0f, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xee, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x6c, 0x0a, 0x19, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x19, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x4d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x07, 0x73, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x95, 0x01, 0x0a, 0x1a, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x69, 0x76, + 0x65, 0x4b, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x4b, 0x69, + 0x74, 0x22, 0x62, 0x0a, 0x0e, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x49, 0x0a, 0x0f, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, + 0x4b, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, + 0x22, 0x4a, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x6b, 0x0a, 0x13, + 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, + 0x44, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, + 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x22, 0x47, 0x0a, 0x0f, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, + 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, 0x45, 0x0a, 0x0d, 0x45, 0x6e, 0x64, 0x4d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x10, 0x0a, + 0x0e, 0x45, 0x6e, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x40, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0x62, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x0e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x45, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x22, 0x5f, 0x0a, 0x0e, + 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, + 0x0a, 0x0d, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, + 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xa5, 0x01, + 0x0a, 0x23, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xcc, 0x09, + 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x12, 0x41, 0x0a, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x12, 0x38, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x46, + 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x1b, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, + 0x61, 0x6d, 0x65, 0x72, 0x61, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0x12, 0x64, 0x0a, 0x1f, 0x63, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x4d, 0x69, 0x63, + 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x63, 0x61, 0x6e, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, + 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x5a, 0x0a, 0x1a, 0x63, 0x61, + 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x63, 0x61, 0x6e, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4f, 0x6e, + 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x54, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, + 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x62, 0x0a, 0x1e, 0x63, 0x61, + 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4a, 0x6f, 0x69, 0x6e, + 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1e, + 0x63, 0x61, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4a, 0x6f, + 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x12, 0x3c, + 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x4a, 0x0a, 0x12, + 0x61, 0x75, 0x64, 0x69, 0x6f, 0x45, 0x6e, 0x63, 0x6f, 0x75, 0x72, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, + 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x45, 0x6e, 0x63, 0x6f, 0x75, + 0x72, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x0e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x4d, 0x69, 0x72, 0x72, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x13, 0x0a, 0x11, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x6c, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x63, + 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d, 0x69, + 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, + 0x55, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x67, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, + 0xe1, 0x01, 0x0a, 0x1d, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x61, 0x6d, 0x65, 0x72, + 0x61, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x63, 0x61, 0x6d, 0x65, + 0x72, 0x61, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x11, 0x6d, 0x69, 0x63, + 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x11, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x22, 0x20, 0x0a, 0x1e, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x61, 0x6c, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0xce, 0x01, 0x0a, 0x0c, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x55, + 0x0a, 0x0f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x0c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0c, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x99, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x06, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x45, 0x0a, 0x0c, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x22, 0xeb, 0x01, 0x0a, 0x17, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1c, + 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4f, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x4f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x11, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x6d, + 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x22, 0x82, 0x01, 0x0a, 0x18, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, + 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, + 0x18, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x18, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x22, 0x79, 0x0a, 0x1d, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, + 0x11, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x66, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x69, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, + 0x48, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x53, + 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x68, + 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, + 0x6f, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x32, 0xf9, 0x0c, 0x0a, 0x0e, 0x4d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x58, 0x0a, 0x0b, 0x42, 0x6f, + 0x6f, 0x6b, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, + 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x24, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x79, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2e, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x2f, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x58, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x23, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x64, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x5b, 0x0a, 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4c, 0x65, 0x61, 0x76, + 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x0a, + 0x45, 0x6e, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x45, 0x6e, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x23, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x45, 0x6e, 0x64, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x12, 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x47, 0x65, + 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x1a, + 0x23, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x85, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x33, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x85, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, + 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x1a, 0x33, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x73, 0x0a, 0x14, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x12, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6f, 0x6d, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x2d, + 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, + 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x97, 0x01, + 0x0a, 0x20, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x38, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x39, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x69, 0x63, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7b, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x31, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x32, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x6d, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x2e, 0x6f, 0x70, 0x65, + 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x2b, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x65, 0x74, + 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, + 0x2f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_openmeeting_meeting_meeting_proto_rawDescOnce sync.Once + file_openmeeting_meeting_meeting_proto_rawDescData = file_openmeeting_meeting_meeting_proto_rawDesc +) + +func file_openmeeting_meeting_meeting_proto_rawDescGZIP() []byte { + file_openmeeting_meeting_meeting_proto_rawDescOnce.Do(func() { + file_openmeeting_meeting_meeting_proto_rawDescData = protoimpl.X.CompressGZIP(file_openmeeting_meeting_meeting_proto_rawDescData) + }) + return file_openmeeting_meeting_meeting_proto_rawDescData +} + +var file_openmeeting_meeting_meeting_proto_msgTypes = make([]protoimpl.MessageInfo, 45) +var file_openmeeting_meeting_meeting_proto_goTypes = []interface{}{ + (*LiveKit)(nil), // 0: openmeeting.meeting.LiveKit + (*SystemGeneratedMeetingInfo)(nil), // 1: openmeeting.meeting.SystemGeneratedMeetingInfo + (*CreatorDefinedMeetingInfo)(nil), // 2: openmeeting.meeting.CreatorDefinedMeetingInfo + (*MeetingInfo)(nil), // 3: openmeeting.meeting.MeetingInfo + (*MeetingRepeatInfo)(nil), // 4: openmeeting.meeting.MeetingRepeatInfo + (*MeetingSetting)(nil), // 5: openmeeting.meeting.MeetingSetting + (*MeetingInfoSetting)(nil), // 6: openmeeting.meeting.MeetingInfoSetting + (*UserInfo)(nil), // 7: openmeeting.meeting.UserInfo + (*ParticipantMetaData)(nil), // 8: openmeeting.meeting.ParticipantMetaData + (*StreamOperateData)(nil), // 9: openmeeting.meeting.StreamOperateData + (*UserOperationData)(nil), // 10: openmeeting.meeting.UserOperationData + (*BookMeetingReq)(nil), // 11: openmeeting.meeting.BookMeetingReq + (*BookMeetingResp)(nil), // 12: openmeeting.meeting.BookMeetingResp + (*CreateImmediateMeetingReq)(nil), // 13: openmeeting.meeting.CreateImmediateMeetingReq + (*CreateImmediateMeetingResp)(nil), // 14: openmeeting.meeting.CreateImmediateMeetingResp + (*JoinMeetingReq)(nil), // 15: openmeeting.meeting.JoinMeetingReq + (*JoinMeetingResp)(nil), // 16: openmeeting.meeting.JoinMeetingResp + (*GetMeetingTokenReq)(nil), // 17: openmeeting.meeting.GetMeetingTokenReq + (*GetMeetingTokenResp)(nil), // 18: openmeeting.meeting.GetMeetingTokenResp + (*LeaveMeetingReq)(nil), // 19: openmeeting.meeting.LeaveMeetingReq + (*LeaveMeetingResp)(nil), // 20: openmeeting.meeting.LeaveMeetingResp + (*EndMeetingReq)(nil), // 21: openmeeting.meeting.EndMeetingReq + (*EndMeetingResp)(nil), // 22: openmeeting.meeting.EndMeetingResp + (*GetMeetingsReq)(nil), // 23: openmeeting.meeting.GetMeetingsReq + (*GetMeetingsResp)(nil), // 24: openmeeting.meeting.GetMeetingsResp + (*GetMeetingReq)(nil), // 25: openmeeting.meeting.GetMeetingReq + (*GetMeetingResp)(nil), // 26: openmeeting.meeting.GetMeetingResp + (*ModifyMeetingParticipantNickNameReq)(nil), // 27: openmeeting.meeting.ModifyMeetingParticipantNickNameReq + (*ModifyMeetingParticipantNickNameResp)(nil), // 28: openmeeting.meeting.ModifyMeetingParticipantNickNameResp + (*UpdateMeetingRequest)(nil), // 29: openmeeting.meeting.UpdateMeetingRequest + (*UpdateMeetingResp)(nil), // 30: openmeeting.meeting.UpdateMeetingResp + (*PersonalMeetingSetting)(nil), // 31: openmeeting.meeting.PersonalMeetingSetting + (*GetPersonalMeetingSettingsReq)(nil), // 32: openmeeting.meeting.GetPersonalMeetingSettingsReq + (*GetPersonalMeetingSettingsResp)(nil), // 33: openmeeting.meeting.GetPersonalMeetingSettingsResp + (*SetPersonalMeetingSettingsReq)(nil), // 34: openmeeting.meeting.SetPersonalMeetingSettingsReq + (*SetPersonalMeetingSettingsResp)(nil), // 35: openmeeting.meeting.SetPersonalMeetingSettingsResp + (*PersonalData)(nil), // 36: openmeeting.meeting.PersonalData + (*MeetingMetadata)(nil), // 37: openmeeting.meeting.MeetingMetadata + (*OperateRoomAllStreamReq)(nil), // 38: openmeeting.meeting.OperateRoomAllStreamReq + (*OperateRoomAllStreamResp)(nil), // 39: openmeeting.meeting.OperateRoomAllStreamResp + (*RemoveMeetingParticipantsReq)(nil), // 40: openmeeting.meeting.RemoveMeetingParticipantsReq + (*RemoveMeetingParticipantsResp)(nil), // 41: openmeeting.meeting.RemoveMeetingParticipantsResp + (*SetMeetingHostInfoReq)(nil), // 42: openmeeting.meeting.SetMeetingHostInfoReq + (*SetMeetingHostInfoResp)(nil), // 43: openmeeting.meeting.SetMeetingHostInfoResp + (*NotifyMeetingHostData)(nil), // 44: openmeeting.meeting.NotifyMeetingHostData + (*wrapperspb.StringValue)(nil), // 45: openim.protobuf.StringValue + (*wrapperspb.Int64Value)(nil), // 46: openim.protobuf.Int64Value + (*wrapperspb.BoolValue)(nil), // 47: openim.protobuf.BoolValue +} +var file_openmeeting_meeting_meeting_proto_depIdxs = []int32{ + 1, // 0: openmeeting.meeting.MeetingInfo.systemGenerated:type_name -> openmeeting.meeting.SystemGeneratedMeetingInfo + 2, // 1: openmeeting.meeting.MeetingInfo.creatorDefinedMeeting:type_name -> openmeeting.meeting.CreatorDefinedMeetingInfo + 3, // 2: openmeeting.meeting.MeetingInfoSetting.info:type_name -> openmeeting.meeting.MeetingInfo + 5, // 3: openmeeting.meeting.MeetingInfoSetting.setting:type_name -> openmeeting.meeting.MeetingSetting + 4, // 4: openmeeting.meeting.MeetingInfoSetting.repeatInfo:type_name -> openmeeting.meeting.MeetingRepeatInfo + 7, // 5: openmeeting.meeting.ParticipantMetaData.userInfo:type_name -> openmeeting.meeting.UserInfo + 10, // 6: openmeeting.meeting.StreamOperateData.operation:type_name -> openmeeting.meeting.UserOperationData + 2, // 7: openmeeting.meeting.BookMeetingReq.creatorDefinedMeetingInfo:type_name -> openmeeting.meeting.CreatorDefinedMeetingInfo + 5, // 8: openmeeting.meeting.BookMeetingReq.setting:type_name -> openmeeting.meeting.MeetingSetting + 4, // 9: openmeeting.meeting.BookMeetingReq.repeatInfo:type_name -> openmeeting.meeting.MeetingRepeatInfo + 6, // 10: openmeeting.meeting.BookMeetingResp.detail:type_name -> openmeeting.meeting.MeetingInfoSetting + 2, // 11: openmeeting.meeting.CreateImmediateMeetingReq.creatorDefinedMeetingInfo:type_name -> openmeeting.meeting.CreatorDefinedMeetingInfo + 5, // 12: openmeeting.meeting.CreateImmediateMeetingReq.setting:type_name -> openmeeting.meeting.MeetingSetting + 6, // 13: openmeeting.meeting.CreateImmediateMeetingResp.detail:type_name -> openmeeting.meeting.MeetingInfoSetting + 0, // 14: openmeeting.meeting.CreateImmediateMeetingResp.liveKit:type_name -> openmeeting.meeting.LiveKit + 0, // 15: openmeeting.meeting.JoinMeetingResp.liveKit:type_name -> openmeeting.meeting.LiveKit + 0, // 16: openmeeting.meeting.GetMeetingTokenResp.liveKit:type_name -> openmeeting.meeting.LiveKit + 6, // 17: openmeeting.meeting.GetMeetingsResp.meetingDetails:type_name -> openmeeting.meeting.MeetingInfoSetting + 6, // 18: openmeeting.meeting.GetMeetingResp.meetingDetail:type_name -> openmeeting.meeting.MeetingInfoSetting + 45, // 19: openmeeting.meeting.UpdateMeetingRequest.title:type_name -> openim.protobuf.StringValue + 46, // 20: openmeeting.meeting.UpdateMeetingRequest.scheduledTime:type_name -> openim.protobuf.Int64Value + 46, // 21: openmeeting.meeting.UpdateMeetingRequest.meetingDuration:type_name -> openim.protobuf.Int64Value + 45, // 22: openmeeting.meeting.UpdateMeetingRequest.password:type_name -> openim.protobuf.StringValue + 45, // 23: openmeeting.meeting.UpdateMeetingRequest.timeZone:type_name -> openim.protobuf.StringValue + 4, // 24: openmeeting.meeting.UpdateMeetingRequest.repeatInfo:type_name -> openmeeting.meeting.MeetingRepeatInfo + 47, // 25: openmeeting.meeting.UpdateMeetingRequest.canParticipantsEnableCamera:type_name -> openim.protobuf.BoolValue + 47, // 26: openmeeting.meeting.UpdateMeetingRequest.canParticipantsUnmuteMicrophone:type_name -> openim.protobuf.BoolValue + 47, // 27: openmeeting.meeting.UpdateMeetingRequest.canParticipantsShareScreen:type_name -> openim.protobuf.BoolValue + 47, // 28: openmeeting.meeting.UpdateMeetingRequest.disableCameraOnJoin:type_name -> openim.protobuf.BoolValue + 47, // 29: openmeeting.meeting.UpdateMeetingRequest.disableMicrophoneOnJoin:type_name -> openim.protobuf.BoolValue + 47, // 30: openmeeting.meeting.UpdateMeetingRequest.canParticipantJoinMeetingEarly:type_name -> openim.protobuf.BoolValue + 47, // 31: openmeeting.meeting.UpdateMeetingRequest.lockMeeting:type_name -> openim.protobuf.BoolValue + 47, // 32: openmeeting.meeting.UpdateMeetingRequest.audioEncouragement:type_name -> openim.protobuf.BoolValue + 47, // 33: openmeeting.meeting.UpdateMeetingRequest.videoMirroring:type_name -> openim.protobuf.BoolValue + 31, // 34: openmeeting.meeting.GetPersonalMeetingSettingsResp.setting:type_name -> openmeeting.meeting.PersonalMeetingSetting + 47, // 35: openmeeting.meeting.SetPersonalMeetingSettingsReq.cameraOnEntry:type_name -> openim.protobuf.BoolValue + 47, // 36: openmeeting.meeting.SetPersonalMeetingSettingsReq.microphoneOnEntry:type_name -> openim.protobuf.BoolValue + 31, // 37: openmeeting.meeting.PersonalData.personalSetting:type_name -> openmeeting.meeting.PersonalMeetingSetting + 31, // 38: openmeeting.meeting.PersonalData.limitSetting:type_name -> openmeeting.meeting.PersonalMeetingSetting + 6, // 39: openmeeting.meeting.MeetingMetadata.detail:type_name -> openmeeting.meeting.MeetingInfoSetting + 36, // 40: openmeeting.meeting.MeetingMetadata.personalData:type_name -> openmeeting.meeting.PersonalData + 47, // 41: openmeeting.meeting.OperateRoomAllStreamReq.cameraOnEntry:type_name -> openim.protobuf.BoolValue + 47, // 42: openmeeting.meeting.OperateRoomAllStreamReq.microphoneOnEntry:type_name -> openim.protobuf.BoolValue + 45, // 43: openmeeting.meeting.SetMeetingHostInfoReq.hostUserID:type_name -> openim.protobuf.StringValue + 11, // 44: openmeeting.meeting.MeetingService.BookMeeting:input_type -> openmeeting.meeting.BookMeetingReq + 13, // 45: openmeeting.meeting.MeetingService.CreateImmediateMeeting:input_type -> openmeeting.meeting.CreateImmediateMeetingReq + 15, // 46: openmeeting.meeting.MeetingService.JoinMeeting:input_type -> openmeeting.meeting.JoinMeetingReq + 17, // 47: openmeeting.meeting.MeetingService.GetMeetingToken:input_type -> openmeeting.meeting.GetMeetingTokenReq + 19, // 48: openmeeting.meeting.MeetingService.LeaveMeeting:input_type -> openmeeting.meeting.LeaveMeetingReq + 21, // 49: openmeeting.meeting.MeetingService.EndMeeting:input_type -> openmeeting.meeting.EndMeetingReq + 23, // 50: openmeeting.meeting.MeetingService.GetMeetings:input_type -> openmeeting.meeting.GetMeetingsReq + 25, // 51: openmeeting.meeting.MeetingService.GetMeeting:input_type -> openmeeting.meeting.GetMeetingReq + 29, // 52: openmeeting.meeting.MeetingService.UpdateMeeting:input_type -> openmeeting.meeting.UpdateMeetingRequest + 32, // 53: openmeeting.meeting.MeetingService.GetPersonalMeetingSettings:input_type -> openmeeting.meeting.GetPersonalMeetingSettingsReq + 34, // 54: openmeeting.meeting.MeetingService.SetPersonalMeetingSettings:input_type -> openmeeting.meeting.SetPersonalMeetingSettingsReq + 38, // 55: openmeeting.meeting.MeetingService.OperateRoomAllStream:input_type -> openmeeting.meeting.OperateRoomAllStreamReq + 27, // 56: openmeeting.meeting.MeetingService.ModifyMeetingParticipantNickName:input_type -> openmeeting.meeting.ModifyMeetingParticipantNickNameReq + 40, // 57: openmeeting.meeting.MeetingService.RemoveParticipants:input_type -> openmeeting.meeting.RemoveMeetingParticipantsReq + 42, // 58: openmeeting.meeting.MeetingService.SetMeetingHostInfo:input_type -> openmeeting.meeting.SetMeetingHostInfoReq + 12, // 59: openmeeting.meeting.MeetingService.BookMeeting:output_type -> openmeeting.meeting.BookMeetingResp + 14, // 60: openmeeting.meeting.MeetingService.CreateImmediateMeeting:output_type -> openmeeting.meeting.CreateImmediateMeetingResp + 16, // 61: openmeeting.meeting.MeetingService.JoinMeeting:output_type -> openmeeting.meeting.JoinMeetingResp + 18, // 62: openmeeting.meeting.MeetingService.GetMeetingToken:output_type -> openmeeting.meeting.GetMeetingTokenResp + 20, // 63: openmeeting.meeting.MeetingService.LeaveMeeting:output_type -> openmeeting.meeting.LeaveMeetingResp + 22, // 64: openmeeting.meeting.MeetingService.EndMeeting:output_type -> openmeeting.meeting.EndMeetingResp + 24, // 65: openmeeting.meeting.MeetingService.GetMeetings:output_type -> openmeeting.meeting.GetMeetingsResp + 26, // 66: openmeeting.meeting.MeetingService.GetMeeting:output_type -> openmeeting.meeting.GetMeetingResp + 30, // 67: openmeeting.meeting.MeetingService.UpdateMeeting:output_type -> openmeeting.meeting.UpdateMeetingResp + 33, // 68: openmeeting.meeting.MeetingService.GetPersonalMeetingSettings:output_type -> openmeeting.meeting.GetPersonalMeetingSettingsResp + 35, // 69: openmeeting.meeting.MeetingService.SetPersonalMeetingSettings:output_type -> openmeeting.meeting.SetPersonalMeetingSettingsResp + 39, // 70: openmeeting.meeting.MeetingService.OperateRoomAllStream:output_type -> openmeeting.meeting.OperateRoomAllStreamResp + 28, // 71: openmeeting.meeting.MeetingService.ModifyMeetingParticipantNickName:output_type -> openmeeting.meeting.ModifyMeetingParticipantNickNameResp + 41, // 72: openmeeting.meeting.MeetingService.RemoveParticipants:output_type -> openmeeting.meeting.RemoveMeetingParticipantsResp + 43, // 73: openmeeting.meeting.MeetingService.SetMeetingHostInfo:output_type -> openmeeting.meeting.SetMeetingHostInfoResp + 59, // [59:74] is the sub-list for method output_type + 44, // [44:59] is the sub-list for method input_type + 44, // [44:44] is the sub-list for extension type_name + 44, // [44:44] is the sub-list for extension extendee + 0, // [0:44] is the sub-list for field type_name +} + +func init() { file_openmeeting_meeting_meeting_proto_init() } +func file_openmeeting_meeting_meeting_proto_init() { + if File_openmeeting_meeting_meeting_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_openmeeting_meeting_meeting_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LiveKit); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SystemGeneratedMeetingInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreatorDefinedMeetingInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MeetingInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MeetingRepeatInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MeetingSetting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MeetingInfoSetting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParticipantMetaData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamOperateData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserOperationData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BookMeetingReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BookMeetingResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateImmediateMeetingReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateImmediateMeetingResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinMeetingReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinMeetingResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMeetingTokenReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMeetingTokenResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveMeetingReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveMeetingResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EndMeetingReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EndMeetingResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMeetingsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMeetingsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMeetingReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMeetingResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModifyMeetingParticipantNickNameReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ModifyMeetingParticipantNickNameResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMeetingRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMeetingResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalMeetingSetting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPersonalMeetingSettingsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPersonalMeetingSettingsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetPersonalMeetingSettingsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetPersonalMeetingSettingsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MeetingMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperateRoomAllStreamReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperateRoomAllStreamResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveMeetingParticipantsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveMeetingParticipantsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMeetingHostInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMeetingHostInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_meeting_meeting_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotifyMeetingHostData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_openmeeting_meeting_meeting_proto_rawDesc, + NumEnums: 0, + NumMessages: 45, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_openmeeting_meeting_meeting_proto_goTypes, + DependencyIndexes: file_openmeeting_meeting_meeting_proto_depIdxs, + MessageInfos: file_openmeeting_meeting_meeting_proto_msgTypes, + }.Build() + File_openmeeting_meeting_meeting_proto = out.File + file_openmeeting_meeting_meeting_proto_rawDesc = nil + file_openmeeting_meeting_meeting_proto_goTypes = nil + file_openmeeting_meeting_meeting_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// MeetingServiceClient is the client API for MeetingService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type MeetingServiceClient interface { + // Books a future meeting. + BookMeeting(ctx context.Context, in *BookMeetingReq, opts ...grpc.CallOption) (*BookMeetingResp, error) + // Creates an immediate meeting. + CreateImmediateMeeting(ctx context.Context, in *CreateImmediateMeetingReq, opts ...grpc.CallOption) (*CreateImmediateMeetingResp, error) + // Joins a meeting. + JoinMeeting(ctx context.Context, in *JoinMeetingReq, opts ...grpc.CallOption) (*JoinMeetingResp, error) + // get a specific meeting token + GetMeetingToken(ctx context.Context, in *GetMeetingTokenReq, opts ...grpc.CallOption) (*GetMeetingTokenResp, error) + // Leaves a meeting. + LeaveMeeting(ctx context.Context, in *LeaveMeetingReq, opts ...grpc.CallOption) (*LeaveMeetingResp, error) + // Ends a meeting. + EndMeeting(ctx context.Context, in *EndMeetingReq, opts ...grpc.CallOption) (*EndMeetingResp, error) + // Retrieves a list of meetings that the user has created or joined, filtered by status. + GetMeetings(ctx context.Context, in *GetMeetingsReq, opts ...grpc.CallOption) (*GetMeetingsResp, error) + // Gets detailed information about a specific meeting. + GetMeeting(ctx context.Context, in *GetMeetingReq, opts ...grpc.CallOption) (*GetMeetingResp, error) + // Updates specific fields of a meeting. + UpdateMeeting(ctx context.Context, in *UpdateMeetingRequest, opts ...grpc.CallOption) (*UpdateMeetingResp, error) + // Gets personal meeting settings. + GetPersonalMeetingSettings(ctx context.Context, in *GetPersonalMeetingSettingsReq, opts ...grpc.CallOption) (*GetPersonalMeetingSettingsResp, error) + // Sets personal meeting settings. + SetPersonalMeetingSettings(ctx context.Context, in *SetPersonalMeetingSettingsReq, opts ...grpc.CallOption) (*SetPersonalMeetingSettingsResp, error) + // operate room all stream. + OperateRoomAllStream(ctx context.Context, in *OperateRoomAllStreamReq, opts ...grpc.CallOption) (*OperateRoomAllStreamResp, error) + // modify meeting participant nickname + ModifyMeetingParticipantNickName(ctx context.Context, in *ModifyMeetingParticipantNickNameReq, opts ...grpc.CallOption) (*ModifyMeetingParticipantNickNameResp, error) + // batch remove participant out of the meeting room + RemoveParticipants(ctx context.Context, in *RemoveMeetingParticipantsReq, opts ...grpc.CallOption) (*RemoveMeetingParticipantsResp, error) + // modify host or co host of the meeting room + SetMeetingHostInfo(ctx context.Context, in *SetMeetingHostInfoReq, opts ...grpc.CallOption) (*SetMeetingHostInfoResp, error) +} + +type meetingServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewMeetingServiceClient(cc grpc.ClientConnInterface) MeetingServiceClient { + return &meetingServiceClient{cc} +} + +func (c *meetingServiceClient) BookMeeting(ctx context.Context, in *BookMeetingReq, opts ...grpc.CallOption) (*BookMeetingResp, error) { + out := new(BookMeetingResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/BookMeeting", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) CreateImmediateMeeting(ctx context.Context, in *CreateImmediateMeetingReq, opts ...grpc.CallOption) (*CreateImmediateMeetingResp, error) { + out := new(CreateImmediateMeetingResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/CreateImmediateMeeting", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) JoinMeeting(ctx context.Context, in *JoinMeetingReq, opts ...grpc.CallOption) (*JoinMeetingResp, error) { + out := new(JoinMeetingResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/JoinMeeting", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) GetMeetingToken(ctx context.Context, in *GetMeetingTokenReq, opts ...grpc.CallOption) (*GetMeetingTokenResp, error) { + out := new(GetMeetingTokenResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/GetMeetingToken", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) LeaveMeeting(ctx context.Context, in *LeaveMeetingReq, opts ...grpc.CallOption) (*LeaveMeetingResp, error) { + out := new(LeaveMeetingResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/LeaveMeeting", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) EndMeeting(ctx context.Context, in *EndMeetingReq, opts ...grpc.CallOption) (*EndMeetingResp, error) { + out := new(EndMeetingResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/EndMeeting", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) GetMeetings(ctx context.Context, in *GetMeetingsReq, opts ...grpc.CallOption) (*GetMeetingsResp, error) { + out := new(GetMeetingsResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/GetMeetings", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) GetMeeting(ctx context.Context, in *GetMeetingReq, opts ...grpc.CallOption) (*GetMeetingResp, error) { + out := new(GetMeetingResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/GetMeeting", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) UpdateMeeting(ctx context.Context, in *UpdateMeetingRequest, opts ...grpc.CallOption) (*UpdateMeetingResp, error) { + out := new(UpdateMeetingResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/UpdateMeeting", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) GetPersonalMeetingSettings(ctx context.Context, in *GetPersonalMeetingSettingsReq, opts ...grpc.CallOption) (*GetPersonalMeetingSettingsResp, error) { + out := new(GetPersonalMeetingSettingsResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/GetPersonalMeetingSettings", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) SetPersonalMeetingSettings(ctx context.Context, in *SetPersonalMeetingSettingsReq, opts ...grpc.CallOption) (*SetPersonalMeetingSettingsResp, error) { + out := new(SetPersonalMeetingSettingsResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/SetPersonalMeetingSettings", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) OperateRoomAllStream(ctx context.Context, in *OperateRoomAllStreamReq, opts ...grpc.CallOption) (*OperateRoomAllStreamResp, error) { + out := new(OperateRoomAllStreamResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/OperateRoomAllStream", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) ModifyMeetingParticipantNickName(ctx context.Context, in *ModifyMeetingParticipantNickNameReq, opts ...grpc.CallOption) (*ModifyMeetingParticipantNickNameResp, error) { + out := new(ModifyMeetingParticipantNickNameResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/ModifyMeetingParticipantNickName", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) RemoveParticipants(ctx context.Context, in *RemoveMeetingParticipantsReq, opts ...grpc.CallOption) (*RemoveMeetingParticipantsResp, error) { + out := new(RemoveMeetingParticipantsResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/RemoveParticipants", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *meetingServiceClient) SetMeetingHostInfo(ctx context.Context, in *SetMeetingHostInfoReq, opts ...grpc.CallOption) (*SetMeetingHostInfoResp, error) { + out := new(SetMeetingHostInfoResp) + err := c.cc.Invoke(ctx, "/openmeeting.meeting.MeetingService/SetMeetingHostInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MeetingServiceServer is the server API for MeetingService service. +type MeetingServiceServer interface { + // Books a future meeting. + BookMeeting(context.Context, *BookMeetingReq) (*BookMeetingResp, error) + // Creates an immediate meeting. + CreateImmediateMeeting(context.Context, *CreateImmediateMeetingReq) (*CreateImmediateMeetingResp, error) + // Joins a meeting. + JoinMeeting(context.Context, *JoinMeetingReq) (*JoinMeetingResp, error) + // get a specific meeting token + GetMeetingToken(context.Context, *GetMeetingTokenReq) (*GetMeetingTokenResp, error) + // Leaves a meeting. + LeaveMeeting(context.Context, *LeaveMeetingReq) (*LeaveMeetingResp, error) + // Ends a meeting. + EndMeeting(context.Context, *EndMeetingReq) (*EndMeetingResp, error) + // Retrieves a list of meetings that the user has created or joined, filtered by status. + GetMeetings(context.Context, *GetMeetingsReq) (*GetMeetingsResp, error) + // Gets detailed information about a specific meeting. + GetMeeting(context.Context, *GetMeetingReq) (*GetMeetingResp, error) + // Updates specific fields of a meeting. + UpdateMeeting(context.Context, *UpdateMeetingRequest) (*UpdateMeetingResp, error) + // Gets personal meeting settings. + GetPersonalMeetingSettings(context.Context, *GetPersonalMeetingSettingsReq) (*GetPersonalMeetingSettingsResp, error) + // Sets personal meeting settings. + SetPersonalMeetingSettings(context.Context, *SetPersonalMeetingSettingsReq) (*SetPersonalMeetingSettingsResp, error) + // operate room all stream. + OperateRoomAllStream(context.Context, *OperateRoomAllStreamReq) (*OperateRoomAllStreamResp, error) + // modify meeting participant nickname + ModifyMeetingParticipantNickName(context.Context, *ModifyMeetingParticipantNickNameReq) (*ModifyMeetingParticipantNickNameResp, error) + // batch remove participant out of the meeting room + RemoveParticipants(context.Context, *RemoveMeetingParticipantsReq) (*RemoveMeetingParticipantsResp, error) + // modify host or co host of the meeting room + SetMeetingHostInfo(context.Context, *SetMeetingHostInfoReq) (*SetMeetingHostInfoResp, error) +} + +// UnimplementedMeetingServiceServer can be embedded to have forward compatible implementations. +type UnimplementedMeetingServiceServer struct { +} + +func (*UnimplementedMeetingServiceServer) BookMeeting(context.Context, *BookMeetingReq) (*BookMeetingResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method BookMeeting not implemented") +} +func (*UnimplementedMeetingServiceServer) CreateImmediateMeeting(context.Context, *CreateImmediateMeetingReq) (*CreateImmediateMeetingResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateImmediateMeeting not implemented") +} +func (*UnimplementedMeetingServiceServer) JoinMeeting(context.Context, *JoinMeetingReq) (*JoinMeetingResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method JoinMeeting not implemented") +} +func (*UnimplementedMeetingServiceServer) GetMeetingToken(context.Context, *GetMeetingTokenReq) (*GetMeetingTokenResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMeetingToken not implemented") +} +func (*UnimplementedMeetingServiceServer) LeaveMeeting(context.Context, *LeaveMeetingReq) (*LeaveMeetingResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method LeaveMeeting not implemented") +} +func (*UnimplementedMeetingServiceServer) EndMeeting(context.Context, *EndMeetingReq) (*EndMeetingResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method EndMeeting not implemented") +} +func (*UnimplementedMeetingServiceServer) GetMeetings(context.Context, *GetMeetingsReq) (*GetMeetingsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMeetings not implemented") +} +func (*UnimplementedMeetingServiceServer) GetMeeting(context.Context, *GetMeetingReq) (*GetMeetingResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMeeting not implemented") +} +func (*UnimplementedMeetingServiceServer) UpdateMeeting(context.Context, *UpdateMeetingRequest) (*UpdateMeetingResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateMeeting not implemented") +} +func (*UnimplementedMeetingServiceServer) GetPersonalMeetingSettings(context.Context, *GetPersonalMeetingSettingsReq) (*GetPersonalMeetingSettingsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPersonalMeetingSettings not implemented") +} +func (*UnimplementedMeetingServiceServer) SetPersonalMeetingSettings(context.Context, *SetPersonalMeetingSettingsReq) (*SetPersonalMeetingSettingsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetPersonalMeetingSettings not implemented") +} +func (*UnimplementedMeetingServiceServer) OperateRoomAllStream(context.Context, *OperateRoomAllStreamReq) (*OperateRoomAllStreamResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method OperateRoomAllStream not implemented") +} +func (*UnimplementedMeetingServiceServer) ModifyMeetingParticipantNickName(context.Context, *ModifyMeetingParticipantNickNameReq) (*ModifyMeetingParticipantNickNameResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ModifyMeetingParticipantNickName not implemented") +} +func (*UnimplementedMeetingServiceServer) RemoveParticipants(context.Context, *RemoveMeetingParticipantsReq) (*RemoveMeetingParticipantsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveParticipants not implemented") +} +func (*UnimplementedMeetingServiceServer) SetMeetingHostInfo(context.Context, *SetMeetingHostInfoReq) (*SetMeetingHostInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetMeetingHostInfo not implemented") +} + +func RegisterMeetingServiceServer(s *grpc.Server, srv MeetingServiceServer) { + s.RegisterService(&_MeetingService_serviceDesc, srv) +} + +func _MeetingService_BookMeeting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BookMeetingReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).BookMeeting(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/BookMeeting", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).BookMeeting(ctx, req.(*BookMeetingReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_CreateImmediateMeeting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateImmediateMeetingReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).CreateImmediateMeeting(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/CreateImmediateMeeting", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).CreateImmediateMeeting(ctx, req.(*CreateImmediateMeetingReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_JoinMeeting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(JoinMeetingReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).JoinMeeting(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/JoinMeeting", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).JoinMeeting(ctx, req.(*JoinMeetingReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_GetMeetingToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMeetingTokenReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).GetMeetingToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/GetMeetingToken", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).GetMeetingToken(ctx, req.(*GetMeetingTokenReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_LeaveMeeting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LeaveMeetingReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).LeaveMeeting(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/LeaveMeeting", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).LeaveMeeting(ctx, req.(*LeaveMeetingReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_EndMeeting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EndMeetingReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).EndMeeting(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/EndMeeting", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).EndMeeting(ctx, req.(*EndMeetingReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_GetMeetings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMeetingsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).GetMeetings(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/GetMeetings", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).GetMeetings(ctx, req.(*GetMeetingsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_GetMeeting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMeetingReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).GetMeeting(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/GetMeeting", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).GetMeeting(ctx, req.(*GetMeetingReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_UpdateMeeting_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateMeetingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).UpdateMeeting(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/UpdateMeeting", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).UpdateMeeting(ctx, req.(*UpdateMeetingRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_GetPersonalMeetingSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPersonalMeetingSettingsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).GetPersonalMeetingSettings(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/GetPersonalMeetingSettings", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).GetPersonalMeetingSettings(ctx, req.(*GetPersonalMeetingSettingsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_SetPersonalMeetingSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetPersonalMeetingSettingsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).SetPersonalMeetingSettings(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/SetPersonalMeetingSettings", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).SetPersonalMeetingSettings(ctx, req.(*SetPersonalMeetingSettingsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_OperateRoomAllStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OperateRoomAllStreamReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).OperateRoomAllStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/OperateRoomAllStream", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).OperateRoomAllStream(ctx, req.(*OperateRoomAllStreamReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_ModifyMeetingParticipantNickName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ModifyMeetingParticipantNickNameReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).ModifyMeetingParticipantNickName(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/ModifyMeetingParticipantNickName", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).ModifyMeetingParticipantNickName(ctx, req.(*ModifyMeetingParticipantNickNameReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_RemoveParticipants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveMeetingParticipantsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).RemoveParticipants(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/RemoveParticipants", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).RemoveParticipants(ctx, req.(*RemoveMeetingParticipantsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _MeetingService_SetMeetingHostInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetMeetingHostInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MeetingServiceServer).SetMeetingHostInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.meeting.MeetingService/SetMeetingHostInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MeetingServiceServer).SetMeetingHostInfo(ctx, req.(*SetMeetingHostInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _MeetingService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "openmeeting.meeting.MeetingService", + HandlerType: (*MeetingServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "BookMeeting", + Handler: _MeetingService_BookMeeting_Handler, + }, + { + MethodName: "CreateImmediateMeeting", + Handler: _MeetingService_CreateImmediateMeeting_Handler, + }, + { + MethodName: "JoinMeeting", + Handler: _MeetingService_JoinMeeting_Handler, + }, + { + MethodName: "GetMeetingToken", + Handler: _MeetingService_GetMeetingToken_Handler, + }, + { + MethodName: "LeaveMeeting", + Handler: _MeetingService_LeaveMeeting_Handler, + }, + { + MethodName: "EndMeeting", + Handler: _MeetingService_EndMeeting_Handler, + }, + { + MethodName: "GetMeetings", + Handler: _MeetingService_GetMeetings_Handler, + }, + { + MethodName: "GetMeeting", + Handler: _MeetingService_GetMeeting_Handler, + }, + { + MethodName: "UpdateMeeting", + Handler: _MeetingService_UpdateMeeting_Handler, + }, + { + MethodName: "GetPersonalMeetingSettings", + Handler: _MeetingService_GetPersonalMeetingSettings_Handler, + }, + { + MethodName: "SetPersonalMeetingSettings", + Handler: _MeetingService_SetPersonalMeetingSettings_Handler, + }, + { + MethodName: "OperateRoomAllStream", + Handler: _MeetingService_OperateRoomAllStream_Handler, + }, + { + MethodName: "ModifyMeetingParticipantNickName", + Handler: _MeetingService_ModifyMeetingParticipantNickName_Handler, + }, + { + MethodName: "RemoveParticipants", + Handler: _MeetingService_RemoveParticipants_Handler, + }, + { + MethodName: "SetMeetingHostInfo", + Handler: _MeetingService_SetMeetingHostInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "openmeeting/meeting/meeting.proto", +} diff --git a/openmeeting/meeting/meeting.proto b/openmeeting/meeting/meeting.proto new file mode 100644 index 00000000..179deaae --- /dev/null +++ b/openmeeting/meeting/meeting.proto @@ -0,0 +1,338 @@ +syntax = "proto3"; + +import "wrapperspb/wrapperspb.proto"; +package openmeeting.meeting; + +option go_package = "github.com/openimsdk/protocol/openmeeting/meeting"; + + +// Defines LiveKit access information. +message LiveKit { + string token = 1; // Access token for authentication. + string url = 2; // URL to connect to LiveKit. +} + +// Information about a specific meeting that cannot be changed once set. +message SystemGeneratedMeetingInfo { + string creatorUserID = 1; // The user ID of the meeting creator. + string creatorNickname = 2; // The user name of the meeting creator. + string status = 3; // The current status of the meeting, e.g., scheduled, in-progress, completed. + int64 startTime = 4; // The actual start time of the meeting (as a timestamp). + string meetingID = 5; // Unique identifier for the meeting. +} + +// Information about a specific meeting that can be modified. +message CreatorDefinedMeetingInfo { + string title = 1; // The title of the meeting. + int64 scheduledTime = 2; // The scheduled start time of the meeting (as a timestamp). + int64 meetingDuration = 3; // The duration of the meeting in seconds. + string password = 4; // Password required to join the meeting, if any. + string timeZone = 5; // creator specify time zone. + string hostUserID = 6; + repeated string coHostUSerID = 7; +} + +// Information about a specific meeting, combining system-generated and creator-defined information. +message MeetingInfo { + SystemGeneratedMeetingInfo systemGenerated = 1; + CreatorDefinedMeetingInfo creatorDefinedMeeting = 2; +} + +message MeetingRepeatInfo { + string endDate = 1; + string repeatType = 2; + string uintType = 3; + int32 interval = 4; +} + +// Settings controlling meeting features such as video, audio, and screen sharing permissions. +message MeetingSetting { + bool canParticipantsEnableCamera = 1; // Whether participants can enable their video camera. + bool canParticipantsUnmuteMicrophone = 2; // Whether participants can unmute their microphone. + bool canParticipantsShareScreen = 3; // Whether participants can share their screen. + bool disableCameraOnJoin = 4; // Whether the camera is disabled by default when joining. + bool disableMicrophoneOnJoin = 5; // Whether the microphone is disabled by default when joining. + bool canParticipantJoinMeetingEarly = 6; // Allow participants to join the meeting early. + bool lockMeeting = 7; // if the meeting is locked, new comer could not join the meeting. + bool audioEncouragement = 8; // could turn on the audio encouragement for client. + bool videoMirroring = 9; // could turn on the video mirroring for client. +} + +// Detailed information about a meeting, combining info and settings. +message MeetingInfoSetting { + MeetingInfo info = 1; + MeetingSetting setting = 2; + MeetingRepeatInfo repeatInfo = 3; +} + +message UserInfo { + string userID = 1; + string nickname = 2; + string account = 3; +} + +// participant meta data +message ParticipantMetaData { + UserInfo userInfo = 1; +} + +message StreamOperateData { + string operatorUserID = 1; + repeated UserOperationData operation = 2; +} + +message UserOperationData { + string userID = 1; + // pbwrapper.BoolValue cameraOnEntry = 2; + // pbwrapper.BoolValue microphoneOnEntry = 3; + bool cameraOnEntry = 2; + bool microphoneOnEntry = 3; +} + + +// Request to book a future meeting. +message BookMeetingReq { + string creatorUserID = 1; + CreatorDefinedMeetingInfo creatorDefinedMeetingInfo = 2; + MeetingSetting setting = 3; + MeetingRepeatInfo repeatInfo = 4; +} + +// Response after booking a meeting. +message BookMeetingResp { + MeetingInfoSetting detail = 1; +} + +// Request to create an immediate meeting. +message CreateImmediateMeetingReq { + string creatorUserID = 1; + CreatorDefinedMeetingInfo creatorDefinedMeetingInfo = 2; + MeetingSetting setting = 3; +} + +// Response after creating an immediate meeting. +message CreateImmediateMeetingResp { + MeetingInfoSetting detail = 1; + LiveKit liveKit = 2; +} + +// Request to join a meeting. +message JoinMeetingReq { + string meetingID = 1; + string userID = 2; // User who joins the meeting. + string password = 3; +} + +// Response after joining a meeting. +message JoinMeetingResp { + LiveKit liveKit = 1; +} + +// Request to get a specific meeting token. +message GetMeetingTokenReq { + string meetingID = 1; + string userID = 2; // User who joins the meeting. +} + +// Response after getting a specific meeting. +message GetMeetingTokenResp { + string meetingID = 1; + LiveKit liveKit = 2; +} + +// Request to leave a meeting. +message LeaveMeetingReq { + string meetingID = 1; + string userID = 2; // User who leaves the room. +} + +// Response after leaving a meeting. +message LeaveMeetingResp { +} + +// Request to end a meeting. +message EndMeetingReq { + string meetingID = 1; + string userID = 2; +} + +// Response after ending a meeting. +message EndMeetingResp { +} + +// Request to get a list of meetings both created and joined by a user. +message GetMeetingsReq { + string userID = 1; // The unique identifier of the user. + repeated string status = 2; // The status filter for meetings, e.g., "scheduled", "in-progress", "completed". +} + +// Response with a list of meetings that the user has created or joined. +message GetMeetingsResp { + repeated MeetingInfoSetting meetingDetails = 1; // Detailed information about each meeting. +} + +// Request to get information about a specific meeting. +message GetMeetingReq { + string userID = 1; + string meetingID = 2; +} + +// Response with detailed information about a meeting. +message GetMeetingResp { + MeetingInfoSetting meetingDetail = 1; +} + +message ModifyMeetingParticipantNickNameReq { + string meetingID = 1; + string userID = 2; + string participantUserID = 3; + string nickname = 4; +} + +message ModifyMeetingParticipantNickNameResp { + +} + +// Request to update specific fields of a meeting. +message UpdateMeetingRequest { + string meetingID = 1; + string updatingUserID = 2; + openim.protobuf.StringValue title = 3; + openim.protobuf.Int64Value scheduledTime = 4; + openim.protobuf.Int64Value meetingDuration = 5; + openim.protobuf.StringValue password = 6; + openim.protobuf.StringValue timeZone = 7; + MeetingRepeatInfo repeatInfo = 8; + openim.protobuf.BoolValue canParticipantsEnableCamera = 9; + openim.protobuf.BoolValue canParticipantsUnmuteMicrophone = 10; + openim.protobuf.BoolValue canParticipantsShareScreen = 11; + openim.protobuf.BoolValue disableCameraOnJoin = 12; + openim.protobuf.BoolValue disableMicrophoneOnJoin = 13; + openim.protobuf.BoolValue canParticipantJoinMeetingEarly = 14; // Allow participants to join the meeting early. + openim.protobuf.BoolValue lockMeeting = 15; // if the meeting is locked, new comer could not join the meeting. + openim.protobuf.BoolValue audioEncouragement = 16; // could turn on the audio encouragement for client. + openim.protobuf.BoolValue videoMirroring = 17; // could turn on the video mirroring for client. +} + +// Response after updating meeting settings. +message UpdateMeetingResp { +} + +// Personal meeting settings related to video and audio on entry. +message PersonalMeetingSetting { + bool cameraOnEntry = 1; // Whether the camera should be enabled by default when joining the meeting. + bool microphoneOnEntry = 2; // Whether the microphone should be enabled by default when joining the meeting. +} + +// Request to get personal meeting settings. +message GetPersonalMeetingSettingsReq { + string meetingID = 1; + string userID = 2; +} + +// Response with personal meeting settings. +message GetPersonalMeetingSettingsResp { + PersonalMeetingSetting setting = 1; +} + +// Request to set personal meeting settings. +message SetPersonalMeetingSettingsReq { + string meetingID = 1; + string userID = 2; + openim.protobuf.BoolValue cameraOnEntry = 3; // Whether the camera should be enabled by default when joining the meeting. + openim.protobuf.BoolValue microphoneOnEntry = 4; // Whether the microphone should be enabled by default when joining the meeting. +} + +// Response after setting personal meeting settings. +message SetPersonalMeetingSettingsResp { +} + +message PersonalData { + string userID = 1; + PersonalMeetingSetting personalSetting = 2; + // limitSetting is that host user limit this user's stream operation + PersonalMeetingSetting limitSetting = 3; +} + +// Metadata about a meeting, primarily used for encapsulating meeting details. +message MeetingMetadata { + MeetingInfoSetting detail = 1; + repeated PersonalData personalData = 2; +} + +// operate room all stream related to video and audio on entry. +message OperateRoomAllStreamReq { + string meetingID = 1; + string operatorUserID = 2; + openim.protobuf.BoolValue cameraOnEntry = 3; // Whether the camera should be enabled by default when joining the meeting. + openim.protobuf.BoolValue microphoneOnEntry = 4; // Whether the microphone should be enabled by default when joining the meeting. +} + +// Response with operate room all stream. +message OperateRoomAllStreamResp { + repeated string streamNotExistUserIDList = 1; + repeated string failedUserIDList = 2; +} + +message RemoveMeetingParticipantsReq { + string meetingID = 1; + string userID = 2; + repeated string participantUserIDs = 3; +} + +message RemoveMeetingParticipantsResp { + repeated string successUserIDList = 1; + repeated string failedUserIDList = 2; +} + +message SetMeetingHostInfoReq { + string meetingID = 1; + string userID = 2; + openim.protobuf.StringValue hostUserID = 3; + repeated string coHostUserIDs = 4; +} + +message SetMeetingHostInfoResp { + +} + +message NotifyMeetingHostData { + string operatorUserID = 1; + string operatorNickname = 2; + string userID = 3; + string hostType = 4; +} + +// Defines services related to meeting management. +service MeetingService { + // Books a future meeting. + rpc BookMeeting(BookMeetingReq) returns (BookMeetingResp); + // Creates an immediate meeting. + rpc CreateImmediateMeeting(CreateImmediateMeetingReq) returns (CreateImmediateMeetingResp); + // Joins a meeting. + rpc JoinMeeting(JoinMeetingReq) returns (JoinMeetingResp); + // get a specific meeting token + rpc GetMeetingToken(GetMeetingTokenReq) returns (GetMeetingTokenResp); + // Leaves a meeting. + rpc LeaveMeeting(LeaveMeetingReq) returns (LeaveMeetingResp); + // Ends a meeting. + rpc EndMeeting(EndMeetingReq) returns (EndMeetingResp); + // Retrieves a list of meetings that the user has created or joined, filtered by status. + rpc GetMeetings(GetMeetingsReq) returns (GetMeetingsResp); + // Gets detailed information about a specific meeting. + rpc GetMeeting(GetMeetingReq) returns (GetMeetingResp); + // Updates specific fields of a meeting. + rpc UpdateMeeting(UpdateMeetingRequest) returns (UpdateMeetingResp); + // Gets personal meeting settings. + rpc GetPersonalMeetingSettings(GetPersonalMeetingSettingsReq) returns (GetPersonalMeetingSettingsResp); + // Sets personal meeting settings. + rpc SetPersonalMeetingSettings(SetPersonalMeetingSettingsReq) returns (SetPersonalMeetingSettingsResp); + // operate room all stream. + rpc OperateRoomAllStream(OperateRoomAllStreamReq) returns (OperateRoomAllStreamResp); + // modify meeting participant nickname + rpc ModifyMeetingParticipantNickName(ModifyMeetingParticipantNickNameReq) returns (ModifyMeetingParticipantNickNameResp); + // batch remove participant out of the meeting room + rpc RemoveParticipants(RemoveMeetingParticipantsReq) returns (RemoveMeetingParticipantsResp); + // modify host or co host of the meeting room + rpc SetMeetingHostInfo(SetMeetingHostInfoReq) returns (SetMeetingHostInfoResp); +} diff --git a/openmeeting/user/user.pb.go b/openmeeting/user/user.pb.go new file mode 100644 index 00000000..d55f8e33 --- /dev/null +++ b/openmeeting/user/user.pb.go @@ -0,0 +1,1194 @@ +// Copyright © 2023 OpenIM. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.33.0 +// protoc v3.15.0 +// source: openmeeting/user/user.proto + +package user + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type GetDesignateUsersReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserIDs []string `protobuf:"bytes,1,rep,name=userIDs,proto3" json:"userIDs"` +} + +func (x *GetDesignateUsersReq) Reset() { + *x = GetDesignateUsersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDesignateUsersReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDesignateUsersReq) ProtoMessage() {} + +func (x *GetDesignateUsersReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDesignateUsersReq.ProtoReflect.Descriptor instead. +func (*GetDesignateUsersReq) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{0} +} + +func (x *GetDesignateUsersReq) GetUserIDs() []string { + if x != nil { + return x.UserIDs + } + return nil +} + +type GetDesignateUsersResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UsersInfo []*UserInfo `protobuf:"bytes,1,rep,name=usersInfo,proto3" json:"usersInfo"` +} + +func (x *GetDesignateUsersResp) Reset() { + *x = GetDesignateUsersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDesignateUsersResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDesignateUsersResp) ProtoMessage() {} + +func (x *GetDesignateUsersResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDesignateUsersResp.ProtoReflect.Descriptor instead. +func (*GetDesignateUsersResp) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{1} +} + +func (x *GetDesignateUsersResp) GetUsersInfo() []*UserInfo { + if x != nil { + return x.UsersInfo + } + return nil +} + +type UserInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"` + Account string `protobuf:"bytes,3,opt,name=account,proto3" json:"account"` + Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password"` +} + +func (x *UserInfo) Reset() { + *x = UserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserInfo) ProtoMessage() {} + +func (x *UserInfo) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. +func (*UserInfo) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{2} +} + +func (x *UserInfo) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *UserInfo) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *UserInfo) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *UserInfo) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type UserRegisterReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Users []*UserInfo `protobuf:"bytes,1,rep,name=users,proto3" json:"users"` +} + +func (x *UserRegisterReq) Reset() { + *x = UserRegisterReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserRegisterReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserRegisterReq) ProtoMessage() {} + +func (x *UserRegisterReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserRegisterReq.ProtoReflect.Descriptor instead. +func (*UserRegisterReq) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{3} +} + +func (x *UserRegisterReq) GetUsers() []*UserInfo { + if x != nil { + return x.Users + } + return nil +} + +type UserRegisterResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UserRegisterResp) Reset() { + *x = UserRegisterResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserRegisterResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserRegisterResp) ProtoMessage() {} + +func (x *UserRegisterResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserRegisterResp.ProtoReflect.Descriptor instead. +func (*UserRegisterResp) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{4} +} + +type UserLoginReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AreaCode string `protobuf:"bytes,1,opt,name=areaCode,proto3" json:"areaCode"` + PhoneNumber string `protobuf:"bytes,2,opt,name=phoneNumber,proto3" json:"phoneNumber"` + VerifyCode string `protobuf:"bytes,3,opt,name=verifyCode,proto3" json:"verifyCode"` + Account string `protobuf:"bytes,4,opt,name=account,proto3" json:"account"` + Password string `protobuf:"bytes,5,opt,name=password,proto3" json:"password"` + Platform int32 `protobuf:"varint,6,opt,name=platform,proto3" json:"platform"` + DeviceID string `protobuf:"bytes,7,opt,name=deviceID,proto3" json:"deviceID"` + Email string `protobuf:"bytes,8,opt,name=email,proto3" json:"email"` +} + +func (x *UserLoginReq) Reset() { + *x = UserLoginReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserLoginReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserLoginReq) ProtoMessage() {} + +func (x *UserLoginReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserLoginReq.ProtoReflect.Descriptor instead. +func (*UserLoginReq) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{5} +} + +func (x *UserLoginReq) GetAreaCode() string { + if x != nil { + return x.AreaCode + } + return "" +} + +func (x *UserLoginReq) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber + } + return "" +} + +func (x *UserLoginReq) GetVerifyCode() string { + if x != nil { + return x.VerifyCode + } + return "" +} + +func (x *UserLoginReq) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +func (x *UserLoginReq) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +func (x *UserLoginReq) GetPlatform() int32 { + if x != nil { + return x.Platform + } + return 0 +} + +func (x *UserLoginReq) GetDeviceID() string { + if x != nil { + return x.DeviceID + } + return "" +} + +func (x *UserLoginReq) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +type UserLoginResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"` + UserID string `protobuf:"bytes,3,opt,name=userID,proto3" json:"userID"` +} + +func (x *UserLoginResp) Reset() { + *x = UserLoginResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserLoginResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserLoginResp) ProtoMessage() {} + +func (x *UserLoginResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserLoginResp.ProtoReflect.Descriptor instead. +func (*UserLoginResp) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{6} +} + +func (x *UserLoginResp) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *UserLoginResp) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *UserLoginResp) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +type GetUserTokenReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` +} + +func (x *GetUserTokenReq) Reset() { + *x = GetUserTokenReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserTokenReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserTokenReq) ProtoMessage() {} + +func (x *GetUserTokenReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserTokenReq.ProtoReflect.Descriptor instead. +func (*GetUserTokenReq) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{7} +} + +func (x *GetUserTokenReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +type GetUserTokenResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token"` +} + +func (x *GetUserTokenResp) Reset() { + *x = GetUserTokenResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserTokenResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserTokenResp) ProtoMessage() {} + +func (x *GetUserTokenResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserTokenResp.ProtoReflect.Descriptor instead. +func (*GetUserTokenResp) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{8} +} + +func (x *GetUserTokenResp) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +type GetUserInfoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` +} + +func (x *GetUserInfoReq) Reset() { + *x = GetUserInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserInfoReq) ProtoMessage() {} + +func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserInfoReq.ProtoReflect.Descriptor instead. +func (*GetUserInfoReq) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{9} +} + +func (x *GetUserInfoReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +type GetUserInfoResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"` + Account string `protobuf:"bytes,3,opt,name=account,proto3" json:"account"` +} + +func (x *GetUserInfoResp) Reset() { + *x = GetUserInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_openmeeting_user_user_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserInfoResp) ProtoMessage() {} + +func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_openmeeting_user_user_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserInfoResp.ProtoReflect.Descriptor instead. +func (*GetUserInfoResp) Descriptor() ([]byte, []int) { + return file_openmeeting_user_user_proto_rawDescGZIP(), []int{10} +} + +func (x *GetUserInfoResp) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +func (x *GetUserInfoResp) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *GetUserInfoResp) GetAccount() string { + if x != nil { + return x.Account + } + return "" +} + +var File_openmeeting_user_user_proto protoreflect.FileDescriptor + +var file_openmeeting_user_user_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6f, + 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x22, + 0x30, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x73, 0x22, 0x51, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x09, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x74, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x75, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x30, 0x0a, + 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, + 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, + 0x12, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x22, 0xf0, 0x01, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x65, 0x61, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x65, 0x61, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x44, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x44, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x59, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x22, 0x29, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x28, 0x0a, 0x10, + 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x28, 0x0a, 0x0e, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x22, 0x5f, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, + 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x32, 0xbc, 0x03, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x64, 0x0a, 0x11, 0x67, 0x65, + 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, + 0x26, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, + 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x65, 0x74, 0x44, 0x65, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x55, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1e, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x6d, + 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x0b, + 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x2e, 0x6f, 0x70, + 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x67, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, + 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, + 0x70, 0x65, 0x6e, 0x69, 0x6d, 0x73, 0x64, 0x6b, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_openmeeting_user_user_proto_rawDescOnce sync.Once + file_openmeeting_user_user_proto_rawDescData = file_openmeeting_user_user_proto_rawDesc +) + +func file_openmeeting_user_user_proto_rawDescGZIP() []byte { + file_openmeeting_user_user_proto_rawDescOnce.Do(func() { + file_openmeeting_user_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_openmeeting_user_user_proto_rawDescData) + }) + return file_openmeeting_user_user_proto_rawDescData +} + +var file_openmeeting_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_openmeeting_user_user_proto_goTypes = []interface{}{ + (*GetDesignateUsersReq)(nil), // 0: openmeeting.user.getDesignateUsersReq + (*GetDesignateUsersResp)(nil), // 1: openmeeting.user.getDesignateUsersResp + (*UserInfo)(nil), // 2: openmeeting.user.UserInfo + (*UserRegisterReq)(nil), // 3: openmeeting.user.userRegisterReq + (*UserRegisterResp)(nil), // 4: openmeeting.user.userRegisterResp + (*UserLoginReq)(nil), // 5: openmeeting.user.userLoginReq + (*UserLoginResp)(nil), // 6: openmeeting.user.userLoginResp + (*GetUserTokenReq)(nil), // 7: openmeeting.user.getUserTokenReq + (*GetUserTokenResp)(nil), // 8: openmeeting.user.getUserTokenResp + (*GetUserInfoReq)(nil), // 9: openmeeting.user.getUserInfoReq + (*GetUserInfoResp)(nil), // 10: openmeeting.user.getUserInfoResp +} +var file_openmeeting_user_user_proto_depIdxs = []int32{ + 2, // 0: openmeeting.user.getDesignateUsersResp.usersInfo:type_name -> openmeeting.user.UserInfo + 2, // 1: openmeeting.user.userRegisterReq.users:type_name -> openmeeting.user.UserInfo + 0, // 2: openmeeting.user.user.getDesignateUsers:input_type -> openmeeting.user.getDesignateUsersReq + 3, // 3: openmeeting.user.user.userRegister:input_type -> openmeeting.user.userRegisterReq + 5, // 4: openmeeting.user.user.userLogin:input_type -> openmeeting.user.userLoginReq + 7, // 5: openmeeting.user.user.getUserToken:input_type -> openmeeting.user.getUserTokenReq + 9, // 6: openmeeting.user.user.getUserInfo:input_type -> openmeeting.user.getUserInfoReq + 1, // 7: openmeeting.user.user.getDesignateUsers:output_type -> openmeeting.user.getDesignateUsersResp + 4, // 8: openmeeting.user.user.userRegister:output_type -> openmeeting.user.userRegisterResp + 6, // 9: openmeeting.user.user.userLogin:output_type -> openmeeting.user.userLoginResp + 8, // 10: openmeeting.user.user.getUserToken:output_type -> openmeeting.user.getUserTokenResp + 10, // 11: openmeeting.user.user.getUserInfo:output_type -> openmeeting.user.getUserInfoResp + 7, // [7:12] is the sub-list for method output_type + 2, // [2:7] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_openmeeting_user_user_proto_init() } +func file_openmeeting_user_user_proto_init() { + if File_openmeeting_user_user_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_openmeeting_user_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDesignateUsersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDesignateUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRegisterReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRegisterResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserLoginReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserLoginResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserTokenReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserTokenResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_openmeeting_user_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_openmeeting_user_user_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_openmeeting_user_user_proto_goTypes, + DependencyIndexes: file_openmeeting_user_user_proto_depIdxs, + MessageInfos: file_openmeeting_user_user_proto_msgTypes, + }.Build() + File_openmeeting_user_user_proto = out.File + file_openmeeting_user_user_proto_rawDesc = nil + file_openmeeting_user_user_proto_goTypes = nil + file_openmeeting_user_user_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// UserClient is the client API for User service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type UserClient interface { + // Get the specified user information full field + GetDesignateUsers(ctx context.Context, in *GetDesignateUsersReq, opts ...grpc.CallOption) (*GetDesignateUsersResp, error) + // user registration + UserRegister(ctx context.Context, in *UserRegisterReq, opts ...grpc.CallOption) (*UserRegisterResp, error) + // user login + UserLogin(ctx context.Context, in *UserLoginReq, opts ...grpc.CallOption) (*UserLoginResp, error) + // get user token + GetUserToken(ctx context.Context, in *GetUserTokenReq, opts ...grpc.CallOption) (*GetUserTokenResp, error) + // get user info + GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) +} + +type userClient struct { + cc grpc.ClientConnInterface +} + +func NewUserClient(cc grpc.ClientConnInterface) UserClient { + return &userClient{cc} +} + +func (c *userClient) GetDesignateUsers(ctx context.Context, in *GetDesignateUsersReq, opts ...grpc.CallOption) (*GetDesignateUsersResp, error) { + out := new(GetDesignateUsersResp) + err := c.cc.Invoke(ctx, "/openmeeting.user.user/getDesignateUsers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) UserRegister(ctx context.Context, in *UserRegisterReq, opts ...grpc.CallOption) (*UserRegisterResp, error) { + out := new(UserRegisterResp) + err := c.cc.Invoke(ctx, "/openmeeting.user.user/userRegister", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) UserLogin(ctx context.Context, in *UserLoginReq, opts ...grpc.CallOption) (*UserLoginResp, error) { + out := new(UserLoginResp) + err := c.cc.Invoke(ctx, "/openmeeting.user.user/userLogin", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetUserToken(ctx context.Context, in *GetUserTokenReq, opts ...grpc.CallOption) (*GetUserTokenResp, error) { + out := new(GetUserTokenResp) + err := c.cc.Invoke(ctx, "/openmeeting.user.user/getUserToken", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { + out := new(GetUserInfoResp) + err := c.cc.Invoke(ctx, "/openmeeting.user.user/getUserInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// UserServer is the server API for User service. +type UserServer interface { + // Get the specified user information full field + GetDesignateUsers(context.Context, *GetDesignateUsersReq) (*GetDesignateUsersResp, error) + // user registration + UserRegister(context.Context, *UserRegisterReq) (*UserRegisterResp, error) + // user login + UserLogin(context.Context, *UserLoginReq) (*UserLoginResp, error) + // get user token + GetUserToken(context.Context, *GetUserTokenReq) (*GetUserTokenResp, error) + // get user info + GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) +} + +// UnimplementedUserServer can be embedded to have forward compatible implementations. +type UnimplementedUserServer struct { +} + +func (*UnimplementedUserServer) GetDesignateUsers(context.Context, *GetDesignateUsersReq) (*GetDesignateUsersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDesignateUsers not implemented") +} +func (*UnimplementedUserServer) UserRegister(context.Context, *UserRegisterReq) (*UserRegisterResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserRegister not implemented") +} +func (*UnimplementedUserServer) UserLogin(context.Context, *UserLoginReq) (*UserLoginResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UserLogin not implemented") +} +func (*UnimplementedUserServer) GetUserToken(context.Context, *GetUserTokenReq) (*GetUserTokenResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserToken not implemented") +} +func (*UnimplementedUserServer) GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserInfo not implemented") +} + +func RegisterUserServer(s *grpc.Server, srv UserServer) { + s.RegisterService(&_User_serviceDesc, srv) +} + +func _User_GetDesignateUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDesignateUsersReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetDesignateUsers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.user.user/GetDesignateUsers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetDesignateUsers(ctx, req.(*GetDesignateUsersReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_UserRegister_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserRegisterReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).UserRegister(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.user.user/UserRegister", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).UserRegister(ctx, req.(*UserRegisterReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_UserLogin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserLoginReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).UserLogin(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.user.user/UserLogin", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).UserLogin(ctx, req.(*UserLoginReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetUserToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserTokenReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetUserToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.user.user/GetUserToken", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetUserToken(ctx, req.(*GetUserTokenReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetUserInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetUserInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/openmeeting.user.user/GetUserInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetUserInfo(ctx, req.(*GetUserInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _User_serviceDesc = grpc.ServiceDesc{ + ServiceName: "openmeeting.user.user", + HandlerType: (*UserServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "getDesignateUsers", + Handler: _User_GetDesignateUsers_Handler, + }, + { + MethodName: "userRegister", + Handler: _User_UserRegister_Handler, + }, + { + MethodName: "userLogin", + Handler: _User_UserLogin_Handler, + }, + { + MethodName: "getUserToken", + Handler: _User_GetUserToken_Handler, + }, + { + MethodName: "getUserInfo", + Handler: _User_GetUserInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "openmeeting/user/user.proto", +} diff --git a/openmeeting/user/user.proto b/openmeeting/user/user.proto new file mode 100644 index 00000000..90aef662 --- /dev/null +++ b/openmeeting/user/user.proto @@ -0,0 +1,90 @@ +// Copyright © 2023 OpenIM. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; +package openmeeting.user; + +option go_package = "github.com/openimsdk/protocol/openmeeting/user"; + + +message getDesignateUsersReq{ + repeated string userIDs = 1; +} +message getDesignateUsersResp{ + repeated UserInfo usersInfo = 1; +} + +message UserInfo{ + string userID = 1; + string nickname = 2; + string account = 3; + string password = 4; +} + +message userRegisterReq { + repeated UserInfo users = 1; +} +message userRegisterResp { +} + +message userLoginReq { + string areaCode = 1; + string phoneNumber = 2; + string verifyCode = 3; + string account = 4; + string password = 5; + int32 platform = 6; + string deviceID = 7; + string email = 8; +} + +message userLoginResp { + string token = 1; + string nickname = 2; + string userID = 3; +} + +message getUserTokenReq{ + string userID = 1; +} + +message getUserTokenResp{ + string token = 1; +} + +message getUserInfoReq{ + string userID = 1; +} + +message getUserInfoResp{ + string userID = 1; + string nickname = 2; + string account = 3; +} + + +service user { + //Get the specified user information full field + rpc getDesignateUsers(getDesignateUsersReq) returns(getDesignateUsersResp); + //user registration + rpc userRegister(userRegisterReq) returns (userRegisterResp); + //user login + rpc userLogin(userLoginReq) returns (userLoginResp); + // get user token + rpc getUserToken(getUserTokenReq) returns (getUserTokenResp); + // get user info + rpc getUserInfo(getUserInfoReq) returns (getUserInfoResp); +} + +