syntax = "proto3"; package OpenIMServer.third; option go_package = "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/third"; message KeyValues { string key = 1; repeated string values = 2; } message SignPart { int32 partNumber = 1; string url = 2; repeated KeyValues query = 3; repeated KeyValues header = 4; } message AuthSignParts { string url = 1; repeated KeyValues query = 2; repeated KeyValues header = 3; repeated SignPart parts = 4; } message PartLimitReq { } message PartLimitResp { int64 minPartSize = 1; int64 maxPartSize = 2; int32 maxNumSize = 3; } message PartSizeReq { int64 size = 1; } message PartSizeResp { int64 size = 2; } message InitiateMultipartUploadReq { string hash = 1; int64 size = 2; int64 partSize = 3; int32 maxParts = 4; string cause = 5; string name = 6; string contentType = 7; } message UploadInfo { string uploadID = 1; int64 partSize = 2; AuthSignParts sign = 3; } message InitiateMultipartUploadResp { string url = 1; UploadInfo upload = 2; } message AuthSignReq { string uploadID = 1; repeated int32 partNumbers = 2; } message AuthSignResp { string url = 1; repeated KeyValues query = 2; repeated KeyValues header = 3; repeated SignPart parts = 4; } message CompleteMultipartUploadReq { string uploadID = 1; repeated string parts = 2; string name = 3; string contentType = 4; string cause = 5; } message CompleteMultipartUploadResp { string url = 1; } message AccessURLReq { string name = 1; } message AccessURLResp { string url = 1; int64 expireTime = 2; } message FcmUpdateTokenReq { int32 platformID = 1; string fcmToken = 2; string account = 3; int64 expireTime = 4; } message FcmUpdateTokenResp { } message SetAppBadgeReq { string userID = 1; int32 appUnreadCount = 2; } message SetAppBadgeResp { } service third { rpc PartLimit(PartLimitReq) returns(PartLimitResp); rpc PartSize(PartSizeReq) returns(PartSizeResp); rpc InitiateMultipartUpload(InitiateMultipartUploadReq) returns(InitiateMultipartUploadResp); rpc AuthSign(AuthSignReq) returns(AuthSignResp); rpc CompleteMultipartUpload(CompleteMultipartUploadReq) returns(CompleteMultipartUploadResp); rpc AccessURL(AccessURLReq) returns(AccessURLResp); rpc FcmUpdateToken(FcmUpdateTokenReq) returns(FcmUpdateTokenResp); rpc SetAppBadge(SetAppBadgeReq) returns(SetAppBadgeResp); }