Merge remote-tracking branch 'origin/v3dev' into v3dev

pull/476/head
Gordon 1 year ago
commit 387ac6e930

@ -73,11 +73,11 @@ object:
secretAccessKey: openIM123 #秘钥
isDistributedMod: false #是否分布式多硬盘部署如果是多硬盘部署需要修改为true
tencent: #tencent cos
appID:
region:
bucket:
secretID:
secretKey:
appID: 1314570205
region: ap-guangzhou
bucket: openim-test-1314570205
secretID: AKIDypY3K8lJk3NYVHqBXkneH5pMhsQFtKWX
secretKey: MZdXKxb9WhedR6dzAAzZyEVfgeR1NVP6
ali: #ali oss
regionID:
accessKeyID:

@ -18,7 +18,7 @@ require (
github.com/jinzhu/copier v0.3.5
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible
github.com/minio/minio-go/v7 v7.0.22
github.com/mitchellh/mapstructure v1.4.2
github.com/mitchellh/mapstructure v1.5.0
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646
github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.13.0
@ -43,6 +43,7 @@ require (
github.com/go-sql-driver/mysql v1.6.0
github.com/go-zookeeper/zk v1.0.3
github.com/redis/go-redis/v9 v9.0.5
github.com/tencentyun/cos-go-sdk-v5 v0.7.41
)
require (
@ -57,6 +58,7 @@ require (
github.com/bytedance/sonic v1.9.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect
github.com/clbanning/mxj v1.8.4 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/dustin/go-humanize v1.0.0 // indirect
@ -70,6 +72,7 @@ require (
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/snappy v0.0.3 // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect
github.com/googleapis/gax-go/v2 v2.7.1 // indirect
github.com/hashicorp/go-uuid v1.0.2 // indirect
@ -93,6 +96,7 @@ require (
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/mozillazg/go-httpheader v0.4.0 // indirect
github.com/onsi/ginkgo v1.16.5 // indirect
github.com/onsi/gomega v1.18.1 // indirect
github.com/pelletier/go-toml/v2 v2.0.8 // indirect

@ -51,6 +51,7 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/OpenIMSDK/open_utils v1.0.8 h1:IopxWgJwEF5ZAPsRuiZZOfcxNOQOCt/p8VDENcHN9r4=
github.com/OpenIMSDK/open_utils v1.0.8/go.mod h1:FLoaQblWUVKQgqt2LrNzfSZLT6D3DICBn1kcOMDLUOI=
github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM=
github.com/Shopify/sarama v1.29.0 h1:ARid8o8oieau9XrHI55f/L3EoRAhm9px6sonbD7yuUE=
github.com/Shopify/sarama v1.29.0/go.mod h1:2QpgD79wpdAESqNQMxNc0KYMkycd4slxGdV3TWSVqrU=
github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc=
@ -83,6 +84,8 @@ github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583j
github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI=
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI=
github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU=
github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I=
github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
@ -202,6 +205,9 @@ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
@ -216,6 +222,7 @@ github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hf
github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM=
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@ -314,8 +321,9 @@ github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKU
github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/mapstructure v1.4.2 h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo=
github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@ -324,6 +332,9 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
github.com/mozillazg/go-httpheader v0.2.1/go.mod h1:jJ8xECTlalr6ValeXYdOF8fFUISeBAdw6E61aqQma60=
github.com/mozillazg/go-httpheader v0.4.0 h1:aBn6aRXtFzyDLZ4VIRLsZbbJloagQfMnCiYgOq6hK4w=
github.com/mozillazg/go-httpheader v0.4.0/go.mod h1:PuT8h0pw6efvp8ZeUec1Rs7dwjK08bt6gKSReGMqtdA=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
@ -412,6 +423,10 @@ github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY=
github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.194/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y=
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/kms v1.0.194/go.mod h1:yrBKWhChnDqNz1xuXdSbWXG56XawEq0G5j1lg4VwBD4=
github.com/tencentyun/cos-go-sdk-v5 v0.7.41 h1:iU0Li/Np78H4SBna0ECQoF3mpgi6ImLXU+doGzPFXGc=
github.com/tencentyun/cos-go-sdk-v5 v0.7.41/go.mod h1:4dCEtLHGh8QPxHEkgq+nFaky7yZxQuYwgSJM87icDaw=
github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca h1:G/aIr3WiUesWHL2YGYgEqjM5tCAJ43Ml+0C18wDkWWs=
github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca/go.mod h1:b18KQa4IxHbxeseW1GcZox53d7J0z39VNONTxvvlkXw=
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=

@ -114,3 +114,7 @@ func (o *GroupApi) GetJoinedSuperGroupList(c *gin.Context) {
func (o *GroupApi) GetSuperGroupsInfo(c *gin.Context) {
a2r.Call(group.GroupClient.GetSuperGroupsInfo, o.Client, c)
}
func (o *GroupApi) GroupCreateCount(c *gin.Context) {
a2r.Call(group.GroupClient.GroupCreateCount, o.Client, c)
}

@ -154,6 +154,7 @@ func NewGinRouter(discov discoveryregistry.SvcDiscoveryRegistry, rdb redis.Unive
{
statisticsGroup.POST("/user/register", u.UserRegisterCount)
statisticsGroup.POST("/user/active", m.GetActiveUser)
statisticsGroup.POST("/group/create", g.GroupCreateCount)
}
return r
}

@ -0,0 +1,28 @@
package group
import (
"context"
"github.com/OpenIMSDK/Open-IM-Server/pkg/errs"
"github.com/OpenIMSDK/Open-IM-Server/pkg/proto/group"
"time"
)
func (s *groupServer) GroupCreateCount(ctx context.Context, req *group.GroupCreateCountReq) (*group.GroupCreateCountResp, error) {
if req.Start > req.End {
return nil, errs.ErrArgs.Wrap("start > end")
}
total, err := s.GroupDatabase.CountTotal(ctx, nil)
if err != nil {
return nil, err
}
start := time.UnixMilli(req.Start)
before, err := s.GroupDatabase.CountTotal(ctx, &start)
if err != nil {
return nil, err
}
count, err := s.GroupDatabase.CountRangeEverydayTotal(ctx, start, time.UnixMilli(req.End))
if err != nil {
return nil, err
}
return &group.GroupCreateCountResp{Total: total, Before: before, Count: count}, nil
}

@ -10,7 +10,7 @@ import (
)
func (m *msgServer) GetActiveUser(ctx context.Context, req *msg.GetActiveUserReq) (*msg.GetActiveUserResp, error) {
msgCount, userCount, users, err := m.MsgDatabase.RangeUserSendCount(ctx, time.UnixMilli(req.Start), time.UnixMilli(req.End), req.Ase, req.Pagination.PageNumber, req.Pagination.ShowNumber)
msgCount, userCount, users, dateCount, err := m.MsgDatabase.RangeUserSendCount(ctx, time.UnixMilli(req.Start), time.UnixMilli(req.End), req.Ase, req.Pagination.PageNumber, req.Pagination.ShowNumber)
if err != nil {
return nil, err
}
@ -39,6 +39,7 @@ func (m *msgServer) GetActiveUser(ctx context.Context, req *msg.GetActiveUserReq
return &msg.GetActiveUserResp{
MsgCount: msgCount,
UserCount: userCount,
DateCount: dateCount,
Users: pbUsers,
}, nil
}

@ -25,7 +25,14 @@ func Start(client discoveryregistry.SvcDiscoveryRegistry, server *grpc.Server) e
if err != nil {
return err
}
o, err := obj.NewMinioInterface()
// 根据配置文件策略选择 oss 方式
enable := config.Config.Object.Enable
var o obj.Interface
if enable == "minio" {
o, err = obj.NewMinioInterface()
} else if enable == "tencent" {
o, err = obj.NewCosClient()
}
if err != nil {
return err
}

@ -3,6 +3,7 @@ package controller
import (
"context"
"fmt"
"time"
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/constant"
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/cache"
@ -57,6 +58,11 @@ type GroupDatabase interface {
DeleteSuperGroup(ctx context.Context, groupID string) error
DeleteSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error
CreateSuperGroupMember(ctx context.Context, groupID string, userIDs []string) error
// 获取群总数
CountTotal(ctx context.Context, before *time.Time) (count int64, err error)
// 获取范围内群增量
CountRangeEverydayTotal(ctx context.Context, start time.Time, end time.Time) (map[string]int64, error)
}
func NewGroupDatabase(
@ -419,3 +425,11 @@ func (g *groupDatabase) CreateSuperGroupMember(ctx context.Context, groupID stri
}
return g.cache.DelSuperGroupMemberIDs(groupID).DelJoinedSuperGroupIDs(userIDs...).ExecDel(ctx)
}
func (g *groupDatabase) CountTotal(ctx context.Context, before *time.Time) (count int64, err error) {
return g.groupDB.CountTotal(ctx, before)
}
func (g *groupDatabase) CountRangeEverydayTotal(ctx context.Context, start time.Time, end time.Time) (map[string]int64, error) {
return g.groupDB.CountRangeEverydayTotal(ctx, start, end)
}

@ -92,7 +92,7 @@ type CommonMsgDatabase interface {
GetOneMessageAllReactionList(ctx context.Context, clientMsgID string, sessionType int32) (map[string]string, error)
DeleteOneMessageKey(ctx context.Context, clientMsgID string, sessionType int32, subKey string) error
DeleteReactionExtendMsgSet(ctx context.Context, conversationID string, sessionType int32, clientMsgID string, msgFirstModifyTime int64, reactionExtensionList map[string]*sdkws.KeyValue) error
RangeUserSendCount(ctx context.Context, start time.Time, end time.Time, ase bool, pageNumber int32, showNumber int32) (msgCount int64, userCount int64, users []*unRelationTb.UserCount, err error)
RangeUserSendCount(ctx context.Context, start time.Time, end time.Time, ase bool, pageNumber int32, showNumber int32) (msgCount int64, userCount int64, users []*unRelationTb.UserCount, dateCount map[string]int64, err error)
}
func NewCommonMsgDatabase(msgDocModel unRelationTb.MsgDocModelInterface, cacheModel cache.MsgModel) CommonMsgDatabase {
@ -927,6 +927,6 @@ func (db *commonMsgDatabase) DeleteReactionExtendMsgSet(ctx context.Context, con
return db.extendMsgDatabase.DeleteReactionExtendMsgSet(ctx, conversationID, sessionType, clientMsgID, msgFirstModifyTime, db.extendMsgSetModel.Pb2Model(reactionExtensions))
}
func (db *commonMsgDatabase) RangeUserSendCount(ctx context.Context, start time.Time, end time.Time, ase bool, pageNumber int32, showNumber int32) (msgCount int64, userCount int64, users []*unRelationTb.UserCount, err error) {
func (db *commonMsgDatabase) RangeUserSendCount(ctx context.Context, start time.Time, end time.Time, ase bool, pageNumber int32, showNumber int32) (msgCount int64, userCount int64, users []*unRelationTb.UserCount, dateCount map[string]int64, err error) {
return db.msgDocDatabase.RangeUserSendCount(ctx, start, end, ase, pageNumber, showNumber)
}

@ -67,9 +67,9 @@ type Interface interface {
TempBucket() string
// DataBucket 永久存储的桶名
DataBucket() string
// PresignedGetURL 通过桶名和对象名返回URL
// PresignedGetURL 预签名授权 通过桶名和对象名返回URL
PresignedGetURL(ctx context.Context, bucket string, name string, expires time.Duration, opt *HeaderOption) (string, error)
// PresignedPutURL 申请上传,返回PUT的上传地址
// PresignedPutURL 预签名授权 申请上传,返回PUT的上传地址
PresignedPutURL(ctx context.Context, args *ApplyPutArgs) (string, error)
// GetObjectInfo 获取对象信息
GetObjectInfo(ctx context.Context, args *BucketObject) (*ObjectInfo, error)

@ -0,0 +1,212 @@
package obj
import (
"context"
"errors"
"fmt"
"io"
"net/http"
"net/url"
"strconv"
"time"
"github.com/minio/minio-go/v7/pkg/s3utils"
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/config"
"github.com/tencentyun/cos-go-sdk-v5"
)
var conf = config.Config.Object.Tencent
func create_url(bucket, region, source string) string {
return fmt.Sprintf("https://%s.cos.%s.myqcloud.com/%s", bucket, region, source)
}
func NewCosClient() (Interface, error) {
u, err := url.Parse(create_url(conf.Bucket, conf.Region, ""))
if err != nil {
return nil, fmt.Errorf("tencent cos url parse %w", err)
}
b := &cos.BaseURL{BucketURL: u}
c := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: conf.SecretID, // 用户的 SecretId建议使用子账号密钥授权遵循最小权限指引降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
SecretKey: conf.SecretKey, // 用户的 SecretKey建议使用子账号密钥授权遵循最小权限指引降低使用风险。子账号密钥获取可参考 https://cloud.tencent.com/document/product/598/37140
},
})
return &cosImpl{
client: c,
tempBucket: conf.Bucket,
}, err
}
type cosImpl struct {
tempBucket string // 上传桶
//dataBucket string // 永久桶
urlstr string // 访问地址
client *cos.Client
}
func (c *cosImpl) Name() string {
return "tx_oss cos"
}
func (c *cosImpl) MinFragmentSize() int64 {
return 1024 * 1024 * 5 // 每个分片最小大小 tx_oss.absMinPartSize
}
func (c *cosImpl) MaxFragmentNum() int {
return 1000 // 最大分片数量 tx_oss.maxPartsCount
}
func (c *cosImpl) MinExpirationTime() time.Duration {
return time.Hour * 24
}
func (c *cosImpl) TempBucket() string {
return c.tempBucket
}
func (c *cosImpl) DataBucket() string {
//return c.dataBucket
return ""
}
func (c *cosImpl) PresignedGetURL(ctx context.Context, bucket string, name string, expires time.Duration, opt *HeaderOption) (string, error) {
// 参考文档https://cloud.tencent.com/document/product/436/14116
// 获取对象访问 URL用于匿名下载和分发
presignedGetURL, err := c.client.Object.GetPresignedURL(ctx, http.MethodGet, name, conf.SecretID, conf.SecretKey, time.Hour, nil)
if err != nil {
return "", err
}
return presignedGetURL.String(), nil
}
func (c *cosImpl) PresignedPutURL(ctx context.Context, args *ApplyPutArgs) (string, error) {
// 参考文档https://cloud.tencent.com/document/product/436/14114
if args.Effective <= 0 {
return "", errors.New("EffectiveTime <= 0")
}
_, err := c.GetObjectInfo(ctx, &BucketObject{
Bucket: c.tempBucket,
Name: args.Name,
})
if err == nil {
return "", fmt.Errorf("minio bucket %s name %s already exists", args.Bucket, args.Name)
} else if !c.IsNotFound(err) {
return "", err
}
// 获取预签名 URL
presignedPutURL, err := c.client.Object.GetPresignedURL(ctx, http.MethodPut, args.Name, conf.SecretID, conf.SecretKey, time.Hour, nil)
if err != nil {
return "", fmt.Errorf("minio apply error: %w", err)
}
return presignedPutURL.String(), nil
}
func (c *cosImpl) GetObjectInfo(ctx context.Context, args *BucketObject) (*ObjectInfo, error) {
// https://cloud.tencent.com/document/product/436/7745
// 新增参数 id 代表指定版本,如果不指定,默认查询对象最新版本
head, err := c.client.Object.Head(ctx, args.Name, nil, "")
if err != nil {
return nil, err
}
size, _ := strconv.ParseInt(head.Header.Get("Content-Length"), 10, 64)
return &ObjectInfo{
Size: size,
Hash: head.Header.Get("ETag"),
}, nil
}
func (c *cosImpl) CopyObject(ctx context.Context, src *BucketObject, dst *BucketObject) error {
srcURL := create_url(src.Bucket, conf.Region, src.Name)
_, _, err := c.client.Object.Copy(ctx, dst.Name, srcURL, nil)
if err == nil {
_, err = c.client.Object.Delete(ctx, srcURL, nil)
if err != nil {
// Error
}
}
return err
}
func (c *cosImpl) DeleteObject(ctx context.Context, info *BucketObject) error {
_, err := c.client.Object.Delete(ctx, info.Name)
return err
}
func (c *cosImpl) ComposeObject(ctx context.Context, src []BucketObject, dst *BucketObject) error {
//TODO implement me
panic("implement me")
}
func (c *cosImpl) IsNotFound(err error) bool {
ok, err := c.client.Object.IsExist(context.Background(), c.tempBucket)
if err == nil && ok {
fmt.Printf("object exists\n")
return true
} else if err != nil {
fmt.Printf("head object failed: %v\n", err)
return false
} else {
fmt.Printf("object does not exist\n")
return false
}
}
func (c *cosImpl) CheckName(name string) error {
return s3utils.CheckValidObjectName(name)
}
func (c *cosImpl) PutObject(ctx context.Context, info *BucketObject, reader io.Reader, size int64) (*ObjectInfo, error) {
/*// 采用高级接口, 无需用户指定 size
update, _, err := c.client.Object.Upload(
ctx, info.Name, info.Bucket, nil,
)
if err != nil {
return nil, err
}
return &ObjectInfo{
Hash: update.ETag,
}, nil*/
// Case1 使用 Put 上传对象
opt := &cos.ObjectPutOptions{
ObjectPutHeaderOptions: &cos.ObjectPutHeaderOptions{
ContentType: "text/html",
},
ACLHeaderOptions: &cos.ACLHeaderOptions{
// 如果不是必要操作,建议上传文件时不要给单个文件设置权限,避免达到限制。若不设置默认继承桶的权限。
XCosACL: "private",
},
}
resp, err := c.client.Object.Put(ctx, info.Name, reader, opt)
if err != nil {
return nil, err
}
return &ObjectInfo{
Hash: resp.Header.Get("ETag"),
}, nil
}
func (c *cosImpl) GetObject(ctx context.Context, info *BucketObject) (SizeReader, error) {
opt := &cos.MultiDownloadOptions{
ThreadPoolSize: 5,
}
update, err := c.client.Object.Download(
ctx, info.Name, info.Bucket, opt,
)
if err != nil {
return nil, err
}
size, _ := strconv.ParseInt(update.Header.Get("Content-Length"), 10, 64)
body := update.Body
if body == nil {
return nil, errors.New("response body is nil")
}
readCloser, ok := body.(io.ReadCloser)
if !ok {
return nil, errors.New("failed to convert response to ReadCloser")
}
return NewSizeReader(readCloser, size), nil
}

@ -4,8 +4,10 @@ import (
"context"
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/ormutil"
"github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation"
"github.com/OpenIMSDK/Open-IM-Server/pkg/errs"
"github.com/OpenIMSDK/Open-IM-Server/pkg/utils"
"gorm.io/gorm"
"time"
)
var _ relation.GroupModelInterface = (*GroupGorm)(nil)
@ -50,3 +52,30 @@ func (g *GroupGorm) Search(ctx context.Context, keyword string, pageNumber, show
func (g *GroupGorm) GetGroupIDsByGroupType(ctx context.Context, groupType int) (groupIDs []string, err error) {
return groupIDs, utils.Wrap(g.DB.Model(&relation.GroupModel{}).Where("group_type = ? ", groupType).Pluck("group_id", &groupIDs).Error, "")
}
func (g *GroupGorm) CountTotal(ctx context.Context, before *time.Time) (count int64, err error) {
db := g.db(ctx).Model(&relation.GroupModel{})
if before != nil {
db = db.Where("create_time < ?", before)
}
if err := db.Count(&count).Error; err != nil {
return 0, err
}
return count, nil
}
func (g *GroupGorm) CountRangeEverydayTotal(ctx context.Context, start time.Time, end time.Time) (map[string]int64, error) {
var res []struct {
Date time.Time `gorm:"column:date"`
Count int64 `gorm:"column:count"`
}
err := g.db(ctx).Model(&relation.GroupModel{}).Select("DATE(create_time) AS date, count(1) AS count").Where("create_time >= ? and create_time < ?", start, end).Group("date").Find(&res).Error
if err != nil {
return nil, errs.Wrap(err)
}
v := make(map[string]int64)
for _, r := range res {
v[r.Date.Format("2006-01-02")] = r.Count
}
return v, nil
}

@ -40,4 +40,8 @@ type GroupModelInterface interface {
Take(ctx context.Context, groupID string) (group *GroupModel, err error)
Search(ctx context.Context, keyword string, pageNumber, showNumber int32) (total uint32, groups []*GroupModel, err error)
GetGroupIDsByGroupType(ctx context.Context, groupType int) (groupIDs []string, err error)
// 获取群总数
CountTotal(ctx context.Context, before *time.Time) (count int64, err error)
// 获取范围内群增量
CountRangeEverydayTotal(ctx context.Context, start time.Time, end time.Time) (map[string]int64, error)
}

@ -14,7 +14,7 @@ type UserModel struct {
Nickname string `gorm:"column:name;size:255"`
FaceURL string `gorm:"column:face_url;size:255"`
Ex string `gorm:"column:ex;size:1024"`
CreateTime time.Time `gorm:"column:create_time;index:create_time; autoCreateTime"`
CreateTime time.Time `gorm:"column:create_time;index:create_time;autoCreateTime"`
AppMangerLevel int32 `gorm:"column:app_manger_level;default:18"`
GlobalRecvMsgOpt int32 `gorm:"column:global_recv_msg_opt"`
}

@ -88,7 +88,7 @@ type MsgDocModelInterface interface {
GetMsgDocModelByIndex(ctx context.Context, conversationID string, index, sort int64) (*MsgDocModel, error)
DeleteMsgsInOneDocByIndex(ctx context.Context, docID string, indexes []int) error
MarkSingleChatMsgsAsRead(ctx context.Context, userID string, docID string, indexes []int64) error
RangeUserSendCount(ctx context.Context, start time.Time, end time.Time, ase bool, pageNumber int32, showNumber int32) (msgCount int64, userCount int64, users []*UserCount, err error)
RangeUserSendCount(ctx context.Context, start time.Time, end time.Time, ase bool, pageNumber int32, showNumber int32) (msgCount int64, userCount int64, users []*UserCount, dateCount map[string]int64, err error)
}
func (MsgDocModel) TableName() string {

@ -310,7 +310,192 @@ func (m *MsgMongoDriver) MarkSingleChatMsgsAsRead(ctx context.Context, userID st
return err
}
func (m *MsgMongoDriver) RangeUserSendCount(ctx context.Context, start time.Time, end time.Time, ase bool, pageNumber int32, showNumber int32) (msgCount int64, userCount int64, users []*table.UserCount, err error) {
// RangeUserSendCount
// db.msg.aggregate([
//
// {
// $match: {
// "msgs.msg.send_time": {
// "$gte": 0,
// "$lt": 1788122092317
// }
// }
// },
// {
// "$addFields": {
// "msgs": {
// "$filter": {
// "input": "$msgs",
// "as": "item",
// "cond": {
// "$and": [
// {
// $gte: ["$$item.msg.send_time", 0]
// },
// {
// $lt: ["$$item.msg.send_time", 1788122092317]
// }
// ]
// }
// }
// }
// }
// },
// {
// "$project": {
// "_id": 0,
//
// },
//
// },
// {
// "$project": {
// "result": {
// "$map": {
// "input": "$msgs",
// "as": "item",
// "in": {
// user_id: "$$item.msg.send_id",
// send_date: {
// $dateToString: {
// format: "%Y-%m-%d",
// date: {
// $toDate: "$$item.msg.send_time"
// }
// }
// }
// }
// }
// }
// },
//
// },
// {
// "$unwind": "$result"
// },
// {
// "$group": {
// _id: "$result.send_date",
// count: {
// $sum: 1
// },
// original: {
// $push: "$$ROOT"
// }
// }
// },
// {
// "$addFields": {
// "dates": "$$ROOT"
// }
// },
// {
// "$project": {
// "_id": 0,
// "count": 0,
// "dates.original": 0,
//
// },
//
// },
// {
// "$group": {
// _id: null,
// count: {
// $sum: 1
// },
// dates: {
// $push: "$dates"
// },
// original: {
// $push: "$original"
// },
//
// }
// },
// {
// "$unwind": "$original"
// },
// {
// "$unwind": "$original"
// },
// {
// "$group": {
// _id: "$original.result.user_id",
// count: {
// $sum: 1
// },
// original: {
// $push: "$dates"
// },
//
// }
// },
// {
// "$addFields": {
// "dates": {
// $arrayElemAt: ["$original", 0]
// }
// }
// },
// {
// "$project": {
// original: 0
// }
// },
// {
// $sort: {
// count: - 1
// }
// },
// {
// "$group": {
// _id: null,
// user_count: {
// $sum: 1
// },
// users: {
// $push: "$$ROOT"
// },
//
// }
// },
// {
// "$addFields": {
// "dates": {
// $arrayElemAt: ["$users", 0]
// }
// }
// },
// {
// "$addFields": {
// "dates": "$dates.dates"
// }
// },
// {
// "$project": {
// _id: 0,
// "users.dates": 0,
//
// }
// },
// {
// "$addFields": {
// "msg_count": {
// $sum: "$users.count"
// }
// }
// },
// {
// "$addFields": {
// users: {
// $slice: ["$users", 0, 10]
// }
// }
// }
//
// ])
func (m *MsgMongoDriver) RangeUserSendCount(ctx context.Context, start time.Time, end time.Time, ase bool, pageNumber int32, showNumber int32) (msgCount int64, userCount int64, users []*table.UserCount, dateCount map[string]int64, err error) {
var sort int
if ase {
sort = 1
@ -320,12 +505,24 @@ func (m *MsgMongoDriver) RangeUserSendCount(ctx context.Context, start time.Time
type Result struct {
MsgCount int64 `bson:"msg_count"`
UserCount int64 `bson:"user_count"`
Result []struct {
Users []struct {
UserID string `bson:"_id"`
Count int64 `bson:"count"`
}
} `bson:"users"`
Dates []struct {
Date string `bson:"_id"`
Count int64 `bson:"count"`
} `bson:"dates"`
}
pipeline := bson.A{
bson.M{
"$match": bson.M{
"msgs.msg.send_time": bson.M{
"$gte": start.UnixMilli(),
"$lt": end.UnixMilli(),
},
},
},
bson.M{
"$addFields": bson.M{
"msgs": bson.M{
@ -352,26 +549,98 @@ func (m *MsgMongoDriver) RangeUserSendCount(ctx context.Context, start time.Time
},
bson.M{
"$project": bson.M{
"_id": 0,
"doc_id": 0,
"_id": 0,
},
},
bson.M{
"$project": bson.M{
"msgs": bson.M{
"result": bson.M{
"$map": bson.M{
"input": "$msgs",
"as": "item",
"in": "$$item.msg.send_id",
"in": bson.M{
"user_id": "$$item.msg.send_id",
"send_date": bson.M{
"$dateToString": bson.M{
"format": "%Y-%m-%d",
"date": bson.M{
"$toDate": "$$item.msg.send_time", // 毫秒时间戳
},
},
},
},
},
},
},
},
bson.M{
"$unwind": "$msgs",
"$unwind": "$result",
},
bson.M{
"$group": bson.M{
"_id": "$result.send_date",
"count": bson.M{
"$sum": 1,
},
"original": bson.M{
"$push": "$$ROOT",
},
},
},
bson.M{
"$addFields": bson.M{
"dates": "$$ROOT",
},
},
bson.M{
"$project": bson.M{
"_id": 0,
"count": 0,
"dates.original": 0,
},
},
bson.M{
"$group": bson.M{
"_id": nil,
"count": bson.M{
"$sum": 1,
},
"dates": bson.M{
"$push": "$dates",
},
"original": bson.M{
"$push": "$original",
},
},
},
bson.M{
"$unwind": "$original",
},
bson.M{
"$sortByCount": "$msgs",
"$unwind": "$original",
},
bson.M{
"$group": bson.M{
"_id": "$original.result.user_id",
"count": bson.M{
"$sum": 1,
},
"original": bson.M{
"$push": "$dates",
},
},
},
bson.M{
"$addFields": bson.M{
"dates": bson.M{
"$arrayElemAt": bson.A{"$original", 0},
},
},
},
bson.M{
"$project": bson.M{
"original": 0,
},
},
bson.M{
"$sort": bson.M{
@ -381,49 +650,69 @@ func (m *MsgMongoDriver) RangeUserSendCount(ctx context.Context, start time.Time
bson.M{
"$group": bson.M{
"_id": nil,
"result": bson.M{
"user_count": bson.M{
"$sum": 1,
},
"users": bson.M{
"$push": "$$ROOT",
},
},
},
bson.M{
"$addFields": bson.M{
"user_count": bson.M{
"$size": "$result",
"dates": bson.M{
"$arrayElemAt": bson.A{"$users", 0},
},
},
},
bson.M{
"$addFields": bson.M{
"dates": "$dates.dates",
},
},
bson.M{
"$project": bson.M{
"_id": 0,
"users.dates": 0,
},
},
bson.M{
"$addFields": bson.M{
"msg_count": bson.M{
"$sum": "$result.count",
"$sum": "$users.count",
},
},
},
bson.M{
"$addFields": bson.M{
"result": bson.M{
"$slice": bson.A{
"$result", pageNumber - 1, showNumber,
},
"users": bson.M{
"$slice": bson.A{"$users", pageNumber - 1, showNumber},
},
},
},
}
cur, err := m.MsgCollection.Aggregate(ctx, pipeline)
cur, err := m.MsgCollection.Aggregate(ctx, pipeline, options.Aggregate().SetAllowDiskUse(true))
if err != nil {
return 0, 0, nil, errs.Wrap(err)
return 0, 0, nil, nil, errs.Wrap(err)
}
defer cur.Close(ctx)
var result []Result
if err := cur.All(ctx, &result); err != nil {
return 0, 0, nil, err
return 0, 0, nil, nil, errs.Wrap(err)
}
if len(result) == 0 {
return 0, 0, nil, nil
return 0, 0, nil, nil, errs.Wrap(err)
}
res := make([]*table.UserCount, len(result[0].Result))
for i, r := range result[0].Result {
res[i] = &table.UserCount{
users = make([]*table.UserCount, len(result[0].Users))
for i, r := range result[0].Users {
users[i] = &table.UserCount{
UserID: r.UserID,
Count: r.Count,
}
}
return result[0].MsgCount, result[0].UserCount, res, nil
dateCount = make(map[string]int64)
for _, r := range result[0].Dates {
dateCount[r.Date] = r.Count
}
return result[0].MsgCount, result[0].UserCount, users, dateCount, nil
}

@ -3395,6 +3395,124 @@ func (x *GetGroupMemberCacheResp) GetMember() *sdkws.GroupMemberFullInfo {
return nil
}
type GroupCreateCountReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Start int64 `protobuf:"varint,1,opt,name=start,proto3" json:"start"`
End int64 `protobuf:"varint,2,opt,name=end,proto3" json:"end"`
}
func (x *GroupCreateCountReq) Reset() {
*x = GroupCreateCountReq{}
if protoimpl.UnsafeEnabled {
mi := &file_group_group_proto_msgTypes[66]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupCreateCountReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupCreateCountReq) ProtoMessage() {}
func (x *GroupCreateCountReq) ProtoReflect() protoreflect.Message {
mi := &file_group_group_proto_msgTypes[66]
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 GroupCreateCountReq.ProtoReflect.Descriptor instead.
func (*GroupCreateCountReq) Descriptor() ([]byte, []int) {
return file_group_group_proto_rawDescGZIP(), []int{66}
}
func (x *GroupCreateCountReq) GetStart() int64 {
if x != nil {
return x.Start
}
return 0
}
func (x *GroupCreateCountReq) GetEnd() int64 {
if x != nil {
return x.End
}
return 0
}
type GroupCreateCountResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"`
Before int64 `protobuf:"varint,2,opt,name=before,proto3" json:"before"`
Count map[string]int64 `protobuf:"bytes,3,rep,name=count,proto3" json:"count" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}
func (x *GroupCreateCountResp) Reset() {
*x = GroupCreateCountResp{}
if protoimpl.UnsafeEnabled {
mi := &file_group_group_proto_msgTypes[67]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupCreateCountResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupCreateCountResp) ProtoMessage() {}
func (x *GroupCreateCountResp) ProtoReflect() protoreflect.Message {
mi := &file_group_group_proto_msgTypes[67]
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 GroupCreateCountResp.ProtoReflect.Descriptor instead.
func (*GroupCreateCountResp) Descriptor() ([]byte, []int) {
return file_group_group_proto_rawDescGZIP(), []int{67}
}
func (x *GroupCreateCountResp) GetTotal() int64 {
if x != nil {
return x.Total
}
return 0
}
func (x *GroupCreateCountResp) GetBefore() int64 {
if x != nil {
return x.Before
}
return 0
}
func (x *GroupCreateCountResp) GetCount() map[string]int64 {
if x != nil {
return x.Count
}
return nil
}
var File_group_group_proto protoreflect.FileDescriptor
var file_group_group_proto_rawDesc = []byte{
@ -3763,210 +3881,233 @@ var file_group_group_proto_rawDesc = []byte{
0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73,
0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x32, 0xf4, 0x18, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x56, 0x0a, 0x0b, 0x63, 0x72,
0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43,
0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
0x73, 0x70, 0x12, 0x50, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12,
0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
0x71, 0x1a, 0x21, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x12, 0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53,
0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12,
0x7a, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x2f, 0x2e, 0x4f, 0x70, 0x65,
0x22, 0x3d, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43,
0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a,
0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22,
0xc9, 0x01, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43,
0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61,
0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x16,
0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06,
0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x49, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0xdb, 0x19, 0x0a, 0x05,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x56, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x12, 0x22, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49,
0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72,
0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a,
0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x80, 0x01, 0x0a, 0x19,
0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47,
0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x31, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b,
0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f,
0x77, 0x6e, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66,
0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a,
0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67,
0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12,
0x50, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x21,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73,
0x70, 0x12, 0x5c, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x24, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x25, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49,
0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65,
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12,
0x59, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12,
0x23, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7a, 0x0a, 0x17, 0x67, 0x65,
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69,
0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x2f, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69,
0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x80, 0x01, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x55, 0x73,
0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65,
0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55,
0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x74, 0x72, 0x61,
0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12,
0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7d, 0x0a, 0x18, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x30, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49,
0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x67, 0x65,
0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74,
0x12, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70,
0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e,
0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7d, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41,
0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x2f, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70,
0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x52, 0x65, 0x71, 0x1a, 0x30, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70,
0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c,
0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6e, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x2b, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52,
0x65, 0x71, 0x1a, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x67,
0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73,
0x74, 0x12, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f,
0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
0x73, 0x70, 0x12, 0x6e, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47,
0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x2b, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
0x73, 0x70, 0x12, 0x62, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d,
0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69,
0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x68, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69,
0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76,
0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
0x73, 0x70, 0x12, 0x50, 0x0a, 0x09, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12,
0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65,
0x71, 0x1a, 0x21, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73,
0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x29, 0x2e, 0x4f, 0x70, 0x65,
0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74,
0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x73, 0x70, 0x12, 0x68, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65,
0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49,
0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e,
0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
0x65, 0x71, 0x1a, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73,
0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a,
0x09, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x20, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43,
0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12,
0x6b, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73,
0x70, 0x12, 0x59, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x12, 0x23, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71,
0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x0c,
0x64, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x23, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
0x71, 0x1a, 0x24, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x69, 0x73, 0x6d,
0x69, 0x73, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x0f,
0x6d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12,
0x26, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4d, 0x75, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
0x12, 0x74, 0x0a, 0x15, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43,
0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x0f, 0x6d, 0x75, 0x74, 0x65, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52,
0x65, 0x71, 0x1a, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x74, 0x0a, 0x15, 0x63,
0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x2d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x6e,
0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x12, 0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x0f, 0x63, 0x61, 0x6e, 0x63,
0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x26, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x52, 0x65, 0x71, 0x1a, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d,
0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7a, 0x0a, 0x17,
0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74,
0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x2f, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74,
0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x53,
0x75, 0x70, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29,
0x6d, 0x62, 0x65, 0x72, 0x12, 0x2c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c,
0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52,
0x65, 0x71, 0x1a, 0x2d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75,
0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73,
0x70, 0x12, 0x50, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x20,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x6f, 0x75, 0x70, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
0x1a, 0x21, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
0x65, 0x73, 0x70, 0x12, 0x62, 0x0a, 0x0f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74,
0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x26, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x6e, 0x63,
0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x27,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7a, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x4a, 0x6f,
0x69, 0x6e, 0x65, 0x64, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69,
0x73, 0x74, 0x12, 0x2e, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65,
0x64, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x71, 0x1a, 0x2f, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65,
0x64, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47,
0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6b, 0x0a, 0x12, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x6f, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x75, 0x70,
0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70,
0x12, 0x6b, 0x0a, 0x12, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
0x73, 0x70, 0x12, 0x71, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x62,
0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x2c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66,
0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x74, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2c,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2d, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x74, 0x0a, 0x15, 0x67,
0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65,
0x72, 0x49, 0x44, 0x73, 0x12, 0x2c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x52,
0x65, 0x71, 0x1a, 0x2d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73,
0x70, 0x12, 0x7a, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2e, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x2f, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x68, 0x0a,
0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x61, 0x63,
0x68, 0x65, 0x12, 0x28, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d,
0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x71, 0x0a,
0x14, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63,
0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x65, 0x71, 0x1a, 0x2c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x49, 0x6e, 0x66, 0x6f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x61,
0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x2a,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x2b, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x61,
0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75,
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x44, 0x4b, 0x2f,
0x4f, 0x70, 0x65, 0x6e, 0x2d, 0x49, 0x4d, 0x2d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70,
0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70,
0x12, 0x74, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47,
0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74,
0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x74, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x12,
0x2c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x2d, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7a, 0x0a, 0x17,
0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f,
0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2e, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c,
0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x2f, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x4c,
0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x68, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x28, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x43,
0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65,
0x73, 0x70, 0x12, 0x6e, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47,
0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x61, 0x63,
0x68, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x2b, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72,
0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65,
0x73, 0x70, 0x12, 0x65, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74,
0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a,
0x28, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x44,
0x4b, 0x2f, 0x4f, 0x70, 0x65, 0x6e, 0x2d, 0x49, 0x4d, 0x2d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -3981,7 +4122,7 @@ func file_group_group_proto_rawDescGZIP() []byte {
return file_group_group_proto_rawDescData
}
var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 66)
var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 69)
var file_group_group_proto_goTypes = []interface{}{
(*CreateGroupReq)(nil), // 0: OpenIMServer.group.CreateGroupReq
(*CreateGroupResp)(nil), // 1: OpenIMServer.group.CreateGroupResp
@ -4049,112 +4190,118 @@ var file_group_group_proto_goTypes = []interface{}{
(*GetGroupInfoCacheResp)(nil), // 63: OpenIMServer.group.GetGroupInfoCacheResp
(*GetGroupMemberCacheReq)(nil), // 64: OpenIMServer.group.GetGroupMemberCacheReq
(*GetGroupMemberCacheResp)(nil), // 65: OpenIMServer.group.GetGroupMemberCacheResp
(*sdkws.GroupInfo)(nil), // 66: OpenIMServer.sdkws.GroupInfo
(*sdkws.GroupInfoForSet)(nil), // 67: OpenIMServer.sdkws.GroupInfoForSet
(*sdkws.RequestPagination)(nil), // 68: OpenIMServer.sdkws.RequestPagination
(*sdkws.GroupRequest)(nil), // 69: OpenIMServer.sdkws.GroupRequest
(*sdkws.GroupMemberFullInfo)(nil), // 70: OpenIMServer.sdkws.GroupMemberFullInfo
(*wrapperspb.StringValue)(nil), // 71: OpenIMServer.protobuf.StringValue
(*wrapperspb.Int32Value)(nil), // 72: OpenIMServer.protobuf.Int32Value
(*GroupCreateCountReq)(nil), // 66: OpenIMServer.group.GroupCreateCountReq
(*GroupCreateCountResp)(nil), // 67: OpenIMServer.group.GroupCreateCountResp
nil, // 68: OpenIMServer.group.GroupCreateCountResp.CountEntry
(*sdkws.GroupInfo)(nil), // 69: OpenIMServer.sdkws.GroupInfo
(*sdkws.GroupInfoForSet)(nil), // 70: OpenIMServer.sdkws.GroupInfoForSet
(*sdkws.RequestPagination)(nil), // 71: OpenIMServer.sdkws.RequestPagination
(*sdkws.GroupRequest)(nil), // 72: OpenIMServer.sdkws.GroupRequest
(*sdkws.GroupMemberFullInfo)(nil), // 73: OpenIMServer.sdkws.GroupMemberFullInfo
(*wrapperspb.StringValue)(nil), // 74: OpenIMServer.protobuf.StringValue
(*wrapperspb.Int32Value)(nil), // 75: OpenIMServer.protobuf.Int32Value
}
var file_group_group_proto_depIdxs = []int32{
66, // 0: OpenIMServer.group.CreateGroupReq.groupInfo:type_name -> OpenIMServer.sdkws.GroupInfo
66, // 1: OpenIMServer.group.CreateGroupResp.groupInfo:type_name -> OpenIMServer.sdkws.GroupInfo
66, // 2: OpenIMServer.group.GetGroupsInfoResp.groupInfos:type_name -> OpenIMServer.sdkws.GroupInfo
67, // 3: OpenIMServer.group.SetGroupInfoReq.groupInfoForSet:type_name -> OpenIMServer.sdkws.GroupInfoForSet
68, // 4: OpenIMServer.group.GetGroupApplicationListReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
69, // 5: OpenIMServer.group.GetGroupApplicationListResp.groupRequests:type_name -> OpenIMServer.sdkws.GroupRequest
68, // 6: OpenIMServer.group.GetUserReqApplicationListReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
69, // 7: OpenIMServer.group.GetUserReqApplicationListResp.groupRequests:type_name -> OpenIMServer.sdkws.GroupRequest
68, // 8: OpenIMServer.group.GetGroupMemberListReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
70, // 9: OpenIMServer.group.GetGroupMemberListResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
70, // 10: OpenIMServer.group.GetGroupMembersInfoResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
68, // 11: OpenIMServer.group.GetJoinedGroupListReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
66, // 12: OpenIMServer.group.GetJoinedGroupListResp.groups:type_name -> OpenIMServer.sdkws.GroupInfo
68, // 13: OpenIMServer.group.GetGroupAllMemberReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
70, // 14: OpenIMServer.group.GetGroupAllMemberResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
66, // 15: OpenIMServer.group.CMSGroup.groupInfo:type_name -> OpenIMServer.sdkws.GroupInfo
68, // 16: OpenIMServer.group.GetGroupsReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
69, // 0: OpenIMServer.group.CreateGroupReq.groupInfo:type_name -> OpenIMServer.sdkws.GroupInfo
69, // 1: OpenIMServer.group.CreateGroupResp.groupInfo:type_name -> OpenIMServer.sdkws.GroupInfo
69, // 2: OpenIMServer.group.GetGroupsInfoResp.groupInfos:type_name -> OpenIMServer.sdkws.GroupInfo
70, // 3: OpenIMServer.group.SetGroupInfoReq.groupInfoForSet:type_name -> OpenIMServer.sdkws.GroupInfoForSet
71, // 4: OpenIMServer.group.GetGroupApplicationListReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
72, // 5: OpenIMServer.group.GetGroupApplicationListResp.groupRequests:type_name -> OpenIMServer.sdkws.GroupRequest
71, // 6: OpenIMServer.group.GetUserReqApplicationListReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
72, // 7: OpenIMServer.group.GetUserReqApplicationListResp.groupRequests:type_name -> OpenIMServer.sdkws.GroupRequest
71, // 8: OpenIMServer.group.GetGroupMemberListReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
73, // 9: OpenIMServer.group.GetGroupMemberListResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
73, // 10: OpenIMServer.group.GetGroupMembersInfoResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
71, // 11: OpenIMServer.group.GetJoinedGroupListReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
69, // 12: OpenIMServer.group.GetJoinedGroupListResp.groups:type_name -> OpenIMServer.sdkws.GroupInfo
71, // 13: OpenIMServer.group.GetGroupAllMemberReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
73, // 14: OpenIMServer.group.GetGroupAllMemberResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
69, // 15: OpenIMServer.group.CMSGroup.groupInfo:type_name -> OpenIMServer.sdkws.GroupInfo
71, // 16: OpenIMServer.group.GetGroupsReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
30, // 17: OpenIMServer.group.GetGroupsResp.groups:type_name -> OpenIMServer.group.CMSGroup
68, // 18: OpenIMServer.group.GetGroupMembersCMSReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
70, // 19: OpenIMServer.group.GetGroupMembersCMSResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
66, // 20: OpenIMServer.group.GetJoinedSuperGroupListResp.groups:type_name -> OpenIMServer.sdkws.GroupInfo
66, // 21: OpenIMServer.group.GetSuperGroupsInfoResp.groupInfos:type_name -> OpenIMServer.sdkws.GroupInfo
71, // 22: OpenIMServer.group.SetGroupMemberInfo.nickname:type_name -> OpenIMServer.protobuf.StringValue
71, // 23: OpenIMServer.group.SetGroupMemberInfo.faceURL:type_name -> OpenIMServer.protobuf.StringValue
72, // 24: OpenIMServer.group.SetGroupMemberInfo.roleLevel:type_name -> OpenIMServer.protobuf.Int32Value
71, // 25: OpenIMServer.group.SetGroupMemberInfo.ex:type_name -> OpenIMServer.protobuf.StringValue
71, // 18: OpenIMServer.group.GetGroupMembersCMSReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
73, // 19: OpenIMServer.group.GetGroupMembersCMSResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
69, // 20: OpenIMServer.group.GetJoinedSuperGroupListResp.groups:type_name -> OpenIMServer.sdkws.GroupInfo
69, // 21: OpenIMServer.group.GetSuperGroupsInfoResp.groupInfos:type_name -> OpenIMServer.sdkws.GroupInfo
74, // 22: OpenIMServer.group.SetGroupMemberInfo.nickname:type_name -> OpenIMServer.protobuf.StringValue
74, // 23: OpenIMServer.group.SetGroupMemberInfo.faceURL:type_name -> OpenIMServer.protobuf.StringValue
75, // 24: OpenIMServer.group.SetGroupMemberInfo.roleLevel:type_name -> OpenIMServer.protobuf.Int32Value
74, // 25: OpenIMServer.group.SetGroupMemberInfo.ex:type_name -> OpenIMServer.protobuf.StringValue
50, // 26: OpenIMServer.group.SetGroupMemberInfoReq.members:type_name -> OpenIMServer.group.SetGroupMemberInfo
54, // 27: OpenIMServer.group.GetGroupAbstractInfoResp.groupAbstractInfos:type_name -> OpenIMServer.group.GroupAbstractInfo
70, // 28: OpenIMServer.group.GetUserInGroupMembersResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
70, // 29: OpenIMServer.group.GetGroupMemberRoleLevelResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
66, // 30: OpenIMServer.group.GetGroupInfoCacheResp.groupInfo:type_name -> OpenIMServer.sdkws.GroupInfo
70, // 31: OpenIMServer.group.GetGroupMemberCacheResp.member:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
0, // 32: OpenIMServer.group.group.createGroup:input_type -> OpenIMServer.group.CreateGroupReq
12, // 33: OpenIMServer.group.group.joinGroup:input_type -> OpenIMServer.group.JoinGroupReq
16, // 34: OpenIMServer.group.group.quitGroup:input_type -> OpenIMServer.group.QuitGroupReq
2, // 35: OpenIMServer.group.group.getGroupsInfo:input_type -> OpenIMServer.group.GetGroupsInfoReq
4, // 36: OpenIMServer.group.group.setGroupInfo:input_type -> OpenIMServer.group.SetGroupInfoReq
6, // 37: OpenIMServer.group.group.getGroupApplicationList:input_type -> OpenIMServer.group.GetGroupApplicationListReq
8, // 38: OpenIMServer.group.group.getUserReqApplicationList:input_type -> OpenIMServer.group.GetUserReqApplicationListReq
10, // 39: OpenIMServer.group.group.transferGroupOwner:input_type -> OpenIMServer.group.TransferGroupOwnerReq
14, // 40: OpenIMServer.group.group.groupApplicationResponse:input_type -> OpenIMServer.group.GroupApplicationResponseReq
18, // 41: OpenIMServer.group.group.getGroupMemberList:input_type -> OpenIMServer.group.GetGroupMemberListReq
20, // 42: OpenIMServer.group.group.getGroupMembersInfo:input_type -> OpenIMServer.group.GetGroupMembersInfoReq
22, // 43: OpenIMServer.group.group.kickGroupMember:input_type -> OpenIMServer.group.KickGroupMemberReq
24, // 44: OpenIMServer.group.group.getJoinedGroupList:input_type -> OpenIMServer.group.GetJoinedGroupListReq
26, // 45: OpenIMServer.group.group.inviteUserToGroup:input_type -> OpenIMServer.group.InviteUserToGroupReq
31, // 46: OpenIMServer.group.group.getGroups:input_type -> OpenIMServer.group.GetGroupsReq
34, // 47: OpenIMServer.group.group.getGroupMembersCMS:input_type -> OpenIMServer.group.GetGroupMembersCMSReq
36, // 48: OpenIMServer.group.group.dismissGroup:input_type -> OpenIMServer.group.DismissGroupReq
38, // 49: OpenIMServer.group.group.muteGroupMember:input_type -> OpenIMServer.group.MuteGroupMemberReq
40, // 50: OpenIMServer.group.group.cancelMuteGroupMember:input_type -> OpenIMServer.group.CancelMuteGroupMemberReq
42, // 51: OpenIMServer.group.group.muteGroup:input_type -> OpenIMServer.group.MuteGroupReq
44, // 52: OpenIMServer.group.group.cancelMuteGroup:input_type -> OpenIMServer.group.CancelMuteGroupReq
46, // 53: OpenIMServer.group.group.getJoinedSuperGroupList:input_type -> OpenIMServer.group.GetJoinedSuperGroupListReq
48, // 54: OpenIMServer.group.group.getSuperGroupsInfo:input_type -> OpenIMServer.group.GetSuperGroupsInfoReq
51, // 55: OpenIMServer.group.group.setGroupMemberInfo:input_type -> OpenIMServer.group.SetGroupMemberInfoReq
53, // 56: OpenIMServer.group.group.getGroupAbstractInfo:input_type -> OpenIMServer.group.GetGroupAbstractInfoReq
56, // 57: OpenIMServer.group.group.getUserInGroupMembers:input_type -> OpenIMServer.group.GetUserInGroupMembersReq
58, // 58: OpenIMServer.group.group.getGroupMemberUserIDs:input_type -> OpenIMServer.group.GetGroupMemberUserIDsReq
60, // 59: OpenIMServer.group.group.GetGroupMemberRoleLevel:input_type -> OpenIMServer.group.GetGroupMemberRoleLevelReq
62, // 60: OpenIMServer.group.group.GetGroupInfoCache:input_type -> OpenIMServer.group.GetGroupInfoCacheReq
64, // 61: OpenIMServer.group.group.GetGroupMemberCache:input_type -> OpenIMServer.group.GetGroupMemberCacheReq
1, // 62: OpenIMServer.group.group.createGroup:output_type -> OpenIMServer.group.CreateGroupResp
13, // 63: OpenIMServer.group.group.joinGroup:output_type -> OpenIMServer.group.JoinGroupResp
17, // 64: OpenIMServer.group.group.quitGroup:output_type -> OpenIMServer.group.QuitGroupResp
3, // 65: OpenIMServer.group.group.getGroupsInfo:output_type -> OpenIMServer.group.GetGroupsInfoResp
5, // 66: OpenIMServer.group.group.setGroupInfo:output_type -> OpenIMServer.group.SetGroupInfoResp
7, // 67: OpenIMServer.group.group.getGroupApplicationList:output_type -> OpenIMServer.group.GetGroupApplicationListResp
9, // 68: OpenIMServer.group.group.getUserReqApplicationList:output_type -> OpenIMServer.group.GetUserReqApplicationListResp
11, // 69: OpenIMServer.group.group.transferGroupOwner:output_type -> OpenIMServer.group.TransferGroupOwnerResp
15, // 70: OpenIMServer.group.group.groupApplicationResponse:output_type -> OpenIMServer.group.GroupApplicationResponseResp
19, // 71: OpenIMServer.group.group.getGroupMemberList:output_type -> OpenIMServer.group.GetGroupMemberListResp
21, // 72: OpenIMServer.group.group.getGroupMembersInfo:output_type -> OpenIMServer.group.GetGroupMembersInfoResp
23, // 73: OpenIMServer.group.group.kickGroupMember:output_type -> OpenIMServer.group.KickGroupMemberResp
25, // 74: OpenIMServer.group.group.getJoinedGroupList:output_type -> OpenIMServer.group.GetJoinedGroupListResp
27, // 75: OpenIMServer.group.group.inviteUserToGroup:output_type -> OpenIMServer.group.InviteUserToGroupResp
32, // 76: OpenIMServer.group.group.getGroups:output_type -> OpenIMServer.group.GetGroupsResp
35, // 77: OpenIMServer.group.group.getGroupMembersCMS:output_type -> OpenIMServer.group.GetGroupMembersCMSResp
37, // 78: OpenIMServer.group.group.dismissGroup:output_type -> OpenIMServer.group.DismissGroupResp
39, // 79: OpenIMServer.group.group.muteGroupMember:output_type -> OpenIMServer.group.MuteGroupMemberResp
41, // 80: OpenIMServer.group.group.cancelMuteGroupMember:output_type -> OpenIMServer.group.CancelMuteGroupMemberResp
43, // 81: OpenIMServer.group.group.muteGroup:output_type -> OpenIMServer.group.MuteGroupResp
45, // 82: OpenIMServer.group.group.cancelMuteGroup:output_type -> OpenIMServer.group.CancelMuteGroupResp
47, // 83: OpenIMServer.group.group.getJoinedSuperGroupList:output_type -> OpenIMServer.group.GetJoinedSuperGroupListResp
49, // 84: OpenIMServer.group.group.getSuperGroupsInfo:output_type -> OpenIMServer.group.GetSuperGroupsInfoResp
52, // 85: OpenIMServer.group.group.setGroupMemberInfo:output_type -> OpenIMServer.group.SetGroupMemberInfoResp
55, // 86: OpenIMServer.group.group.getGroupAbstractInfo:output_type -> OpenIMServer.group.GetGroupAbstractInfoResp
57, // 87: OpenIMServer.group.group.getUserInGroupMembers:output_type -> OpenIMServer.group.GetUserInGroupMembersResp
59, // 88: OpenIMServer.group.group.getGroupMemberUserIDs:output_type -> OpenIMServer.group.GetGroupMemberUserIDsResp
61, // 89: OpenIMServer.group.group.GetGroupMemberRoleLevel:output_type -> OpenIMServer.group.GetGroupMemberRoleLevelResp
63, // 90: OpenIMServer.group.group.GetGroupInfoCache:output_type -> OpenIMServer.group.GetGroupInfoCacheResp
65, // 91: OpenIMServer.group.group.GetGroupMemberCache:output_type -> OpenIMServer.group.GetGroupMemberCacheResp
62, // [62:92] is the sub-list for method output_type
32, // [32:62] is the sub-list for method input_type
32, // [32:32] is the sub-list for extension type_name
32, // [32:32] is the sub-list for extension extendee
0, // [0:32] is the sub-list for field type_name
73, // 28: OpenIMServer.group.GetUserInGroupMembersResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
73, // 29: OpenIMServer.group.GetGroupMemberRoleLevelResp.members:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
69, // 30: OpenIMServer.group.GetGroupInfoCacheResp.groupInfo:type_name -> OpenIMServer.sdkws.GroupInfo
73, // 31: OpenIMServer.group.GetGroupMemberCacheResp.member:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
68, // 32: OpenIMServer.group.GroupCreateCountResp.count:type_name -> OpenIMServer.group.GroupCreateCountResp.CountEntry
0, // 33: OpenIMServer.group.group.createGroup:input_type -> OpenIMServer.group.CreateGroupReq
12, // 34: OpenIMServer.group.group.joinGroup:input_type -> OpenIMServer.group.JoinGroupReq
16, // 35: OpenIMServer.group.group.quitGroup:input_type -> OpenIMServer.group.QuitGroupReq
2, // 36: OpenIMServer.group.group.getGroupsInfo:input_type -> OpenIMServer.group.GetGroupsInfoReq
4, // 37: OpenIMServer.group.group.setGroupInfo:input_type -> OpenIMServer.group.SetGroupInfoReq
6, // 38: OpenIMServer.group.group.getGroupApplicationList:input_type -> OpenIMServer.group.GetGroupApplicationListReq
8, // 39: OpenIMServer.group.group.getUserReqApplicationList:input_type -> OpenIMServer.group.GetUserReqApplicationListReq
10, // 40: OpenIMServer.group.group.transferGroupOwner:input_type -> OpenIMServer.group.TransferGroupOwnerReq
14, // 41: OpenIMServer.group.group.groupApplicationResponse:input_type -> OpenIMServer.group.GroupApplicationResponseReq
18, // 42: OpenIMServer.group.group.getGroupMemberList:input_type -> OpenIMServer.group.GetGroupMemberListReq
20, // 43: OpenIMServer.group.group.getGroupMembersInfo:input_type -> OpenIMServer.group.GetGroupMembersInfoReq
22, // 44: OpenIMServer.group.group.kickGroupMember:input_type -> OpenIMServer.group.KickGroupMemberReq
24, // 45: OpenIMServer.group.group.getJoinedGroupList:input_type -> OpenIMServer.group.GetJoinedGroupListReq
26, // 46: OpenIMServer.group.group.inviteUserToGroup:input_type -> OpenIMServer.group.InviteUserToGroupReq
31, // 47: OpenIMServer.group.group.getGroups:input_type -> OpenIMServer.group.GetGroupsReq
34, // 48: OpenIMServer.group.group.getGroupMembersCMS:input_type -> OpenIMServer.group.GetGroupMembersCMSReq
36, // 49: OpenIMServer.group.group.dismissGroup:input_type -> OpenIMServer.group.DismissGroupReq
38, // 50: OpenIMServer.group.group.muteGroupMember:input_type -> OpenIMServer.group.MuteGroupMemberReq
40, // 51: OpenIMServer.group.group.cancelMuteGroupMember:input_type -> OpenIMServer.group.CancelMuteGroupMemberReq
42, // 52: OpenIMServer.group.group.muteGroup:input_type -> OpenIMServer.group.MuteGroupReq
44, // 53: OpenIMServer.group.group.cancelMuteGroup:input_type -> OpenIMServer.group.CancelMuteGroupReq
46, // 54: OpenIMServer.group.group.getJoinedSuperGroupList:input_type -> OpenIMServer.group.GetJoinedSuperGroupListReq
48, // 55: OpenIMServer.group.group.getSuperGroupsInfo:input_type -> OpenIMServer.group.GetSuperGroupsInfoReq
51, // 56: OpenIMServer.group.group.setGroupMemberInfo:input_type -> OpenIMServer.group.SetGroupMemberInfoReq
53, // 57: OpenIMServer.group.group.getGroupAbstractInfo:input_type -> OpenIMServer.group.GetGroupAbstractInfoReq
56, // 58: OpenIMServer.group.group.getUserInGroupMembers:input_type -> OpenIMServer.group.GetUserInGroupMembersReq
58, // 59: OpenIMServer.group.group.getGroupMemberUserIDs:input_type -> OpenIMServer.group.GetGroupMemberUserIDsReq
60, // 60: OpenIMServer.group.group.GetGroupMemberRoleLevel:input_type -> OpenIMServer.group.GetGroupMemberRoleLevelReq
62, // 61: OpenIMServer.group.group.GetGroupInfoCache:input_type -> OpenIMServer.group.GetGroupInfoCacheReq
64, // 62: OpenIMServer.group.group.GetGroupMemberCache:input_type -> OpenIMServer.group.GetGroupMemberCacheReq
66, // 63: OpenIMServer.group.group.GroupCreateCount:input_type -> OpenIMServer.group.GroupCreateCountReq
1, // 64: OpenIMServer.group.group.createGroup:output_type -> OpenIMServer.group.CreateGroupResp
13, // 65: OpenIMServer.group.group.joinGroup:output_type -> OpenIMServer.group.JoinGroupResp
17, // 66: OpenIMServer.group.group.quitGroup:output_type -> OpenIMServer.group.QuitGroupResp
3, // 67: OpenIMServer.group.group.getGroupsInfo:output_type -> OpenIMServer.group.GetGroupsInfoResp
5, // 68: OpenIMServer.group.group.setGroupInfo:output_type -> OpenIMServer.group.SetGroupInfoResp
7, // 69: OpenIMServer.group.group.getGroupApplicationList:output_type -> OpenIMServer.group.GetGroupApplicationListResp
9, // 70: OpenIMServer.group.group.getUserReqApplicationList:output_type -> OpenIMServer.group.GetUserReqApplicationListResp
11, // 71: OpenIMServer.group.group.transferGroupOwner:output_type -> OpenIMServer.group.TransferGroupOwnerResp
15, // 72: OpenIMServer.group.group.groupApplicationResponse:output_type -> OpenIMServer.group.GroupApplicationResponseResp
19, // 73: OpenIMServer.group.group.getGroupMemberList:output_type -> OpenIMServer.group.GetGroupMemberListResp
21, // 74: OpenIMServer.group.group.getGroupMembersInfo:output_type -> OpenIMServer.group.GetGroupMembersInfoResp
23, // 75: OpenIMServer.group.group.kickGroupMember:output_type -> OpenIMServer.group.KickGroupMemberResp
25, // 76: OpenIMServer.group.group.getJoinedGroupList:output_type -> OpenIMServer.group.GetJoinedGroupListResp
27, // 77: OpenIMServer.group.group.inviteUserToGroup:output_type -> OpenIMServer.group.InviteUserToGroupResp
32, // 78: OpenIMServer.group.group.getGroups:output_type -> OpenIMServer.group.GetGroupsResp
35, // 79: OpenIMServer.group.group.getGroupMembersCMS:output_type -> OpenIMServer.group.GetGroupMembersCMSResp
37, // 80: OpenIMServer.group.group.dismissGroup:output_type -> OpenIMServer.group.DismissGroupResp
39, // 81: OpenIMServer.group.group.muteGroupMember:output_type -> OpenIMServer.group.MuteGroupMemberResp
41, // 82: OpenIMServer.group.group.cancelMuteGroupMember:output_type -> OpenIMServer.group.CancelMuteGroupMemberResp
43, // 83: OpenIMServer.group.group.muteGroup:output_type -> OpenIMServer.group.MuteGroupResp
45, // 84: OpenIMServer.group.group.cancelMuteGroup:output_type -> OpenIMServer.group.CancelMuteGroupResp
47, // 85: OpenIMServer.group.group.getJoinedSuperGroupList:output_type -> OpenIMServer.group.GetJoinedSuperGroupListResp
49, // 86: OpenIMServer.group.group.getSuperGroupsInfo:output_type -> OpenIMServer.group.GetSuperGroupsInfoResp
52, // 87: OpenIMServer.group.group.setGroupMemberInfo:output_type -> OpenIMServer.group.SetGroupMemberInfoResp
55, // 88: OpenIMServer.group.group.getGroupAbstractInfo:output_type -> OpenIMServer.group.GetGroupAbstractInfoResp
57, // 89: OpenIMServer.group.group.getUserInGroupMembers:output_type -> OpenIMServer.group.GetUserInGroupMembersResp
59, // 90: OpenIMServer.group.group.getGroupMemberUserIDs:output_type -> OpenIMServer.group.GetGroupMemberUserIDsResp
61, // 91: OpenIMServer.group.group.GetGroupMemberRoleLevel:output_type -> OpenIMServer.group.GetGroupMemberRoleLevelResp
63, // 92: OpenIMServer.group.group.GetGroupInfoCache:output_type -> OpenIMServer.group.GetGroupInfoCacheResp
65, // 93: OpenIMServer.group.group.GetGroupMemberCache:output_type -> OpenIMServer.group.GetGroupMemberCacheResp
67, // 94: OpenIMServer.group.group.GroupCreateCount:output_type -> OpenIMServer.group.GroupCreateCountResp
64, // [64:95] is the sub-list for method output_type
33, // [33:64] is the sub-list for method input_type
33, // [33:33] is the sub-list for extension type_name
33, // [33:33] is the sub-list for extension extendee
0, // [0:33] is the sub-list for field type_name
}
func init() { file_group_group_proto_init() }
@ -4955,6 +5102,30 @@ func file_group_group_proto_init() {
return nil
}
}
file_group_group_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupCreateCountReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_group_group_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupCreateCountResp); 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{
@ -4962,7 +5133,7 @@ func file_group_group_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_group_group_proto_rawDesc,
NumEnums: 0,
NumMessages: 66,
NumMessages: 69,
NumExtensions: 0,
NumServices: 1,
},
@ -5045,6 +5216,7 @@ type GroupClient interface {
GetGroupMemberRoleLevel(ctx context.Context, in *GetGroupMemberRoleLevelReq, opts ...grpc.CallOption) (*GetGroupMemberRoleLevelResp, error)
GetGroupInfoCache(ctx context.Context, in *GetGroupInfoCacheReq, opts ...grpc.CallOption) (*GetGroupInfoCacheResp, error)
GetGroupMemberCache(ctx context.Context, in *GetGroupMemberCacheReq, opts ...grpc.CallOption) (*GetGroupMemberCacheResp, error)
GroupCreateCount(ctx context.Context, in *GroupCreateCountReq, opts ...grpc.CallOption) (*GroupCreateCountResp, error)
}
type groupClient struct {
@ -5325,6 +5497,15 @@ func (c *groupClient) GetGroupMemberCache(ctx context.Context, in *GetGroupMembe
return out, nil
}
func (c *groupClient) GroupCreateCount(ctx context.Context, in *GroupCreateCountReq, opts ...grpc.CallOption) (*GroupCreateCountResp, error) {
out := new(GroupCreateCountResp)
err := c.cc.Invoke(ctx, "/OpenIMServer.group.group/GroupCreateCount", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// GroupServer is the server API for Group service.
type GroupServer interface {
// 创建群
@ -5384,6 +5565,7 @@ type GroupServer interface {
GetGroupMemberRoleLevel(context.Context, *GetGroupMemberRoleLevelReq) (*GetGroupMemberRoleLevelResp, error)
GetGroupInfoCache(context.Context, *GetGroupInfoCacheReq) (*GetGroupInfoCacheResp, error)
GetGroupMemberCache(context.Context, *GetGroupMemberCacheReq) (*GetGroupMemberCacheResp, error)
GroupCreateCount(context.Context, *GroupCreateCountReq) (*GroupCreateCountResp, error)
}
// UnimplementedGroupServer can be embedded to have forward compatible implementations.
@ -5480,6 +5662,9 @@ func (*UnimplementedGroupServer) GetGroupInfoCache(context.Context, *GetGroupInf
func (*UnimplementedGroupServer) GetGroupMemberCache(context.Context, *GetGroupMemberCacheReq) (*GetGroupMemberCacheResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetGroupMemberCache not implemented")
}
func (*UnimplementedGroupServer) GroupCreateCount(context.Context, *GroupCreateCountReq) (*GroupCreateCountResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GroupCreateCount not implemented")
}
func RegisterGroupServer(s *grpc.Server, srv GroupServer) {
s.RegisterService(&_Group_serviceDesc, srv)
@ -6025,6 +6210,24 @@ func _Group_GetGroupMemberCache_Handler(srv interface{}, ctx context.Context, de
return interceptor(ctx, in, info, handler)
}
func _Group_GroupCreateCount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GroupCreateCountReq)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(GroupServer).GroupCreateCount(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/OpenIMServer.group.group/GroupCreateCount",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(GroupServer).GroupCreateCount(ctx, req.(*GroupCreateCountReq))
}
return interceptor(ctx, in, info, handler)
}
var _Group_serviceDesc = grpc.ServiceDesc{
ServiceName: "OpenIMServer.group.group",
HandlerType: (*GroupServer)(nil),
@ -6149,6 +6352,10 @@ var _Group_serviceDesc = grpc.ServiceDesc{
MethodName: "GetGroupMemberCache",
Handler: _Group_GetGroupMemberCache_Handler,
},
{
MethodName: "GroupCreateCount",
Handler: _Group_GroupCreateCount_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "group/group.proto",

@ -318,6 +318,17 @@ message GetGroupMemberCacheResp {
sdkws.GroupMemberFullInfo member = 1;
}
message GroupCreateCountReq {
int64 start = 1;
int64 end = 2;
}
message GroupCreateCountResp {
int64 total = 1;
int64 before = 2;
map<string, int64> count = 3;
}
service group{
//
rpc createGroup(CreateGroupReq) returns(CreateGroupResp);
@ -380,6 +391,8 @@ service group{
rpc GetGroupInfoCache(GetGroupInfoCacheReq) returns (GetGroupInfoCacheResp);
rpc GetGroupMemberCache(GetGroupMemberCacheReq) returns (GetGroupMemberCacheResp);
rpc GroupCreateCount(GroupCreateCountReq) returns (GroupCreateCountResp);
}

@ -2949,9 +2949,10 @@ type GetActiveUserResp struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MsgCount int64 `protobuf:"varint,1,opt,name=msgCount,proto3" json:"msgCount"`
UserCount int64 `protobuf:"varint,2,opt,name=userCount,proto3" json:"userCount"`
Users []*ActiveUser `protobuf:"bytes,3,rep,name=users,proto3" json:"users"`
MsgCount int64 `protobuf:"varint,1,opt,name=msgCount,proto3" json:"msgCount"`
UserCount int64 `protobuf:"varint,2,opt,name=userCount,proto3" json:"userCount"`
DateCount map[string]int64 `protobuf:"bytes,3,rep,name=dateCount,proto3" json:"dateCount" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
Users []*ActiveUser `protobuf:"bytes,4,rep,name=users,proto3" json:"users"`
}
func (x *GetActiveUserResp) Reset() {
@ -3000,6 +3001,13 @@ func (x *GetActiveUserResp) GetUserCount() int64 {
return 0
}
func (x *GetActiveUserResp) GetDateCount() map[string]int64 {
if x != nil {
return x.DateCount
}
return nil
}
func (x *GetActiveUserResp) GetUsers() []*ActiveUser {
if x != nil {
return x.Users
@ -3480,15 +3488,24 @@ var file_msg_msg_proto_rawDesc = []byte{
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64,
0x6b, 0x77, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x75, 0x73,
0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74,
0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x74,
0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a,
0x0a, 0x08, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03,
0x52, 0x08, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73,
0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75,
0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72,
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76,
0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x32, 0xff, 0x11, 0x0a,
0x73, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65,
0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47,
0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70,
0x2e, 0x44, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
0x09, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x05, 0x75, 0x73,
0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x41, 0x63, 0x74,
0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x1a, 0x3c,
0x0a, 0x0e, 0x44, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0xff, 0x11, 0x0a,
0x03, 0x6d, 0x73, 0x67, 0x12, 0x50, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x65,
0x71, 0x12, 0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71,
@ -3651,7 +3668,7 @@ func file_msg_msg_proto_rawDescGZIP() []byte {
return file_msg_msg_proto_rawDescData
}
var file_msg_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 60)
var file_msg_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 61)
var file_msg_msg_proto_goTypes = []interface{}{
(*MsgDataToMQ)(nil), // 0: OpenIMServer.msg.MsgDataToMQ
(*MsgDataToDB)(nil), // 1: OpenIMServer.msg.MsgDataToDB
@ -3713,99 +3730,101 @@ var file_msg_msg_proto_goTypes = []interface{}{
nil, // 57: OpenIMServer.msg.SingleMessageExtensionResult.ReactionExtensionsEntry
nil, // 58: OpenIMServer.msg.ExtendMsg.ReactionExtensionsEntry
nil, // 59: OpenIMServer.msg.GetConversationsHasReadAndMaxSeqResp.SeqsEntry
(*sdkws.MsgData)(nil), // 60: OpenIMServer.sdkws.MsgData
(*wrapperspb.StringValue)(nil), // 61: OpenIMServer.protobuf.StringValue
(*sdkws.KeyValue)(nil), // 62: OpenIMServer.sdkws.KeyValue
(*sdkws.RequestPagination)(nil), // 63: OpenIMServer.sdkws.RequestPagination
(*sdkws.UserInfo)(nil), // 64: OpenIMServer.sdkws.UserInfo
(*sdkws.GetMaxSeqReq)(nil), // 65: OpenIMServer.sdkws.GetMaxSeqReq
(*sdkws.PullMessageBySeqsReq)(nil), // 66: OpenIMServer.sdkws.PullMessageBySeqsReq
(*sdkws.GetMaxSeqResp)(nil), // 67: OpenIMServer.sdkws.GetMaxSeqResp
(*sdkws.PullMessageBySeqsResp)(nil), // 68: OpenIMServer.sdkws.PullMessageBySeqsResp
nil, // 60: OpenIMServer.msg.GetActiveUserResp.DateCountEntry
(*sdkws.MsgData)(nil), // 61: OpenIMServer.sdkws.MsgData
(*wrapperspb.StringValue)(nil), // 62: OpenIMServer.protobuf.StringValue
(*sdkws.KeyValue)(nil), // 63: OpenIMServer.sdkws.KeyValue
(*sdkws.RequestPagination)(nil), // 64: OpenIMServer.sdkws.RequestPagination
(*sdkws.UserInfo)(nil), // 65: OpenIMServer.sdkws.UserInfo
(*sdkws.GetMaxSeqReq)(nil), // 66: OpenIMServer.sdkws.GetMaxSeqReq
(*sdkws.PullMessageBySeqsReq)(nil), // 67: OpenIMServer.sdkws.PullMessageBySeqsReq
(*sdkws.GetMaxSeqResp)(nil), // 68: OpenIMServer.sdkws.GetMaxSeqResp
(*sdkws.PullMessageBySeqsResp)(nil), // 69: OpenIMServer.sdkws.PullMessageBySeqsResp
}
var file_msg_msg_proto_depIdxs = []int32{
60, // 0: OpenIMServer.msg.MsgDataToMQ.msgData:type_name -> OpenIMServer.sdkws.MsgData
60, // 1: OpenIMServer.msg.MsgDataToDB.msgData:type_name -> OpenIMServer.sdkws.MsgData
60, // 2: OpenIMServer.msg.PushMsgDataToMQ.msgData:type_name -> OpenIMServer.sdkws.MsgData
60, // 3: OpenIMServer.msg.MsgDataToMongoByMQ.msgData:type_name -> OpenIMServer.sdkws.MsgData
60, // 4: OpenIMServer.msg.SendMsgReq.msgData:type_name -> OpenIMServer.sdkws.MsgData
61, // 0: OpenIMServer.msg.MsgDataToMQ.msgData:type_name -> OpenIMServer.sdkws.MsgData
61, // 1: OpenIMServer.msg.MsgDataToDB.msgData:type_name -> OpenIMServer.sdkws.MsgData
61, // 2: OpenIMServer.msg.PushMsgDataToMQ.msgData:type_name -> OpenIMServer.sdkws.MsgData
61, // 3: OpenIMServer.msg.MsgDataToMongoByMQ.msgData:type_name -> OpenIMServer.sdkws.MsgData
61, // 4: OpenIMServer.msg.SendMsgReq.msgData:type_name -> OpenIMServer.sdkws.MsgData
54, // 5: OpenIMServer.msg.ModifyMessageReactionExtensionsReq.reactionExtensions:type_name -> OpenIMServer.msg.ModifyMessageReactionExtensionsReq.ReactionExtensionsEntry
61, // 6: OpenIMServer.msg.ModifyMessageReactionExtensionsReq.ex:type_name -> OpenIMServer.protobuf.StringValue
61, // 7: OpenIMServer.msg.ModifyMessageReactionExtensionsReq.attachedInfo:type_name -> OpenIMServer.protobuf.StringValue
62, // 6: OpenIMServer.msg.ModifyMessageReactionExtensionsReq.ex:type_name -> OpenIMServer.protobuf.StringValue
62, // 7: OpenIMServer.msg.ModifyMessageReactionExtensionsReq.attachedInfo:type_name -> OpenIMServer.protobuf.StringValue
55, // 8: OpenIMServer.msg.SetMessageReactionExtensionsReq.reactionExtensions:type_name -> OpenIMServer.msg.SetMessageReactionExtensionsReq.ReactionExtensionsEntry
61, // 9: OpenIMServer.msg.SetMessageReactionExtensionsReq.ex:type_name -> OpenIMServer.protobuf.StringValue
61, // 10: OpenIMServer.msg.SetMessageReactionExtensionsReq.attachedInfo:type_name -> OpenIMServer.protobuf.StringValue
62, // 9: OpenIMServer.msg.SetMessageReactionExtensionsReq.ex:type_name -> OpenIMServer.protobuf.StringValue
62, // 10: OpenIMServer.msg.SetMessageReactionExtensionsReq.attachedInfo:type_name -> OpenIMServer.protobuf.StringValue
23, // 11: OpenIMServer.msg.SetMessageReactionExtensionsResp.result:type_name -> OpenIMServer.msg.KeyValueResp
56, // 12: OpenIMServer.msg.GetMessagesReactionExtensionsReq.messageReactionKeys:type_name -> OpenIMServer.msg.GetMessagesReactionExtensionsReq.MessageReactionKey
17, // 13: OpenIMServer.msg.GetMessagesReactionExtensionsResp.singleMessageResult:type_name -> OpenIMServer.msg.SingleMessageExtensionResult
57, // 14: OpenIMServer.msg.SingleMessageExtensionResult.reactionExtensions:type_name -> OpenIMServer.msg.SingleMessageExtensionResult.ReactionExtensionsEntry
21, // 15: OpenIMServer.msg.ModifyMessageReactionExtensionsResp.successList:type_name -> OpenIMServer.msg.ExtendMsgResp
21, // 16: OpenIMServer.msg.ModifyMessageReactionExtensionsResp.failedList:type_name -> OpenIMServer.msg.ExtendMsgResp
62, // 17: OpenIMServer.msg.DeleteMessagesReactionExtensionsReq.reactionExtensions:type_name -> OpenIMServer.sdkws.KeyValue
63, // 17: OpenIMServer.msg.DeleteMessagesReactionExtensionsReq.reactionExtensions:type_name -> OpenIMServer.sdkws.KeyValue
23, // 18: OpenIMServer.msg.DeleteMessagesReactionExtensionsResp.result:type_name -> OpenIMServer.msg.KeyValueResp
22, // 19: OpenIMServer.msg.ExtendMsgResp.extendMsg:type_name -> OpenIMServer.msg.ExtendMsg
58, // 20: OpenIMServer.msg.ExtendMsg.reactionExtensions:type_name -> OpenIMServer.msg.ExtendMsg.ReactionExtensionsEntry
62, // 21: OpenIMServer.msg.KeyValueResp.keyValue:type_name -> OpenIMServer.sdkws.KeyValue
60, // 22: OpenIMServer.msg.MsgDataToModifyByMQ.messages:type_name -> OpenIMServer.sdkws.MsgData
63, // 21: OpenIMServer.msg.KeyValueResp.keyValue:type_name -> OpenIMServer.sdkws.KeyValue
61, // 22: OpenIMServer.msg.MsgDataToModifyByMQ.messages:type_name -> OpenIMServer.sdkws.MsgData
35, // 23: OpenIMServer.msg.ClearConversationsMsgReq.deleteSyncOpt:type_name -> OpenIMServer.msg.DeleteSyncOpt
35, // 24: OpenIMServer.msg.UserClearAllMsgReq.deleteSyncOpt:type_name -> OpenIMServer.msg.DeleteSyncOpt
35, // 25: OpenIMServer.msg.DeleteMsgsReq.deleteSyncOpt:type_name -> OpenIMServer.msg.DeleteSyncOpt
59, // 26: OpenIMServer.msg.GetConversationsHasReadAndMaxSeqResp.seqs:type_name -> OpenIMServer.msg.GetConversationsHasReadAndMaxSeqResp.SeqsEntry
63, // 27: OpenIMServer.msg.GetActiveUserReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
64, // 28: OpenIMServer.msg.ActiveUser.user:type_name -> OpenIMServer.sdkws.UserInfo
52, // 29: OpenIMServer.msg.GetActiveUserResp.users:type_name -> OpenIMServer.msg.ActiveUser
62, // 30: OpenIMServer.msg.ModifyMessageReactionExtensionsReq.ReactionExtensionsEntry.value:type_name -> OpenIMServer.sdkws.KeyValue
62, // 31: OpenIMServer.msg.SetMessageReactionExtensionsReq.ReactionExtensionsEntry.value:type_name -> OpenIMServer.sdkws.KeyValue
62, // 32: OpenIMServer.msg.SingleMessageExtensionResult.ReactionExtensionsEntry.value:type_name -> OpenIMServer.sdkws.KeyValue
23, // 33: OpenIMServer.msg.ExtendMsg.ReactionExtensionsEntry.value:type_name -> OpenIMServer.msg.KeyValueResp
49, // 34: OpenIMServer.msg.GetConversationsHasReadAndMaxSeqResp.SeqsEntry.value:type_name -> OpenIMServer.msg.Seqs
65, // 35: OpenIMServer.msg.msg.GetMaxSeq:input_type -> OpenIMServer.sdkws.GetMaxSeqReq
46, // 36: OpenIMServer.msg.msg.GetConversationMaxSeq:input_type -> OpenIMServer.msg.GetConversationMaxSeqReq
66, // 37: OpenIMServer.msg.msg.PullMessageBySeqs:input_type -> OpenIMServer.sdkws.PullMessageBySeqsReq
6, // 38: OpenIMServer.msg.msg.SendMsg:input_type -> OpenIMServer.msg.SendMsgReq
36, // 39: OpenIMServer.msg.msg.ClearConversationsMsg:input_type -> OpenIMServer.msg.ClearConversationsMsgReq
38, // 40: OpenIMServer.msg.msg.UserClearAllMsg:input_type -> OpenIMServer.msg.UserClearAllMsgReq
40, // 41: OpenIMServer.msg.msg.DeleteMsgs:input_type -> OpenIMServer.msg.DeleteMsgsReq
44, // 42: OpenIMServer.msg.msg.DeleteMsgPhysicalBySeq:input_type -> OpenIMServer.msg.DeleteMsgPhysicalBySeqReq
42, // 43: OpenIMServer.msg.msg.DeleteMsgPhysical:input_type -> OpenIMServer.msg.DeleteMsgPhysicalReq
8, // 44: OpenIMServer.msg.msg.SetSendMsgStatus:input_type -> OpenIMServer.msg.SetSendMsgStatusReq
10, // 45: OpenIMServer.msg.msg.GetSendMsgStatus:input_type -> OpenIMServer.msg.GetSendMsgStatusReq
27, // 46: OpenIMServer.msg.msg.RevokeMsg:input_type -> OpenIMServer.msg.RevokeMsgReq
29, // 47: OpenIMServer.msg.msg.MarkMsgsAsRead:input_type -> OpenIMServer.msg.MarkMsgsAsReadReq
31, // 48: OpenIMServer.msg.msg.MarkConversationAsRead:input_type -> OpenIMServer.msg.MarkConversationAsReadReq
33, // 49: OpenIMServer.msg.msg.SetConversationHasReadSeq:input_type -> OpenIMServer.msg.SetConversationHasReadSeqReq
13, // 50: OpenIMServer.msg.msg.SetMessageReactionExtensions:input_type -> OpenIMServer.msg.SetMessageReactionExtensionsReq
15, // 51: OpenIMServer.msg.msg.GetMessagesReactionExtensions:input_type -> OpenIMServer.msg.GetMessagesReactionExtensionsReq
12, // 52: OpenIMServer.msg.msg.AddMessageReactionExtensions:input_type -> OpenIMServer.msg.ModifyMessageReactionExtensionsReq
19, // 53: OpenIMServer.msg.msg.DeleteMessageReactionExtensions:input_type -> OpenIMServer.msg.DeleteMessagesReactionExtensionsReq
48, // 54: OpenIMServer.msg.msg.GetConversationsHasReadAndMaxSeq:input_type -> OpenIMServer.msg.GetConversationsHasReadAndMaxSeqReq
51, // 55: OpenIMServer.msg.msg.GetActiveUser:input_type -> OpenIMServer.msg.GetActiveUserReq
67, // 56: OpenIMServer.msg.msg.GetMaxSeq:output_type -> OpenIMServer.sdkws.GetMaxSeqResp
47, // 57: OpenIMServer.msg.msg.GetConversationMaxSeq:output_type -> OpenIMServer.msg.GetConversationMaxSeqResp
68, // 58: OpenIMServer.msg.msg.PullMessageBySeqs:output_type -> OpenIMServer.sdkws.PullMessageBySeqsResp
7, // 59: OpenIMServer.msg.msg.SendMsg:output_type -> OpenIMServer.msg.SendMsgResp
37, // 60: OpenIMServer.msg.msg.ClearConversationsMsg:output_type -> OpenIMServer.msg.ClearConversationsMsgResp
39, // 61: OpenIMServer.msg.msg.UserClearAllMsg:output_type -> OpenIMServer.msg.UserClearAllMsgResp
41, // 62: OpenIMServer.msg.msg.DeleteMsgs:output_type -> OpenIMServer.msg.DeleteMsgsResp
45, // 63: OpenIMServer.msg.msg.DeleteMsgPhysicalBySeq:output_type -> OpenIMServer.msg.DeleteMsgPhysicalBySeqResp
43, // 64: OpenIMServer.msg.msg.DeleteMsgPhysical:output_type -> OpenIMServer.msg.DeleteMsgPhysicalResp
9, // 65: OpenIMServer.msg.msg.SetSendMsgStatus:output_type -> OpenIMServer.msg.SetSendMsgStatusResp
11, // 66: OpenIMServer.msg.msg.GetSendMsgStatus:output_type -> OpenIMServer.msg.GetSendMsgStatusResp
28, // 67: OpenIMServer.msg.msg.RevokeMsg:output_type -> OpenIMServer.msg.RevokeMsgResp
30, // 68: OpenIMServer.msg.msg.MarkMsgsAsRead:output_type -> OpenIMServer.msg.MarkMsgsAsReadResp
32, // 69: OpenIMServer.msg.msg.MarkConversationAsRead:output_type -> OpenIMServer.msg.MarkConversationAsReadResp
34, // 70: OpenIMServer.msg.msg.SetConversationHasReadSeq:output_type -> OpenIMServer.msg.SetConversationHasReadSeqResp
14, // 71: OpenIMServer.msg.msg.SetMessageReactionExtensions:output_type -> OpenIMServer.msg.SetMessageReactionExtensionsResp
16, // 72: OpenIMServer.msg.msg.GetMessagesReactionExtensions:output_type -> OpenIMServer.msg.GetMessagesReactionExtensionsResp
18, // 73: OpenIMServer.msg.msg.AddMessageReactionExtensions:output_type -> OpenIMServer.msg.ModifyMessageReactionExtensionsResp
20, // 74: OpenIMServer.msg.msg.DeleteMessageReactionExtensions:output_type -> OpenIMServer.msg.DeleteMessagesReactionExtensionsResp
50, // 75: OpenIMServer.msg.msg.GetConversationsHasReadAndMaxSeq:output_type -> OpenIMServer.msg.GetConversationsHasReadAndMaxSeqResp
53, // 76: OpenIMServer.msg.msg.GetActiveUser:output_type -> OpenIMServer.msg.GetActiveUserResp
56, // [56:77] is the sub-list for method output_type
35, // [35:56] is the sub-list for method input_type
35, // [35:35] is the sub-list for extension type_name
35, // [35:35] is the sub-list for extension extendee
0, // [0:35] is the sub-list for field type_name
64, // 27: OpenIMServer.msg.GetActiveUserReq.pagination:type_name -> OpenIMServer.sdkws.RequestPagination
65, // 28: OpenIMServer.msg.ActiveUser.user:type_name -> OpenIMServer.sdkws.UserInfo
60, // 29: OpenIMServer.msg.GetActiveUserResp.dateCount:type_name -> OpenIMServer.msg.GetActiveUserResp.DateCountEntry
52, // 30: OpenIMServer.msg.GetActiveUserResp.users:type_name -> OpenIMServer.msg.ActiveUser
63, // 31: OpenIMServer.msg.ModifyMessageReactionExtensionsReq.ReactionExtensionsEntry.value:type_name -> OpenIMServer.sdkws.KeyValue
63, // 32: OpenIMServer.msg.SetMessageReactionExtensionsReq.ReactionExtensionsEntry.value:type_name -> OpenIMServer.sdkws.KeyValue
63, // 33: OpenIMServer.msg.SingleMessageExtensionResult.ReactionExtensionsEntry.value:type_name -> OpenIMServer.sdkws.KeyValue
23, // 34: OpenIMServer.msg.ExtendMsg.ReactionExtensionsEntry.value:type_name -> OpenIMServer.msg.KeyValueResp
49, // 35: OpenIMServer.msg.GetConversationsHasReadAndMaxSeqResp.SeqsEntry.value:type_name -> OpenIMServer.msg.Seqs
66, // 36: OpenIMServer.msg.msg.GetMaxSeq:input_type -> OpenIMServer.sdkws.GetMaxSeqReq
46, // 37: OpenIMServer.msg.msg.GetConversationMaxSeq:input_type -> OpenIMServer.msg.GetConversationMaxSeqReq
67, // 38: OpenIMServer.msg.msg.PullMessageBySeqs:input_type -> OpenIMServer.sdkws.PullMessageBySeqsReq
6, // 39: OpenIMServer.msg.msg.SendMsg:input_type -> OpenIMServer.msg.SendMsgReq
36, // 40: OpenIMServer.msg.msg.ClearConversationsMsg:input_type -> OpenIMServer.msg.ClearConversationsMsgReq
38, // 41: OpenIMServer.msg.msg.UserClearAllMsg:input_type -> OpenIMServer.msg.UserClearAllMsgReq
40, // 42: OpenIMServer.msg.msg.DeleteMsgs:input_type -> OpenIMServer.msg.DeleteMsgsReq
44, // 43: OpenIMServer.msg.msg.DeleteMsgPhysicalBySeq:input_type -> OpenIMServer.msg.DeleteMsgPhysicalBySeqReq
42, // 44: OpenIMServer.msg.msg.DeleteMsgPhysical:input_type -> OpenIMServer.msg.DeleteMsgPhysicalReq
8, // 45: OpenIMServer.msg.msg.SetSendMsgStatus:input_type -> OpenIMServer.msg.SetSendMsgStatusReq
10, // 46: OpenIMServer.msg.msg.GetSendMsgStatus:input_type -> OpenIMServer.msg.GetSendMsgStatusReq
27, // 47: OpenIMServer.msg.msg.RevokeMsg:input_type -> OpenIMServer.msg.RevokeMsgReq
29, // 48: OpenIMServer.msg.msg.MarkMsgsAsRead:input_type -> OpenIMServer.msg.MarkMsgsAsReadReq
31, // 49: OpenIMServer.msg.msg.MarkConversationAsRead:input_type -> OpenIMServer.msg.MarkConversationAsReadReq
33, // 50: OpenIMServer.msg.msg.SetConversationHasReadSeq:input_type -> OpenIMServer.msg.SetConversationHasReadSeqReq
13, // 51: OpenIMServer.msg.msg.SetMessageReactionExtensions:input_type -> OpenIMServer.msg.SetMessageReactionExtensionsReq
15, // 52: OpenIMServer.msg.msg.GetMessagesReactionExtensions:input_type -> OpenIMServer.msg.GetMessagesReactionExtensionsReq
12, // 53: OpenIMServer.msg.msg.AddMessageReactionExtensions:input_type -> OpenIMServer.msg.ModifyMessageReactionExtensionsReq
19, // 54: OpenIMServer.msg.msg.DeleteMessageReactionExtensions:input_type -> OpenIMServer.msg.DeleteMessagesReactionExtensionsReq
48, // 55: OpenIMServer.msg.msg.GetConversationsHasReadAndMaxSeq:input_type -> OpenIMServer.msg.GetConversationsHasReadAndMaxSeqReq
51, // 56: OpenIMServer.msg.msg.GetActiveUser:input_type -> OpenIMServer.msg.GetActiveUserReq
68, // 57: OpenIMServer.msg.msg.GetMaxSeq:output_type -> OpenIMServer.sdkws.GetMaxSeqResp
47, // 58: OpenIMServer.msg.msg.GetConversationMaxSeq:output_type -> OpenIMServer.msg.GetConversationMaxSeqResp
69, // 59: OpenIMServer.msg.msg.PullMessageBySeqs:output_type -> OpenIMServer.sdkws.PullMessageBySeqsResp
7, // 60: OpenIMServer.msg.msg.SendMsg:output_type -> OpenIMServer.msg.SendMsgResp
37, // 61: OpenIMServer.msg.msg.ClearConversationsMsg:output_type -> OpenIMServer.msg.ClearConversationsMsgResp
39, // 62: OpenIMServer.msg.msg.UserClearAllMsg:output_type -> OpenIMServer.msg.UserClearAllMsgResp
41, // 63: OpenIMServer.msg.msg.DeleteMsgs:output_type -> OpenIMServer.msg.DeleteMsgsResp
45, // 64: OpenIMServer.msg.msg.DeleteMsgPhysicalBySeq:output_type -> OpenIMServer.msg.DeleteMsgPhysicalBySeqResp
43, // 65: OpenIMServer.msg.msg.DeleteMsgPhysical:output_type -> OpenIMServer.msg.DeleteMsgPhysicalResp
9, // 66: OpenIMServer.msg.msg.SetSendMsgStatus:output_type -> OpenIMServer.msg.SetSendMsgStatusResp
11, // 67: OpenIMServer.msg.msg.GetSendMsgStatus:output_type -> OpenIMServer.msg.GetSendMsgStatusResp
28, // 68: OpenIMServer.msg.msg.RevokeMsg:output_type -> OpenIMServer.msg.RevokeMsgResp
30, // 69: OpenIMServer.msg.msg.MarkMsgsAsRead:output_type -> OpenIMServer.msg.MarkMsgsAsReadResp
32, // 70: OpenIMServer.msg.msg.MarkConversationAsRead:output_type -> OpenIMServer.msg.MarkConversationAsReadResp
34, // 71: OpenIMServer.msg.msg.SetConversationHasReadSeq:output_type -> OpenIMServer.msg.SetConversationHasReadSeqResp
14, // 72: OpenIMServer.msg.msg.SetMessageReactionExtensions:output_type -> OpenIMServer.msg.SetMessageReactionExtensionsResp
16, // 73: OpenIMServer.msg.msg.GetMessagesReactionExtensions:output_type -> OpenIMServer.msg.GetMessagesReactionExtensionsResp
18, // 74: OpenIMServer.msg.msg.AddMessageReactionExtensions:output_type -> OpenIMServer.msg.ModifyMessageReactionExtensionsResp
20, // 75: OpenIMServer.msg.msg.DeleteMessageReactionExtensions:output_type -> OpenIMServer.msg.DeleteMessagesReactionExtensionsResp
50, // 76: OpenIMServer.msg.msg.GetConversationsHasReadAndMaxSeq:output_type -> OpenIMServer.msg.GetConversationsHasReadAndMaxSeqResp
53, // 77: OpenIMServer.msg.msg.GetActiveUser:output_type -> OpenIMServer.msg.GetActiveUserResp
57, // [57:78] is the sub-list for method output_type
36, // [36:57] is the sub-list for method input_type
36, // [36:36] is the sub-list for extension type_name
36, // [36:36] is the sub-list for extension extendee
0, // [0:36] is the sub-list for field type_name
}
func init() { file_msg_msg_proto_init() }
@ -4481,7 +4500,7 @@ func file_msg_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_msg_msg_proto_rawDesc,
NumEnums: 0,
NumMessages: 60,
NumMessages: 61,
NumExtensions: 0,
NumServices: 1,
},

@ -281,7 +281,8 @@ message ActiveUser {
message GetActiveUserResp {
int64 msgCount = 1;
int64 userCount = 2;
repeated ActiveUser users = 3;
map<string, int64> dateCount = 3;
repeated ActiveUser users = 4;
}
service msg {

@ -583,53 +583,6 @@ func (x *SinglePlatformToken) GetToken() []string {
return nil
}
type GetUserOnlineTokenDetailResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SingleDetail []*SingleDetail `protobuf:"bytes,1,rep,name=singleDetail,proto3" json:"singleDetail"`
}
func (x *GetUserOnlineTokenDetailResp) Reset() {
*x = GetUserOnlineTokenDetailResp{}
if protoimpl.UnsafeEnabled {
mi := &file_msggateway_msggateway_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetUserOnlineTokenDetailResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetUserOnlineTokenDetailResp) ProtoMessage() {}
func (x *GetUserOnlineTokenDetailResp) ProtoReflect() protoreflect.Message {
mi := &file_msggateway_msggateway_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 GetUserOnlineTokenDetailResp.ProtoReflect.Descriptor instead.
func (*GetUserOnlineTokenDetailResp) Descriptor() ([]byte, []int) {
return file_msggateway_msggateway_proto_rawDescGZIP(), []int{10}
}
func (x *GetUserOnlineTokenDetailResp) GetSingleDetail() []*SingleDetail {
if x != nil {
return x.SingleDetail
}
return nil
}
type KickUserOfflineReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@ -642,7 +595,7 @@ type KickUserOfflineReq struct {
func (x *KickUserOfflineReq) Reset() {
*x = KickUserOfflineReq{}
if protoimpl.UnsafeEnabled {
mi := &file_msggateway_msggateway_proto_msgTypes[11]
mi := &file_msggateway_msggateway_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -655,7 +608,7 @@ func (x *KickUserOfflineReq) String() string {
func (*KickUserOfflineReq) ProtoMessage() {}
func (x *KickUserOfflineReq) ProtoReflect() protoreflect.Message {
mi := &file_msggateway_msggateway_proto_msgTypes[11]
mi := &file_msggateway_msggateway_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -668,7 +621,7 @@ func (x *KickUserOfflineReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use KickUserOfflineReq.ProtoReflect.Descriptor instead.
func (*KickUserOfflineReq) Descriptor() ([]byte, []int) {
return file_msggateway_msggateway_proto_rawDescGZIP(), []int{11}
return file_msggateway_msggateway_proto_rawDescGZIP(), []int{10}
}
func (x *KickUserOfflineReq) GetPlatformID() int32 {
@ -694,7 +647,7 @@ type KickUserOfflineResp struct {
func (x *KickUserOfflineResp) Reset() {
*x = KickUserOfflineResp{}
if protoimpl.UnsafeEnabled {
mi := &file_msggateway_msggateway_proto_msgTypes[12]
mi := &file_msggateway_msggateway_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -707,7 +660,7 @@ func (x *KickUserOfflineResp) String() string {
func (*KickUserOfflineResp) ProtoMessage() {}
func (x *KickUserOfflineResp) ProtoReflect() protoreflect.Message {
mi := &file_msggateway_msggateway_proto_msgTypes[12]
mi := &file_msggateway_msggateway_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -720,7 +673,7 @@ func (x *KickUserOfflineResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use KickUserOfflineResp.ProtoReflect.Descriptor instead.
func (*KickUserOfflineResp) Descriptor() ([]byte, []int) {
return file_msggateway_msggateway_proto_rawDescGZIP(), []int{12}
return file_msggateway_msggateway_proto_rawDescGZIP(), []int{11}
}
type MultiTerminalLoginCheckReq struct {
@ -737,7 +690,7 @@ type MultiTerminalLoginCheckReq struct {
func (x *MultiTerminalLoginCheckReq) Reset() {
*x = MultiTerminalLoginCheckReq{}
if protoimpl.UnsafeEnabled {
mi := &file_msggateway_msggateway_proto_msgTypes[13]
mi := &file_msggateway_msggateway_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -750,7 +703,7 @@ func (x *MultiTerminalLoginCheckReq) String() string {
func (*MultiTerminalLoginCheckReq) ProtoMessage() {}
func (x *MultiTerminalLoginCheckReq) ProtoReflect() protoreflect.Message {
mi := &file_msggateway_msggateway_proto_msgTypes[13]
mi := &file_msggateway_msggateway_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -763,7 +716,7 @@ func (x *MultiTerminalLoginCheckReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use MultiTerminalLoginCheckReq.ProtoReflect.Descriptor instead.
func (*MultiTerminalLoginCheckReq) Descriptor() ([]byte, []int) {
return file_msggateway_msggateway_proto_rawDescGZIP(), []int{13}
return file_msggateway_msggateway_proto_rawDescGZIP(), []int{12}
}
func (x *MultiTerminalLoginCheckReq) GetUserID() string {
@ -803,7 +756,7 @@ type MultiTerminalLoginCheckResp struct {
func (x *MultiTerminalLoginCheckResp) Reset() {
*x = MultiTerminalLoginCheckResp{}
if protoimpl.UnsafeEnabled {
mi := &file_msggateway_msggateway_proto_msgTypes[14]
mi := &file_msggateway_msggateway_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -816,7 +769,7 @@ func (x *MultiTerminalLoginCheckResp) String() string {
func (*MultiTerminalLoginCheckResp) ProtoMessage() {}
func (x *MultiTerminalLoginCheckResp) ProtoReflect() protoreflect.Message {
mi := &file_msggateway_msggateway_proto_msgTypes[14]
mi := &file_msggateway_msggateway_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -829,7 +782,7 @@ func (x *MultiTerminalLoginCheckResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use MultiTerminalLoginCheckResp.ProtoReflect.Descriptor instead.
func (*MultiTerminalLoginCheckResp) Descriptor() ([]byte, []int) {
return file_msggateway_msggateway_proto_rawDescGZIP(), []int{14}
return file_msggateway_msggateway_proto_rawDescGZIP(), []int{13}
}
type GetUsersOnlineStatusResp_SuccessDetail struct {
@ -847,7 +800,7 @@ type GetUsersOnlineStatusResp_SuccessDetail struct {
func (x *GetUsersOnlineStatusResp_SuccessDetail) Reset() {
*x = GetUsersOnlineStatusResp_SuccessDetail{}
if protoimpl.UnsafeEnabled {
mi := &file_msggateway_msggateway_proto_msgTypes[15]
mi := &file_msggateway_msggateway_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -860,7 +813,7 @@ func (x *GetUsersOnlineStatusResp_SuccessDetail) String() string {
func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {}
func (x *GetUsersOnlineStatusResp_SuccessDetail) ProtoReflect() protoreflect.Message {
mi := &file_msggateway_msggateway_proto_msgTypes[15]
mi := &file_msggateway_msggateway_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -922,7 +875,7 @@ type GetUsersOnlineStatusResp_FailedDetail struct {
func (x *GetUsersOnlineStatusResp_FailedDetail) Reset() {
*x = GetUsersOnlineStatusResp_FailedDetail{}
if protoimpl.UnsafeEnabled {
mi := &file_msggateway_msggateway_proto_msgTypes[16]
mi := &file_msggateway_msggateway_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -935,7 +888,7 @@ func (x *GetUsersOnlineStatusResp_FailedDetail) String() string {
func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {}
func (x *GetUsersOnlineStatusResp_FailedDetail) ProtoReflect() protoreflect.Message {
mi := &file_msggateway_msggateway_proto_msgTypes[16]
mi := &file_msggateway_msggateway_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -971,7 +924,7 @@ type GetUsersOnlineStatusResp_SuccessResult struct {
func (x *GetUsersOnlineStatusResp_SuccessResult) Reset() {
*x = GetUsersOnlineStatusResp_SuccessResult{}
if protoimpl.UnsafeEnabled {
mi := &file_msggateway_msggateway_proto_msgTypes[17]
mi := &file_msggateway_msggateway_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -984,7 +937,7 @@ func (x *GetUsersOnlineStatusResp_SuccessResult) String() string {
func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {}
func (x *GetUsersOnlineStatusResp_SuccessResult) ProtoReflect() protoreflect.Message {
mi := &file_msggateway_msggateway_proto_msgTypes[17]
mi := &file_msggateway_msggateway_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -1130,48 +1083,50 @@ var file_msggateway_msggateway_proto_rawDesc = []byte{
0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65,
0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x69,
0x0a, 0x1c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x54,
0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49,
0x0a, 0x0c, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01,
0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x53,
0x69, 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x73, 0x69, 0x6e,
0x67, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x5c, 0x0a, 0x12, 0x4b, 0x69, 0x63,
0x6b, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x12,
0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12,
0x26, 0x0a, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73,
0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65,
0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x4b, 0x69, 0x63, 0x6b, 0x55,
0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8c,
0x01, 0x0a, 0x1a, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c,
0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 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, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f,
0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x1d, 0x0a,
0x1b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x6f,
0x67, 0x69, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x32, 0xf1, 0x05, 0x0a,
0x0a, 0x6d, 0x73, 0x67, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x66, 0x0a, 0x0d, 0x4f,
0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x29, 0x2e, 0x4f,
0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5c,
0x0a, 0x12, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e,
0x65, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72,
0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6b, 0x69,
0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13,
0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52,
0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x65, 0x72,
0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 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, 0x1e, 0x0a, 0x0a, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f,
0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e,
0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x49, 0x44, 0x22, 0x1d, 0x0a, 0x1b, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x65, 0x72, 0x6d, 0x69,
0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73,
0x70, 0x32, 0xf1, 0x05, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
0x12, 0x66, 0x0a, 0x0d, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x73,
0x67, 0x12, 0x29, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4f, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73,
0x68, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x73, 0x67, 0x52,
0x65, 0x73, 0x70, 0x12, 0x7b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x4f,
0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x30, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x4f, 0x6e,
0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x31, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67,
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73,
0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70,
0x12, 0x7e, 0x0a, 0x15, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50,
0x68, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55,
0x73, 0x65, 0x72, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x12, 0x30, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73,
0x65, 0x72, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52,
0x65, 0x71, 0x1a, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x47, 0x65, 0x74,
0x55, 0x73, 0x65, 0x72, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75,
0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x7e, 0x0a, 0x15, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42,
0x61, 0x74, 0x63, 0x68, 0x50, 0x75, 0x73, 0x68, 0x4f, 0x6e, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x31,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73,
0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42,
0x61, 0x74, 0x63, 0x68, 0x50, 0x75, 0x73, 0x68, 0x4f, 0x6e, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65,
0x71, 0x1a, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4f, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x75, 0x73, 0x68, 0x4f, 0x6e, 0x65, 0x4d, 0x73,
0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x88, 0x01, 0x0a, 0x1f, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50,
0x75, 0x73, 0x68, 0x4f, 0x6e, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50,
@ -1179,35 +1134,26 @@ var file_msggateway_msggateway_proto_rawDesc = []byte{
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67,
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x74,
0x63, 0x68, 0x50, 0x75, 0x73, 0x68, 0x4f, 0x6e, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70,
0x12, 0x88, 0x01, 0x0a, 0x1f, 0x53, 0x75, 0x70, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f,
0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x75, 0x73, 0x68, 0x4f, 0x6e,
0x65, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4f,
0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x75, 0x73, 0x68, 0x4f, 0x6e,
0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x32, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x61, 0x74, 0x63, 0x68, 0x50, 0x75, 0x73,
0x68, 0x4f, 0x6e, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6c, 0x0a, 0x0f, 0x4b,
0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x2b,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73,
0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65,
0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x2c, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61,
0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x66,
0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x84, 0x01, 0x0a, 0x17, 0x4d, 0x75,
0x6c, 0x74, 0x69, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e,
0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x67,
0x69, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x34, 0x2e, 0x4f, 0x70, 0x65,
0x12, 0x6c, 0x0a, 0x0f, 0x4b, 0x69, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c,
0x69, 0x6e, 0x65, 0x12, 0x2b, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4b, 0x69,
0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71,
0x1a, 0x2c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x55,
0x73, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x84,
0x01, 0x0a, 0x17, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c,
0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x33, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74,
0x65, 0x77, 0x61, 0x79, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e,
0x61, 0x6c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70,
0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x44, 0x4b, 0x2f, 0x4f, 0x70, 0x65, 0x6e, 0x2d, 0x49, 0x4d,
0x2d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2f, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
0x61, 0x6c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a,
0x34, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x6d,
0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x54,
0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x65, 0x63,
0x6b, 0x52, 0x65, 0x73, 0x70, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x44, 0x4b, 0x2f, 0x4f, 0x70,
0x65, 0x6e, 0x2d, 0x49, 0x4d, 0x2d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x6b, 0x67,
0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6d, 0x73, 0x67, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@ -1222,7 +1168,7 @@ func file_msggateway_msggateway_proto_rawDescGZIP() []byte {
return file_msggateway_msggateway_proto_rawDescData
}
var file_msggateway_msggateway_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_msggateway_msggateway_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_msggateway_msggateway_proto_goTypes = []interface{}{
(*OnlinePushMsgReq)(nil), // 0: OpenIMServer.msggateway.OnlinePushMsgReq
(*OnlinePushMsgResp)(nil), // 1: OpenIMServer.msggateway.OnlinePushMsgResp
@ -1234,44 +1180,42 @@ var file_msggateway_msggateway_proto_goTypes = []interface{}{
(*GetUsersOnlineStatusResp)(nil), // 7: OpenIMServer.msggateway.GetUsersOnlineStatusResp
(*SingleDetail)(nil), // 8: OpenIMServer.msggateway.SingleDetail
(*SinglePlatformToken)(nil), // 9: OpenIMServer.msggateway.SinglePlatformToken
(*GetUserOnlineTokenDetailResp)(nil), // 10: OpenIMServer.msggateway.GetUserOnlineTokenDetailResp
(*KickUserOfflineReq)(nil), // 11: OpenIMServer.msggateway.KickUserOfflineReq
(*KickUserOfflineResp)(nil), // 12: OpenIMServer.msggateway.KickUserOfflineResp
(*MultiTerminalLoginCheckReq)(nil), // 13: OpenIMServer.msggateway.MultiTerminalLoginCheckReq
(*MultiTerminalLoginCheckResp)(nil), // 14: OpenIMServer.msggateway.MultiTerminalLoginCheckResp
(*GetUsersOnlineStatusResp_SuccessDetail)(nil), // 15: OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessDetail
(*GetUsersOnlineStatusResp_FailedDetail)(nil), // 16: OpenIMServer.msggateway.GetUsersOnlineStatusResp.FailedDetail
(*GetUsersOnlineStatusResp_SuccessResult)(nil), // 17: OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessResult
(*sdkws.MsgData)(nil), // 18: OpenIMServer.sdkws.MsgData
(*KickUserOfflineReq)(nil), // 10: OpenIMServer.msggateway.KickUserOfflineReq
(*KickUserOfflineResp)(nil), // 11: OpenIMServer.msggateway.KickUserOfflineResp
(*MultiTerminalLoginCheckReq)(nil), // 12: OpenIMServer.msggateway.MultiTerminalLoginCheckReq
(*MultiTerminalLoginCheckResp)(nil), // 13: OpenIMServer.msggateway.MultiTerminalLoginCheckResp
(*GetUsersOnlineStatusResp_SuccessDetail)(nil), // 14: OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessDetail
(*GetUsersOnlineStatusResp_FailedDetail)(nil), // 15: OpenIMServer.msggateway.GetUsersOnlineStatusResp.FailedDetail
(*GetUsersOnlineStatusResp_SuccessResult)(nil), // 16: OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessResult
(*sdkws.MsgData)(nil), // 17: OpenIMServer.sdkws.MsgData
}
var file_msggateway_msggateway_proto_depIdxs = []int32{
18, // 0: OpenIMServer.msggateway.OnlinePushMsgReq.msgData:type_name -> OpenIMServer.sdkws.MsgData
17, // 0: OpenIMServer.msggateway.OnlinePushMsgReq.msgData:type_name -> OpenIMServer.sdkws.MsgData
5, // 1: OpenIMServer.msggateway.OnlinePushMsgResp.resp:type_name -> OpenIMServer.msggateway.SingleMsgToUserPlatform
5, // 2: OpenIMServer.msggateway.SingleMsgToUserResults.resp:type_name -> OpenIMServer.msggateway.SingleMsgToUserPlatform
18, // 3: OpenIMServer.msggateway.OnlineBatchPushOneMsgReq.msgData:type_name -> OpenIMServer.sdkws.MsgData
17, // 3: OpenIMServer.msggateway.OnlineBatchPushOneMsgReq.msgData:type_name -> OpenIMServer.sdkws.MsgData
2, // 4: OpenIMServer.msggateway.OnlineBatchPushOneMsgResp.singlePushResult:type_name -> OpenIMServer.msggateway.SingleMsgToUserResults
17, // 5: OpenIMServer.msggateway.GetUsersOnlineStatusResp.successResult:type_name -> OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessResult
16, // 6: OpenIMServer.msggateway.GetUsersOnlineStatusResp.failedResult:type_name -> OpenIMServer.msggateway.GetUsersOnlineStatusResp.FailedDetail
16, // 5: OpenIMServer.msggateway.GetUsersOnlineStatusResp.successResult:type_name -> OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessResult
15, // 6: OpenIMServer.msggateway.GetUsersOnlineStatusResp.failedResult:type_name -> OpenIMServer.msggateway.GetUsersOnlineStatusResp.FailedDetail
9, // 7: OpenIMServer.msggateway.SingleDetail.singlePlatformToken:type_name -> OpenIMServer.msggateway.SinglePlatformToken
8, // 8: OpenIMServer.msggateway.GetUserOnlineTokenDetailResp.singleDetail:type_name -> OpenIMServer.msggateway.SingleDetail
15, // 9: OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessResult.detailPlatformStatus:type_name -> OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessDetail
0, // 10: OpenIMServer.msggateway.msgGateway.OnlinePushMsg:input_type -> OpenIMServer.msggateway.OnlinePushMsgReq
6, // 11: OpenIMServer.msggateway.msgGateway.GetUsersOnlineStatus:input_type -> OpenIMServer.msggateway.GetUsersOnlineStatusReq
3, // 12: OpenIMServer.msggateway.msgGateway.OnlineBatchPushOneMsg:input_type -> OpenIMServer.msggateway.OnlineBatchPushOneMsgReq
3, // 13: OpenIMServer.msggateway.msgGateway.SuperGroupOnlineBatchPushOneMsg:input_type -> OpenIMServer.msggateway.OnlineBatchPushOneMsgReq
11, // 14: OpenIMServer.msggateway.msgGateway.KickUserOffline:input_type -> OpenIMServer.msggateway.KickUserOfflineReq
13, // 15: OpenIMServer.msggateway.msgGateway.MultiTerminalLoginCheck:input_type -> OpenIMServer.msggateway.MultiTerminalLoginCheckReq
1, // 16: OpenIMServer.msggateway.msgGateway.OnlinePushMsg:output_type -> OpenIMServer.msggateway.OnlinePushMsgResp
7, // 17: OpenIMServer.msggateway.msgGateway.GetUsersOnlineStatus:output_type -> OpenIMServer.msggateway.GetUsersOnlineStatusResp
4, // 18: OpenIMServer.msggateway.msgGateway.OnlineBatchPushOneMsg:output_type -> OpenIMServer.msggateway.OnlineBatchPushOneMsgResp
4, // 19: OpenIMServer.msggateway.msgGateway.SuperGroupOnlineBatchPushOneMsg:output_type -> OpenIMServer.msggateway.OnlineBatchPushOneMsgResp
12, // 20: OpenIMServer.msggateway.msgGateway.KickUserOffline:output_type -> OpenIMServer.msggateway.KickUserOfflineResp
14, // 21: OpenIMServer.msggateway.msgGateway.MultiTerminalLoginCheck:output_type -> OpenIMServer.msggateway.MultiTerminalLoginCheckResp
16, // [16:22] is the sub-list for method output_type
10, // [10:16] is the sub-list for method input_type
10, // [10:10] is the sub-list for extension type_name
10, // [10:10] is the sub-list for extension extendee
0, // [0:10] is the sub-list for field type_name
14, // 8: OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessResult.detailPlatformStatus:type_name -> OpenIMServer.msggateway.GetUsersOnlineStatusResp.SuccessDetail
0, // 9: OpenIMServer.msggateway.msgGateway.OnlinePushMsg:input_type -> OpenIMServer.msggateway.OnlinePushMsgReq
6, // 10: OpenIMServer.msggateway.msgGateway.GetUsersOnlineStatus:input_type -> OpenIMServer.msggateway.GetUsersOnlineStatusReq
3, // 11: OpenIMServer.msggateway.msgGateway.OnlineBatchPushOneMsg:input_type -> OpenIMServer.msggateway.OnlineBatchPushOneMsgReq
3, // 12: OpenIMServer.msggateway.msgGateway.SuperGroupOnlineBatchPushOneMsg:input_type -> OpenIMServer.msggateway.OnlineBatchPushOneMsgReq
10, // 13: OpenIMServer.msggateway.msgGateway.KickUserOffline:input_type -> OpenIMServer.msggateway.KickUserOfflineReq
12, // 14: OpenIMServer.msggateway.msgGateway.MultiTerminalLoginCheck:input_type -> OpenIMServer.msggateway.MultiTerminalLoginCheckReq
1, // 15: OpenIMServer.msggateway.msgGateway.OnlinePushMsg:output_type -> OpenIMServer.msggateway.OnlinePushMsgResp
7, // 16: OpenIMServer.msggateway.msgGateway.GetUsersOnlineStatus:output_type -> OpenIMServer.msggateway.GetUsersOnlineStatusResp
4, // 17: OpenIMServer.msggateway.msgGateway.OnlineBatchPushOneMsg:output_type -> OpenIMServer.msggateway.OnlineBatchPushOneMsgResp
4, // 18: OpenIMServer.msggateway.msgGateway.SuperGroupOnlineBatchPushOneMsg:output_type -> OpenIMServer.msggateway.OnlineBatchPushOneMsgResp
11, // 19: OpenIMServer.msggateway.msgGateway.KickUserOffline:output_type -> OpenIMServer.msggateway.KickUserOfflineResp
13, // 20: OpenIMServer.msggateway.msgGateway.MultiTerminalLoginCheck:output_type -> OpenIMServer.msggateway.MultiTerminalLoginCheckResp
15, // [15:21] is the sub-list for method output_type
9, // [9:15] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
9, // [9:9] is the sub-list for extension extendee
0, // [0:9] is the sub-list for field type_name
}
func init() { file_msggateway_msggateway_proto_init() }
@ -1401,18 +1345,6 @@ func file_msggateway_msggateway_proto_init() {
}
}
file_msggateway_msggateway_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetUserOnlineTokenDetailResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_msggateway_msggateway_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KickUserOfflineReq); i {
case 0:
return &v.state
@ -1424,7 +1356,7 @@ func file_msggateway_msggateway_proto_init() {
return nil
}
}
file_msggateway_msggateway_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
file_msggateway_msggateway_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KickUserOfflineResp); i {
case 0:
return &v.state
@ -1436,7 +1368,7 @@ func file_msggateway_msggateway_proto_init() {
return nil
}
}
file_msggateway_msggateway_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
file_msggateway_msggateway_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MultiTerminalLoginCheckReq); i {
case 0:
return &v.state
@ -1448,7 +1380,7 @@ func file_msggateway_msggateway_proto_init() {
return nil
}
}
file_msggateway_msggateway_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
file_msggateway_msggateway_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MultiTerminalLoginCheckResp); i {
case 0:
return &v.state
@ -1460,7 +1392,7 @@ func file_msggateway_msggateway_proto_init() {
return nil
}
}
file_msggateway_msggateway_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
file_msggateway_msggateway_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetUsersOnlineStatusResp_SuccessDetail); i {
case 0:
return &v.state
@ -1472,7 +1404,7 @@ func file_msggateway_msggateway_proto_init() {
return nil
}
}
file_msggateway_msggateway_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
file_msggateway_msggateway_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetUsersOnlineStatusResp_FailedDetail); i {
case 0:
return &v.state
@ -1484,7 +1416,7 @@ func file_msggateway_msggateway_proto_init() {
return nil
}
}
file_msggateway_msggateway_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
file_msggateway_msggateway_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetUsersOnlineStatusResp_SuccessResult); i {
case 0:
return &v.state
@ -1503,7 +1435,7 @@ func file_msggateway_msggateway_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_msggateway_msggateway_proto_rawDesc,
NumEnums: 0,
NumMessages: 18,
NumMessages: 17,
NumExtensions: 0,
NumServices: 1,
},

Loading…
Cancel
Save