handle new UpdateParticipant API, enable permission updates

This commit is contained in:
David Zhao
2021-03-20 22:27:47 -07:00
parent 6aee50b397
commit 537edda4c3
14 changed files with 387 additions and 423 deletions

View File

@@ -1,7 +1,6 @@
package commands
import (
"encoding/json"
"fmt"
"github.com/urfave/cli/v2"
@@ -81,11 +80,7 @@ func createToken(c *cli.Context) error {
at := accessToken(c, grant, p)
if metadata != "" {
var md map[string]interface{}
if err := json.Unmarshal([]byte(metadata), &md); err != nil {
return err
}
at.SetMetadata(md)
at.SetMetadata(metadata)
}
token, err := at.ToJWT()

2
go.mod
View File

@@ -11,7 +11,7 @@ require (
github.com/google/wire v0.5.0
github.com/gorilla/websocket v1.4.2
github.com/jxskiss/base62 v0.0.0-20191017122030-4f11678b909b
github.com/livekit/protocol v0.2.2
github.com/livekit/protocol v0.3.1
github.com/magefile/mage v1.11.0
github.com/maxbrunsfeld/counterfeiter/v6 v6.3.0
github.com/mitchellh/go-homedir v1.1.0

4
go.sum
View File

@@ -236,6 +236,10 @@ github.com/livekit/protocol v0.2.1 h1:kWZlkMxkuEfvrZa8NFqOCulybEL3eJr2lrq8OfrTLP
github.com/livekit/protocol v0.2.1/go.mod h1:wo3CGfYB7XMF8GoVJAfTARrYSP/ombi+sbLl6AYdKP0=
github.com/livekit/protocol v0.2.2 h1:XRcbreNYi8ReAICSsJ3QXzGKSNOz0LxnimAwz5hVSHQ=
github.com/livekit/protocol v0.2.2/go.mod h1:wo3CGfYB7XMF8GoVJAfTARrYSP/ombi+sbLl6AYdKP0=
github.com/livekit/protocol v0.3.0 h1:Mk0DisPabFX+CzL5/zn4Dsrp5s0SvAmb/B1qE8IxKYI=
github.com/livekit/protocol v0.3.0/go.mod h1:wo3CGfYB7XMF8GoVJAfTARrYSP/ombi+sbLl6AYdKP0=
github.com/livekit/protocol v0.3.1 h1:EEf2pF8+7etfvgDeJPq6vWm0NTpZXa+3y8MTD6BVbmw=
github.com/livekit/protocol v0.3.1/go.mod h1:wo3CGfYB7XMF8GoVJAfTARrYSP/ombi+sbLl6AYdKP0=
github.com/lucsky/cuid v1.0.2 h1:z4XlExeoderxoPj2/dxKOyPxe9RCOu7yNq9/XWxIUMQ=
github.com/lucsky/cuid v1.0.2/go.mod h1:QaaJqckboimOmhRSJXSx/+IT+VTfxfPGSo/6mfgUfmE=
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=

View File

@@ -13,7 +13,7 @@ func newMockParticipant(identity string) *typesfakes.FakeParticipant {
p.IdentityReturns(identity)
p.StateReturns(livekit.ParticipantInfo_JOINED)
p.SetMetadataStub = func(m map[string]interface{}) error {
p.SetMetadataStub = func(m string) {
var f func(participant types.Participant)
if p.OnMetadataUpdateCallCount() > 0 {
f = p.OnMetadataUpdateArgsForCall(p.OnMetadataUpdateCallCount() - 1)
@@ -21,7 +21,6 @@ func newMockParticipant(identity string) *typesfakes.FakeParticipant {
if f != nil {
f(p)
}
return nil
}
updateTrack := func() {
var f func(participant types.Participant, track types.PublishedTrack)

View File

@@ -1,7 +1,6 @@
package rtc
import (
"encoding/json"
"fmt"
"io"
"sync"
@@ -139,21 +138,12 @@ func (p *ParticipantImpl) IsReady() bool {
}
// attach metadata to the participant
func (p *ParticipantImpl) SetMetadata(metadata map[string]interface{}) error {
if metadata == nil {
p.metadata = ""
} else {
if data, err := json.Marshal(metadata); err != nil {
return err
} else {
p.metadata = string(data)
}
}
func (p *ParticipantImpl) SetMetadata(metadata string) {
p.metadata = metadata
if p.onMetadataUpdate != nil {
p.onMetadataUpdate(p)
}
return nil
}
func (p *ParticipantImpl) SetPermission(permission *livekit.ParticipantPermission) {

View File

@@ -152,7 +152,7 @@ func TestParticipantUpdate(t *testing.T) {
"track metadata updates are sent to everyone",
true,
func(p types.Participant) {
p.SetMetadata(map[string]interface{}{})
p.SetMetadata("")
},
},
{
@@ -285,7 +285,7 @@ func TestActiveSpeakers(t *testing.T) {
assert.Equal(t, p2.ID(), speakers[1].Sid)
})
t.Run("participants are getting updates when active", func(t *testing.T) {
t.Run("participants are getting audio updates", func(t *testing.T) {
rm := newRoomWithParticipants(t, 2)
participants := rm.GetParticipants()
p := participants[0].(*typesfakes.FakeParticipant)
@@ -293,29 +293,29 @@ func TestActiveSpeakers(t *testing.T) {
p.GetAudioLevelReturns(30, true)
speakers := rm.GetActiveSpeakers()
assert.NotEmpty(t, speakers)
assert.Equal(t, p.ID(), speakers[0].Sid)
require.NotEmpty(t, speakers)
require.Equal(t, p.ID(), speakers[0].Sid)
time.Sleep(audioUpdateDuration)
// everyone should've received updates
for _, op := range participants {
op := op.(*typesfakes.FakeParticipant)
assert.Equal(t, 1, op.SendActiveSpeakersCallCount())
require.Equal(t, 1, op.SendActiveSpeakersCallCount())
}
// after another cycle, we are not getting any new updates since unchanged
time.Sleep(audioUpdateDuration)
for _, op := range participants {
op := op.(*typesfakes.FakeParticipant)
assert.Equal(t, 1, op.SendActiveSpeakersCallCount())
require.Equal(t, 1, op.SendActiveSpeakersCallCount())
}
// no longer speaking, send update with empty items
p.GetAudioLevelReturns(127, false)
time.Sleep(audioUpdateDuration)
assert.Equal(t, 2, p.SendActiveSpeakersCallCount())
assert.Empty(t, p.SendActiveSpeakersArgsForCall(1))
require.Equal(t, 2, p.SendActiveSpeakersCallCount())
require.Empty(t, p.SendActiveSpeakersArgsForCall(1))
})
}

View File

@@ -28,7 +28,7 @@ type Participant interface {
IsReady() bool
ToProto() *livekit.ParticipantInfo
RTCPChan() chan []rtcp.Packet
SetMetadata(metadata map[string]interface{}) error
SetMetadata(metadata string)
SetPermission(permission *livekit.ParticipantPermission)
GetResponseSink() routing.MessageSink
SetResponseSink(sink routing.MessageSink)

View File

@@ -255,16 +255,10 @@ type FakeParticipant struct {
sendParticipantUpdateReturnsOnCall map[int]struct {
result1 error
}
SetMetadataStub func(map[string]interface{}) error
SetMetadataStub func(string)
setMetadataMutex sync.RWMutex
setMetadataArgsForCall []struct {
arg1 map[string]interface{}
}
setMetadataReturns struct {
result1 error
}
setMetadataReturnsOnCall map[int]struct {
result1 error
arg1 string
}
SetPermissionStub func(*livekit.ParticipantPermission)
setPermissionMutex sync.RWMutex
@@ -1661,23 +1655,17 @@ func (fake *FakeParticipant) SendParticipantUpdateReturnsOnCall(i int, result1 e
}{result1}
}
func (fake *FakeParticipant) SetMetadata(arg1 map[string]interface{}) error {
func (fake *FakeParticipant) SetMetadata(arg1 string) {
fake.setMetadataMutex.Lock()
ret, specificReturn := fake.setMetadataReturnsOnCall[len(fake.setMetadataArgsForCall)]
fake.setMetadataArgsForCall = append(fake.setMetadataArgsForCall, struct {
arg1 map[string]interface{}
arg1 string
}{arg1})
stub := fake.SetMetadataStub
fakeReturns := fake.setMetadataReturns
fake.recordInvocation("SetMetadata", []interface{}{arg1})
fake.setMetadataMutex.Unlock()
if stub != nil {
return stub(arg1)
fake.SetMetadataStub(arg1)
}
if specificReturn {
return ret.result1
}
return fakeReturns.result1
}
func (fake *FakeParticipant) SetMetadataCallCount() int {
@@ -1686,42 +1674,19 @@ func (fake *FakeParticipant) SetMetadataCallCount() int {
return len(fake.setMetadataArgsForCall)
}
func (fake *FakeParticipant) SetMetadataCalls(stub func(map[string]interface{}) error) {
func (fake *FakeParticipant) SetMetadataCalls(stub func(string)) {
fake.setMetadataMutex.Lock()
defer fake.setMetadataMutex.Unlock()
fake.SetMetadataStub = stub
}
func (fake *FakeParticipant) SetMetadataArgsForCall(i int) map[string]interface{} {
func (fake *FakeParticipant) SetMetadataArgsForCall(i int) string {
fake.setMetadataMutex.RLock()
defer fake.setMetadataMutex.RUnlock()
argsForCall := fake.setMetadataArgsForCall[i]
return argsForCall.arg1
}
func (fake *FakeParticipant) SetMetadataReturns(result1 error) {
fake.setMetadataMutex.Lock()
defer fake.setMetadataMutex.Unlock()
fake.SetMetadataStub = nil
fake.setMetadataReturns = struct {
result1 error
}{result1}
}
func (fake *FakeParticipant) SetMetadataReturnsOnCall(i int, result1 error) {
fake.setMetadataMutex.Lock()
defer fake.setMetadataMutex.Unlock()
fake.SetMetadataStub = nil
if fake.setMetadataReturnsOnCall == nil {
fake.setMetadataReturnsOnCall = make(map[int]struct {
result1 error
})
}
fake.setMetadataReturnsOnCall[i] = struct {
result1 error
}{result1}
}
func (fake *FakeParticipant) SetPermission(arg1 *livekit.ParticipantPermission) {
fake.setPermissionMutex.Lock()
fake.setPermissionArgsForCall = append(fake.setPermissionArgsForCall, struct {

View File

@@ -1,7 +1,6 @@
package service
import (
"encoding/json"
"fmt"
"sync"
"time"
@@ -216,10 +215,7 @@ func (r *RoomManager) StartSession(roomName string, pi routing.ParticipantInit,
return
}
if pi.Metadata != "" {
var md map[string]interface{}
if err := json.Unmarshal([]byte(pi.Metadata), &md); err == nil {
participant.SetMetadata(md)
}
participant.SetMetadata(pi.Metadata)
}
if pi.Permission != nil {
@@ -383,16 +379,14 @@ func (r *RoomManager) handleRTCMessage(roomName, identity string, msg *livekit.R
logger.Debugw("setting track muted", "room", roomName, "participant", identity,
"track", rm.MuteTrack.TrackSid, "muted", rm.MuteTrack.Muted)
participant.SetTrackMuted(rm.MuteTrack.TrackSid, rm.MuteTrack.Muted)
case *livekit.RTCNodeMessage_UpdateMetadata:
logger.Debugw("updating metadata", "room", roomName, "participant", identity)
var md map[string]interface{}
if rm.UpdateMetadata.Metadata != "" {
if err := json.Unmarshal([]byte(rm.UpdateMetadata.Metadata), &md); err != nil {
logger.Errorw("could not update metadata", "error", err)
return
}
case *livekit.RTCNodeMessage_UpdateParticipant:
logger.Debugw("updating participant", "room", roomName, "participant", identity)
if rm.UpdateParticipant.Metadata != "" {
participant.SetMetadata(rm.UpdateParticipant.Metadata)
}
if rm.UpdateParticipant.Permission != nil {
participant.SetPermission(rm.UpdateParticipant.Permission)
}
participant.SetMetadata(md)
}
}

View File

@@ -150,21 +150,21 @@ func (s *RoomService) MutePublishedTrack(ctx context.Context, req *livekit.MuteR
return
}
func (s *RoomService) UpdateParticipantMetadata(ctx context.Context, req *livekit.UpdateParticipantMetadataRequest) (*livekit.ParticipantInfo, error) {
rtcSink, err := s.createRTCSink(ctx, req.Target.Room, req.Target.Identity)
func (s *RoomService) UpdateParticipant(ctx context.Context, req *livekit.UpdateParticipantRequest) (*livekit.ParticipantInfo, error) {
rtcSink, err := s.createRTCSink(ctx, req.Room, req.Identity)
if err != nil {
return nil, err
}
defer rtcSink.Close()
participant, err := s.roomManager.roomStore.GetParticipant(req.Target.Room, req.Target.Identity)
participant, err := s.roomManager.roomStore.GetParticipant(req.Room, req.Identity)
if err != nil {
return nil, err
}
err = rtcSink.WriteMessage(&livekit.RTCNodeMessage{
Message: &livekit.RTCNodeMessage_UpdateMetadata{
UpdateMetadata: req,
Message: &livekit.RTCNodeMessage_UpdateParticipant{
UpdateParticipant: req,
},
})

View File

@@ -1,7 +1,6 @@
package service
import (
"encoding/json"
"fmt"
"io"
"net/http"
@@ -91,12 +90,8 @@ func (s *RTCService) ServeHTTP(w http.ResponseWriter, r *http.Request) {
return
}
if claims.Metadata != nil {
if data, err := json.Marshal(claims.Metadata); err != nil {
logger.Warnw("unable to encode metadata", "error", err)
} else {
pi.Metadata = string(data)
}
if claims.Metadata != "" {
pi.Metadata = claims.Metadata
}
// this needs to be started first *before* using router functions on this node

View File

@@ -197,7 +197,7 @@ type RTCNodeMessage struct {
// *RTCNodeMessage_Request
// *RTCNodeMessage_RemoveParticipant
// *RTCNodeMessage_MuteTrack
// *RTCNodeMessage_UpdateMetadata
// *RTCNodeMessage_UpdateParticipant
Message isRTCNodeMessage_Message `protobuf_oneof:"message"`
}
@@ -275,9 +275,9 @@ func (x *RTCNodeMessage) GetMuteTrack() *MuteRoomTrackRequest {
return nil
}
func (x *RTCNodeMessage) GetUpdateMetadata() *UpdateParticipantMetadataRequest {
if x, ok := x.GetMessage().(*RTCNodeMessage_UpdateMetadata); ok {
return x.UpdateMetadata
func (x *RTCNodeMessage) GetUpdateParticipant() *UpdateParticipantRequest {
if x, ok := x.GetMessage().(*RTCNodeMessage_UpdateParticipant); ok {
return x.UpdateParticipant
}
return nil
}
@@ -303,8 +303,8 @@ type RTCNodeMessage_MuteTrack struct {
MuteTrack *MuteRoomTrackRequest `protobuf:"bytes,5,opt,name=mute_track,json=muteTrack,proto3,oneof"`
}
type RTCNodeMessage_UpdateMetadata struct {
UpdateMetadata *UpdateParticipantMetadataRequest `protobuf:"bytes,6,opt,name=update_metadata,json=updateMetadata,proto3,oneof"`
type RTCNodeMessage_UpdateParticipant struct {
UpdateParticipant *UpdateParticipantRequest `protobuf:"bytes,6,opt,name=update_participant,json=updateParticipant,proto3,oneof"`
}
func (*RTCNodeMessage_StartSession) isRTCNodeMessage_Message() {}
@@ -315,7 +315,7 @@ func (*RTCNodeMessage_RemoveParticipant) isRTCNodeMessage_Message() {}
func (*RTCNodeMessage_MuteTrack) isRTCNodeMessage_Message() {}
func (*RTCNodeMessage_UpdateMetadata) isRTCNodeMessage_Message() {}
func (*RTCNodeMessage_UpdateParticipant) isRTCNodeMessage_Message() {}
// message to Signal nodes
type SignalNodeMessage struct {
@@ -495,61 +495,6 @@ func (x *StartSession) GetPermission() *ParticipantPermission {
return nil
}
type ParticipantPermission struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
CanSubscribe bool `protobuf:"varint,1,opt,name=can_subscribe,json=canSubscribe,proto3" json:"can_subscribe,omitempty"`
CanPublish bool `protobuf:"varint,2,opt,name=can_publish,json=canPublish,proto3" json:"can_publish,omitempty"`
}
func (x *ParticipantPermission) Reset() {
*x = ParticipantPermission{}
if protoimpl.UnsafeEnabled {
mi := &file_livekit_internal_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ParticipantPermission) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ParticipantPermission) ProtoMessage() {}
func (x *ParticipantPermission) ProtoReflect() protoreflect.Message {
mi := &file_livekit_internal_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ParticipantPermission.ProtoReflect.Descriptor instead.
func (*ParticipantPermission) Descriptor() ([]byte, []int) {
return file_livekit_internal_proto_rawDescGZIP(), []int{5}
}
func (x *ParticipantPermission) GetCanSubscribe() bool {
if x != nil {
return x.CanSubscribe
}
return false
}
func (x *ParticipantPermission) GetCanPublish() bool {
if x != nil {
return x.CanPublish
}
return false
}
type EndSession struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -559,7 +504,7 @@ type EndSession struct {
func (x *EndSession) Reset() {
*x = EndSession{}
if protoimpl.UnsafeEnabled {
mi := &file_livekit_internal_proto_msgTypes[6]
mi := &file_livekit_internal_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -572,7 +517,7 @@ func (x *EndSession) String() string {
func (*EndSession) ProtoMessage() {}
func (x *EndSession) ProtoReflect() protoreflect.Message {
mi := &file_livekit_internal_proto_msgTypes[6]
mi := &file_livekit_internal_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -585,7 +530,7 @@ func (x *EndSession) ProtoReflect() protoreflect.Message {
// Deprecated: Use EndSession.ProtoReflect.Descriptor instead.
func (*EndSession) Descriptor() ([]byte, []int) {
return file_livekit_internal_proto_rawDescGZIP(), []int{6}
return file_livekit_internal_proto_rawDescGZIP(), []int{5}
}
type RemoveParticipant struct {
@@ -599,7 +544,7 @@ type RemoveParticipant struct {
func (x *RemoveParticipant) Reset() {
*x = RemoveParticipant{}
if protoimpl.UnsafeEnabled {
mi := &file_livekit_internal_proto_msgTypes[7]
mi := &file_livekit_internal_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -612,7 +557,7 @@ func (x *RemoveParticipant) String() string {
func (*RemoveParticipant) ProtoMessage() {}
func (x *RemoveParticipant) ProtoReflect() protoreflect.Message {
mi := &file_livekit_internal_proto_msgTypes[7]
mi := &file_livekit_internal_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -625,7 +570,7 @@ func (x *RemoveParticipant) ProtoReflect() protoreflect.Message {
// Deprecated: Use RemoveParticipant.ProtoReflect.Descriptor instead.
func (*RemoveParticipant) Descriptor() ([]byte, []int) {
return file_livekit_internal_proto_rawDescGZIP(), []int{7}
return file_livekit_internal_proto_rawDescGZIP(), []int{6}
}
func (x *RemoveParticipant) GetParticipantId() string {
@@ -662,7 +607,7 @@ var file_livekit_internal_proto_rawDesc = []byte{
0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b,
0x73, 0x49, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b,
0x73, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6e, 0x75, 0x6d,
0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x4f, 0x75, 0x74, 0x22, 0x9f, 0x03, 0x0a, 0x0e, 0x52, 0x54,
0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x4f, 0x75, 0x74, 0x22, 0x9d, 0x03, 0x0a, 0x0e, 0x52, 0x54,
0x43, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x27, 0x0a, 0x0f,
0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
@@ -682,53 +627,47 @@ var file_livekit_internal_proto_rawDesc = []byte{
0x74, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x6f,
0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
0x09, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x54, 0x0a, 0x0f, 0x75, 0x70,
0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00,
0x52, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x11,
0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b,
0x69, 0x74, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a,
0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x64,
0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x53, 0x65,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x22, 0xe6, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a,
0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f,
0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12,
0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01,
0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a,
0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x65, 0x72,
0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
0x61, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70,
0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x15, 0x50, 0x61, 0x72,
0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
0x69, 0x62, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x53, 0x75,
0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x5f, 0x70,
0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x61,
0x6e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x22, 0x0c, 0x0a, 0x0a, 0x45, 0x6e, 0x64, 0x53,
0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65,
0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x70,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
0x49, 0x64, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74,
0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69,
0x76, 0x65, 0x6b, 0x69, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x09, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x52, 0x0a, 0x12, 0x75, 0x70,
0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74,
0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x42, 0x09,
0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x11, 0x53, 0x69,
0x67, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74,
0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48,
0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0b, 0x65,
0x6e, 0x64, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x53, 0x65,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xe6,
0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12,
0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e,
0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a,
0x09, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
0x52, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d,
0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x6d, 0x69,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69,
0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x65, 0x72,
0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x0c, 0x0a, 0x0a, 0x45, 0x6e, 0x64, 0x53, 0x65,
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61,
0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49,
0x64, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2d,
0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x76,
0x65, 0x6b, 0x69, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -743,32 +682,32 @@ func file_livekit_internal_proto_rawDescGZIP() []byte {
return file_livekit_internal_proto_rawDescData
}
var file_livekit_internal_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_livekit_internal_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_livekit_internal_proto_goTypes = []interface{}{
(*Node)(nil), // 0: livekit.Node
(*NodeStats)(nil), // 1: livekit.NodeStats
(*RTCNodeMessage)(nil), // 2: livekit.RTCNodeMessage
(*SignalNodeMessage)(nil), // 3: livekit.SignalNodeMessage
(*StartSession)(nil), // 4: livekit.StartSession
(*ParticipantPermission)(nil), // 5: livekit.ParticipantPermission
(*EndSession)(nil), // 6: livekit.EndSession
(*RemoveParticipant)(nil), // 7: livekit.RemoveParticipant
(*SignalRequest)(nil), // 8: livekit.SignalRequest
(*RoomParticipantIdentity)(nil), // 9: livekit.RoomParticipantIdentity
(*MuteRoomTrackRequest)(nil), // 10: livekit.MuteRoomTrackRequest
(*UpdateParticipantMetadataRequest)(nil), // 11: livekit.UpdateParticipantMetadataRequest
(*SignalResponse)(nil), // 12: livekit.SignalResponse
(*Node)(nil), // 0: livekit.Node
(*NodeStats)(nil), // 1: livekit.NodeStats
(*RTCNodeMessage)(nil), // 2: livekit.RTCNodeMessage
(*SignalNodeMessage)(nil), // 3: livekit.SignalNodeMessage
(*StartSession)(nil), // 4: livekit.StartSession
(*EndSession)(nil), // 5: livekit.EndSession
(*RemoveParticipant)(nil), // 6: livekit.RemoveParticipant
(*SignalRequest)(nil), // 7: livekit.SignalRequest
(*RoomParticipantIdentity)(nil), // 8: livekit.RoomParticipantIdentity
(*MuteRoomTrackRequest)(nil), // 9: livekit.MuteRoomTrackRequest
(*UpdateParticipantRequest)(nil), // 10: livekit.UpdateParticipantRequest
(*SignalResponse)(nil), // 11: livekit.SignalResponse
(*ParticipantPermission)(nil), // 12: livekit.ParticipantPermission
}
var file_livekit_internal_proto_depIdxs = []int32{
1, // 0: livekit.Node.stats:type_name -> livekit.NodeStats
4, // 1: livekit.RTCNodeMessage.start_session:type_name -> livekit.StartSession
8, // 2: livekit.RTCNodeMessage.request:type_name -> livekit.SignalRequest
9, // 3: livekit.RTCNodeMessage.remove_participant:type_name -> livekit.RoomParticipantIdentity
10, // 4: livekit.RTCNodeMessage.mute_track:type_name -> livekit.MuteRoomTrackRequest
11, // 5: livekit.RTCNodeMessage.update_metadata:type_name -> livekit.UpdateParticipantMetadataRequest
12, // 6: livekit.SignalNodeMessage.response:type_name -> livekit.SignalResponse
6, // 7: livekit.SignalNodeMessage.end_session:type_name -> livekit.EndSession
5, // 8: livekit.StartSession.permission:type_name -> livekit.ParticipantPermission
7, // 2: livekit.RTCNodeMessage.request:type_name -> livekit.SignalRequest
8, // 3: livekit.RTCNodeMessage.remove_participant:type_name -> livekit.RoomParticipantIdentity
9, // 4: livekit.RTCNodeMessage.mute_track:type_name -> livekit.MuteRoomTrackRequest
10, // 5: livekit.RTCNodeMessage.update_participant:type_name -> livekit.UpdateParticipantRequest
11, // 6: livekit.SignalNodeMessage.response:type_name -> livekit.SignalResponse
5, // 7: livekit.SignalNodeMessage.end_session:type_name -> livekit.EndSession
12, // 8: livekit.StartSession.permission:type_name -> livekit.ParticipantPermission
9, // [9:9] is the sub-list for method output_type
9, // [9:9] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
@@ -845,18 +784,6 @@ func file_livekit_internal_proto_init() {
}
}
file_livekit_internal_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ParticipantPermission); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_livekit_internal_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EndSession); i {
case 0:
return &v.state
@@ -868,7 +795,7 @@ func file_livekit_internal_proto_init() {
return nil
}
}
file_livekit_internal_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
file_livekit_internal_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RemoveParticipant); i {
case 0:
return &v.state
@@ -886,7 +813,7 @@ func file_livekit_internal_proto_init() {
(*RTCNodeMessage_Request)(nil),
(*RTCNodeMessage_RemoveParticipant)(nil),
(*RTCNodeMessage_MuteTrack)(nil),
(*RTCNodeMessage_UpdateMetadata)(nil),
(*RTCNodeMessage_UpdateParticipant)(nil),
}
file_livekit_internal_proto_msgTypes[3].OneofWrappers = []interface{}{
(*SignalNodeMessage_Response)(nil),
@@ -898,7 +825,7 @@ func file_livekit_internal_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_livekit_internal_proto_rawDesc,
NumEnums: 0,
NumMessages: 8,
NumMessages: 7,
NumExtensions: 0,
NumServices: 0,
},

View File

@@ -573,17 +573,17 @@ func (x *MuteRoomTrackResponse) GetTrack() *TrackInfo {
return nil
}
type UpdateParticipantMetadataRequest struct {
type ParticipantPermission struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Target *RoomParticipantIdentity `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
Metadata string `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"`
CanSubscribe bool `protobuf:"varint,1,opt,name=can_subscribe,json=canSubscribe,proto3" json:"can_subscribe,omitempty"`
CanPublish bool `protobuf:"varint,2,opt,name=can_publish,json=canPublish,proto3" json:"can_publish,omitempty"`
}
func (x *UpdateParticipantMetadataRequest) Reset() {
*x = UpdateParticipantMetadataRequest{}
func (x *ParticipantPermission) Reset() {
*x = ParticipantPermission{}
if protoimpl.UnsafeEnabled {
mi := &file_livekit_room_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -591,13 +591,13 @@ func (x *UpdateParticipantMetadataRequest) Reset() {
}
}
func (x *UpdateParticipantMetadataRequest) String() string {
func (x *ParticipantPermission) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateParticipantMetadataRequest) ProtoMessage() {}
func (*ParticipantPermission) ProtoMessage() {}
func (x *UpdateParticipantMetadataRequest) ProtoReflect() protoreflect.Message {
func (x *ParticipantPermission) ProtoReflect() protoreflect.Message {
mi := &file_livekit_room_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -609,25 +609,96 @@ func (x *UpdateParticipantMetadataRequest) ProtoReflect() protoreflect.Message {
return mi.MessageOf(x)
}
// Deprecated: Use UpdateParticipantMetadataRequest.ProtoReflect.Descriptor instead.
func (*UpdateParticipantMetadataRequest) Descriptor() ([]byte, []int) {
// Deprecated: Use ParticipantPermission.ProtoReflect.Descriptor instead.
func (*ParticipantPermission) Descriptor() ([]byte, []int) {
return file_livekit_room_proto_rawDescGZIP(), []int{11}
}
func (x *UpdateParticipantMetadataRequest) GetTarget() *RoomParticipantIdentity {
func (x *ParticipantPermission) GetCanSubscribe() bool {
if x != nil {
return x.Target
return x.CanSubscribe
}
return nil
return false
}
func (x *UpdateParticipantMetadataRequest) GetMetadata() string {
func (x *ParticipantPermission) GetCanPublish() bool {
if x != nil {
return x.CanPublish
}
return false
}
type UpdateParticipantRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Room string `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"`
Identity string `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"`
Metadata string `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
Permission *ParticipantPermission `protobuf:"bytes,4,opt,name=permission,proto3" json:"permission,omitempty"`
}
func (x *UpdateParticipantRequest) Reset() {
*x = UpdateParticipantRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_livekit_room_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UpdateParticipantRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateParticipantRequest) ProtoMessage() {}
func (x *UpdateParticipantRequest) ProtoReflect() protoreflect.Message {
mi := &file_livekit_room_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateParticipantRequest.ProtoReflect.Descriptor instead.
func (*UpdateParticipantRequest) Descriptor() ([]byte, []int) {
return file_livekit_room_proto_rawDescGZIP(), []int{12}
}
func (x *UpdateParticipantRequest) GetRoom() string {
if x != nil {
return x.Room
}
return ""
}
func (x *UpdateParticipantRequest) GetIdentity() string {
if x != nil {
return x.Identity
}
return ""
}
func (x *UpdateParticipantRequest) GetMetadata() string {
if x != nil {
return x.Metadata
}
return ""
}
func (x *UpdateParticipantRequest) GetPermission() *ParticipantPermission {
if x != nil {
return x.Permission
}
return nil
}
var File_livekit_room_proto protoreflect.FileDescriptor
var file_livekit_room_proto_rawDesc = []byte{
@@ -679,59 +750,67 @@ var file_livekit_room_proto_rawDesc = []byte{
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63,
0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69,
0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x74, 0x72, 0x61,
0x63, 0x6b, 0x22, 0x78, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74,
0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74,
0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74,
0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x32, 0x8a, 0x05, 0x0a,
0x0b, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x0a,
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x76,
0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74,
0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x42, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f,
0x6d, 0x73, 0x12, 0x19, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73,
0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e,
0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x6d,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c,
0x65, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69,
0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x12, 0x57, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
0x61, 0x6e, 0x74, 0x73, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c,
0x63, 0x6b, 0x22, 0x5d, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63,
0x61, 0x6e, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x01, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x18,
0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x61, 0x6e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73,
0x68, 0x22, 0xa6, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74,
0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f,
0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1a,
0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x0a, 0x70, 0x65,
0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e,
0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69,
0x70, 0x61, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a,
0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xfa, 0x04, 0x0a, 0x0b, 0x52,
0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x43, 0x72,
0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b,
0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52,
0x6f, 0x6f, 0x6d, 0x12, 0x42, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73,
0x12, 0x19, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69,
0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74,
0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e,
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65,
0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57,
0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
0x74, 0x73, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73,
0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c,
0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74,
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0e, 0x47, 0x65, 0x74,
0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6c, 0x69,
0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x18, 0x2e,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x61,
0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x76, 0x65,
0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x6c, 0x69,
0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6c, 0x69, 0x76,
0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69,
0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x22, 0x2e, 0x6c,
0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x61, 0x72,
0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x12, 0x53, 0x0a, 0x12, 0x4d, 0x75, 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65,
0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74,
0x2e, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e,
0x4d, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x76,
0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69,
0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e,
0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x11, 0x52, 0x65, 0x6d, 0x6f, 0x76,
0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x6c,
0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69,
0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0x22,
0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50,
0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x4d, 0x75, 0x74, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73,
0x68, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b,
0x69, 0x74, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69,
0x74, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74,
0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61,
0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74,
0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f,
0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75,
0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x6c, 0x69,
0x76, 0x65, 0x6b, 0x69, 0x74, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x33,
}
var (
@@ -746,29 +825,30 @@ func file_livekit_room_proto_rawDescGZIP() []byte {
return file_livekit_room_proto_rawDescData
}
var file_livekit_room_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_livekit_room_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
var file_livekit_room_proto_goTypes = []interface{}{
(*CreateRoomRequest)(nil), // 0: livekit.CreateRoomRequest
(*ListRoomsRequest)(nil), // 1: livekit.ListRoomsRequest
(*ListRoomsResponse)(nil), // 2: livekit.ListRoomsResponse
(*DeleteRoomRequest)(nil), // 3: livekit.DeleteRoomRequest
(*DeleteRoomResponse)(nil), // 4: livekit.DeleteRoomResponse
(*ListParticipantsRequest)(nil), // 5: livekit.ListParticipantsRequest
(*ListParticipantsResponse)(nil), // 6: livekit.ListParticipantsResponse
(*RoomParticipantIdentity)(nil), // 7: livekit.RoomParticipantIdentity
(*RemoveParticipantResponse)(nil), // 8: livekit.RemoveParticipantResponse
(*MuteRoomTrackRequest)(nil), // 9: livekit.MuteRoomTrackRequest
(*MuteRoomTrackResponse)(nil), // 10: livekit.MuteRoomTrackResponse
(*UpdateParticipantMetadataRequest)(nil), // 11: livekit.UpdateParticipantMetadataRequest
(*Room)(nil), // 12: livekit.Room
(*ParticipantInfo)(nil), // 13: livekit.ParticipantInfo
(*TrackInfo)(nil), // 14: livekit.TrackInfo
(*CreateRoomRequest)(nil), // 0: livekit.CreateRoomRequest
(*ListRoomsRequest)(nil), // 1: livekit.ListRoomsRequest
(*ListRoomsResponse)(nil), // 2: livekit.ListRoomsResponse
(*DeleteRoomRequest)(nil), // 3: livekit.DeleteRoomRequest
(*DeleteRoomResponse)(nil), // 4: livekit.DeleteRoomResponse
(*ListParticipantsRequest)(nil), // 5: livekit.ListParticipantsRequest
(*ListParticipantsResponse)(nil), // 6: livekit.ListParticipantsResponse
(*RoomParticipantIdentity)(nil), // 7: livekit.RoomParticipantIdentity
(*RemoveParticipantResponse)(nil), // 8: livekit.RemoveParticipantResponse
(*MuteRoomTrackRequest)(nil), // 9: livekit.MuteRoomTrackRequest
(*MuteRoomTrackResponse)(nil), // 10: livekit.MuteRoomTrackResponse
(*ParticipantPermission)(nil), // 11: livekit.ParticipantPermission
(*UpdateParticipantRequest)(nil), // 12: livekit.UpdateParticipantRequest
(*Room)(nil), // 13: livekit.Room
(*ParticipantInfo)(nil), // 14: livekit.ParticipantInfo
(*TrackInfo)(nil), // 15: livekit.TrackInfo
}
var file_livekit_room_proto_depIdxs = []int32{
12, // 0: livekit.ListRoomsResponse.rooms:type_name -> livekit.Room
13, // 1: livekit.ListParticipantsResponse.participants:type_name -> livekit.ParticipantInfo
14, // 2: livekit.MuteRoomTrackResponse.track:type_name -> livekit.TrackInfo
7, // 3: livekit.UpdateParticipantMetadataRequest.target:type_name -> livekit.RoomParticipantIdentity
13, // 0: livekit.ListRoomsResponse.rooms:type_name -> livekit.Room
14, // 1: livekit.ListParticipantsResponse.participants:type_name -> livekit.ParticipantInfo
15, // 2: livekit.MuteRoomTrackResponse.track:type_name -> livekit.TrackInfo
11, // 3: livekit.UpdateParticipantRequest.permission:type_name -> livekit.ParticipantPermission
0, // 4: livekit.RoomService.CreateRoom:input_type -> livekit.CreateRoomRequest
1, // 5: livekit.RoomService.ListRooms:input_type -> livekit.ListRoomsRequest
3, // 6: livekit.RoomService.DeleteRoom:input_type -> livekit.DeleteRoomRequest
@@ -776,15 +856,15 @@ var file_livekit_room_proto_depIdxs = []int32{
7, // 8: livekit.RoomService.GetParticipant:input_type -> livekit.RoomParticipantIdentity
7, // 9: livekit.RoomService.RemoveParticipant:input_type -> livekit.RoomParticipantIdentity
9, // 10: livekit.RoomService.MutePublishedTrack:input_type -> livekit.MuteRoomTrackRequest
11, // 11: livekit.RoomService.UpdateParticipantMetadata:input_type -> livekit.UpdateParticipantMetadataRequest
12, // 12: livekit.RoomService.CreateRoom:output_type -> livekit.Room
12, // 11: livekit.RoomService.UpdateParticipant:input_type -> livekit.UpdateParticipantRequest
13, // 12: livekit.RoomService.CreateRoom:output_type -> livekit.Room
2, // 13: livekit.RoomService.ListRooms:output_type -> livekit.ListRoomsResponse
4, // 14: livekit.RoomService.DeleteRoom:output_type -> livekit.DeleteRoomResponse
6, // 15: livekit.RoomService.ListParticipants:output_type -> livekit.ListParticipantsResponse
13, // 16: livekit.RoomService.GetParticipant:output_type -> livekit.ParticipantInfo
14, // 16: livekit.RoomService.GetParticipant:output_type -> livekit.ParticipantInfo
8, // 17: livekit.RoomService.RemoveParticipant:output_type -> livekit.RemoveParticipantResponse
10, // 18: livekit.RoomService.MutePublishedTrack:output_type -> livekit.MuteRoomTrackResponse
13, // 19: livekit.RoomService.UpdateParticipantMetadata:output_type -> livekit.ParticipantInfo
14, // 19: livekit.RoomService.UpdateParticipant:output_type -> livekit.ParticipantInfo
12, // [12:20] is the sub-list for method output_type
4, // [4:12] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
@@ -932,7 +1012,19 @@ func file_livekit_room_proto_init() {
}
}
file_livekit_room_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateParticipantMetadataRequest); i {
switch v := v.(*ParticipantPermission); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_livekit_room_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UpdateParticipantRequest); i {
case 0:
return &v.state
case 1:
@@ -950,7 +1042,7 @@ func file_livekit_room_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_livekit_room_proto_rawDesc,
NumEnums: 0,
NumMessages: 12,
NumMessages: 13,
NumExtensions: 0,
NumServices: 1,
},

View File

@@ -62,7 +62,7 @@ type RoomService interface {
MutePublishedTrack(context.Context, *MuteRoomTrackRequest) (*MuteRoomTrackResponse, error)
// update participant metadata
UpdateParticipantMetadata(context.Context, *UpdateParticipantMetadataRequest) (*ParticipantInfo, error)
UpdateParticipant(context.Context, *UpdateParticipantRequest) (*ParticipantInfo, error)
}
// ===========================
@@ -99,7 +99,7 @@ func NewRoomServiceProtobufClient(baseURL string, client HTTPClient, opts ...twi
serviceURL + "GetParticipant",
serviceURL + "RemoveParticipant",
serviceURL + "MutePublishedTrack",
serviceURL + "UpdateParticipantMetadata",
serviceURL + "UpdateParticipant",
}
return &roomServiceProtobufClient{
@@ -432,20 +432,20 @@ func (c *roomServiceProtobufClient) callMutePublishedTrack(ctx context.Context,
return out, nil
}
func (c *roomServiceProtobufClient) UpdateParticipantMetadata(ctx context.Context, in *UpdateParticipantMetadataRequest) (*ParticipantInfo, error) {
func (c *roomServiceProtobufClient) UpdateParticipant(ctx context.Context, in *UpdateParticipantRequest) (*ParticipantInfo, error) {
ctx = ctxsetters.WithPackageName(ctx, "livekit")
ctx = ctxsetters.WithServiceName(ctx, "RoomService")
ctx = ctxsetters.WithMethodName(ctx, "UpdateParticipantMetadata")
caller := c.callUpdateParticipantMetadata
ctx = ctxsetters.WithMethodName(ctx, "UpdateParticipant")
caller := c.callUpdateParticipant
if c.interceptor != nil {
caller = func(ctx context.Context, req *UpdateParticipantMetadataRequest) (*ParticipantInfo, error) {
caller = func(ctx context.Context, req *UpdateParticipantRequest) (*ParticipantInfo, error) {
resp, err := c.interceptor(
func(ctx context.Context, req interface{}) (interface{}, error) {
typedReq, ok := req.(*UpdateParticipantMetadataRequest)
typedReq, ok := req.(*UpdateParticipantRequest)
if !ok {
return nil, twirp.InternalError("failed type assertion req.(*UpdateParticipantMetadataRequest) when calling interceptor")
return nil, twirp.InternalError("failed type assertion req.(*UpdateParticipantRequest) when calling interceptor")
}
return c.callUpdateParticipantMetadata(ctx, typedReq)
return c.callUpdateParticipant(ctx, typedReq)
},
)(ctx, req)
if resp != nil {
@@ -461,7 +461,7 @@ func (c *roomServiceProtobufClient) UpdateParticipantMetadata(ctx context.Contex
return caller(ctx, in)
}
func (c *roomServiceProtobufClient) callUpdateParticipantMetadata(ctx context.Context, in *UpdateParticipantMetadataRequest) (*ParticipantInfo, error) {
func (c *roomServiceProtobufClient) callUpdateParticipant(ctx context.Context, in *UpdateParticipantRequest) (*ParticipantInfo, error) {
out := new(ParticipantInfo)
ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[7], in, out)
if err != nil {
@@ -512,7 +512,7 @@ func NewRoomServiceJSONClient(baseURL string, client HTTPClient, opts ...twirp.C
serviceURL + "GetParticipant",
serviceURL + "RemoveParticipant",
serviceURL + "MutePublishedTrack",
serviceURL + "UpdateParticipantMetadata",
serviceURL + "UpdateParticipant",
}
return &roomServiceJSONClient{
@@ -845,20 +845,20 @@ func (c *roomServiceJSONClient) callMutePublishedTrack(ctx context.Context, in *
return out, nil
}
func (c *roomServiceJSONClient) UpdateParticipantMetadata(ctx context.Context, in *UpdateParticipantMetadataRequest) (*ParticipantInfo, error) {
func (c *roomServiceJSONClient) UpdateParticipant(ctx context.Context, in *UpdateParticipantRequest) (*ParticipantInfo, error) {
ctx = ctxsetters.WithPackageName(ctx, "livekit")
ctx = ctxsetters.WithServiceName(ctx, "RoomService")
ctx = ctxsetters.WithMethodName(ctx, "UpdateParticipantMetadata")
caller := c.callUpdateParticipantMetadata
ctx = ctxsetters.WithMethodName(ctx, "UpdateParticipant")
caller := c.callUpdateParticipant
if c.interceptor != nil {
caller = func(ctx context.Context, req *UpdateParticipantMetadataRequest) (*ParticipantInfo, error) {
caller = func(ctx context.Context, req *UpdateParticipantRequest) (*ParticipantInfo, error) {
resp, err := c.interceptor(
func(ctx context.Context, req interface{}) (interface{}, error) {
typedReq, ok := req.(*UpdateParticipantMetadataRequest)
typedReq, ok := req.(*UpdateParticipantRequest)
if !ok {
return nil, twirp.InternalError("failed type assertion req.(*UpdateParticipantMetadataRequest) when calling interceptor")
return nil, twirp.InternalError("failed type assertion req.(*UpdateParticipantRequest) when calling interceptor")
}
return c.callUpdateParticipantMetadata(ctx, typedReq)
return c.callUpdateParticipant(ctx, typedReq)
},
)(ctx, req)
if resp != nil {
@@ -874,7 +874,7 @@ func (c *roomServiceJSONClient) UpdateParticipantMetadata(ctx context.Context, i
return caller(ctx, in)
}
func (c *roomServiceJSONClient) callUpdateParticipantMetadata(ctx context.Context, in *UpdateParticipantMetadataRequest) (*ParticipantInfo, error) {
func (c *roomServiceJSONClient) callUpdateParticipant(ctx context.Context, in *UpdateParticipantRequest) (*ParticipantInfo, error) {
out := new(ParticipantInfo)
ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[7], in, out)
if err != nil {
@@ -996,8 +996,8 @@ func (s *roomServiceServer) ServeHTTP(resp http.ResponseWriter, req *http.Reques
case "MutePublishedTrack":
s.serveMutePublishedTrack(ctx, resp, req)
return
case "UpdateParticipantMetadata":
s.serveUpdateParticipantMetadata(ctx, resp, req)
case "UpdateParticipant":
s.serveUpdateParticipant(ctx, resp, req)
return
default:
msg := fmt.Sprintf("no handler for path %q", req.URL.Path)
@@ -2231,7 +2231,7 @@ func (s *roomServiceServer) serveMutePublishedTrackProtobuf(ctx context.Context,
callResponseSent(ctx, s.hooks)
}
func (s *roomServiceServer) serveUpdateParticipantMetadata(ctx context.Context, resp http.ResponseWriter, req *http.Request) {
func (s *roomServiceServer) serveUpdateParticipant(ctx context.Context, resp http.ResponseWriter, req *http.Request) {
header := req.Header.Get("Content-Type")
i := strings.Index(header, ";")
if i == -1 {
@@ -2239,9 +2239,9 @@ func (s *roomServiceServer) serveUpdateParticipantMetadata(ctx context.Context,
}
switch strings.TrimSpace(strings.ToLower(header[:i])) {
case "application/json":
s.serveUpdateParticipantMetadataJSON(ctx, resp, req)
s.serveUpdateParticipantJSON(ctx, resp, req)
case "application/protobuf":
s.serveUpdateParticipantMetadataProtobuf(ctx, resp, req)
s.serveUpdateParticipantProtobuf(ctx, resp, req)
default:
msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type"))
twerr := badRouteError(msg, req.Method, req.URL.Path)
@@ -2249,32 +2249,32 @@ func (s *roomServiceServer) serveUpdateParticipantMetadata(ctx context.Context,
}
}
func (s *roomServiceServer) serveUpdateParticipantMetadataJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) {
func (s *roomServiceServer) serveUpdateParticipantJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) {
var err error
ctx = ctxsetters.WithMethodName(ctx, "UpdateParticipantMetadata")
ctx = ctxsetters.WithMethodName(ctx, "UpdateParticipant")
ctx, err = callRequestRouted(ctx, s.hooks)
if err != nil {
s.writeError(ctx, resp, err)
return
}
reqContent := new(UpdateParticipantMetadataRequest)
reqContent := new(UpdateParticipantRequest)
unmarshaler := jsonpb.Unmarshaler{AllowUnknownFields: true}
if err = unmarshaler.Unmarshal(req.Body, reqContent); err != nil {
s.writeError(ctx, resp, malformedRequestError("the json request could not be decoded"))
return
}
handler := s.RoomService.UpdateParticipantMetadata
handler := s.RoomService.UpdateParticipant
if s.interceptor != nil {
handler = func(ctx context.Context, req *UpdateParticipantMetadataRequest) (*ParticipantInfo, error) {
handler = func(ctx context.Context, req *UpdateParticipantRequest) (*ParticipantInfo, error) {
resp, err := s.interceptor(
func(ctx context.Context, req interface{}) (interface{}, error) {
typedReq, ok := req.(*UpdateParticipantMetadataRequest)
typedReq, ok := req.(*UpdateParticipantRequest)
if !ok {
return nil, twirp.InternalError("failed type assertion req.(*UpdateParticipantMetadataRequest) when calling interceptor")
return nil, twirp.InternalError("failed type assertion req.(*UpdateParticipantRequest) when calling interceptor")
}
return s.RoomService.UpdateParticipantMetadata(ctx, typedReq)
return s.RoomService.UpdateParticipant(ctx, typedReq)
},
)(ctx, req)
if resp != nil {
@@ -2300,7 +2300,7 @@ func (s *roomServiceServer) serveUpdateParticipantMetadataJSON(ctx context.Conte
return
}
if respContent == nil {
s.writeError(ctx, resp, twirp.InternalError("received a nil *ParticipantInfo and nil error while calling UpdateParticipantMetadata. nil responses are not supported"))
s.writeError(ctx, resp, twirp.InternalError("received a nil *ParticipantInfo and nil error while calling UpdateParticipant. nil responses are not supported"))
return
}
@@ -2327,9 +2327,9 @@ func (s *roomServiceServer) serveUpdateParticipantMetadataJSON(ctx context.Conte
callResponseSent(ctx, s.hooks)
}
func (s *roomServiceServer) serveUpdateParticipantMetadataProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) {
func (s *roomServiceServer) serveUpdateParticipantProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) {
var err error
ctx = ctxsetters.WithMethodName(ctx, "UpdateParticipantMetadata")
ctx = ctxsetters.WithMethodName(ctx, "UpdateParticipant")
ctx, err = callRequestRouted(ctx, s.hooks)
if err != nil {
s.writeError(ctx, resp, err)
@@ -2341,22 +2341,22 @@ func (s *roomServiceServer) serveUpdateParticipantMetadataProtobuf(ctx context.C
s.writeError(ctx, resp, wrapInternal(err, "failed to read request body"))
return
}
reqContent := new(UpdateParticipantMetadataRequest)
reqContent := new(UpdateParticipantRequest)
if err = proto.Unmarshal(buf, reqContent); err != nil {
s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded"))
return
}
handler := s.RoomService.UpdateParticipantMetadata
handler := s.RoomService.UpdateParticipant
if s.interceptor != nil {
handler = func(ctx context.Context, req *UpdateParticipantMetadataRequest) (*ParticipantInfo, error) {
handler = func(ctx context.Context, req *UpdateParticipantRequest) (*ParticipantInfo, error) {
resp, err := s.interceptor(
func(ctx context.Context, req interface{}) (interface{}, error) {
typedReq, ok := req.(*UpdateParticipantMetadataRequest)
typedReq, ok := req.(*UpdateParticipantRequest)
if !ok {
return nil, twirp.InternalError("failed type assertion req.(*UpdateParticipantMetadataRequest) when calling interceptor")
return nil, twirp.InternalError("failed type assertion req.(*UpdateParticipantRequest) when calling interceptor")
}
return s.RoomService.UpdateParticipantMetadata(ctx, typedReq)
return s.RoomService.UpdateParticipant(ctx, typedReq)
},
)(ctx, req)
if resp != nil {
@@ -2382,7 +2382,7 @@ func (s *roomServiceServer) serveUpdateParticipantMetadataProtobuf(ctx context.C
return
}
if respContent == nil {
s.writeError(ctx, resp, twirp.InternalError("received a nil *ParticipantInfo and nil error while calling UpdateParticipantMetadata. nil responses are not supported"))
s.writeError(ctx, resp, twirp.InternalError("received a nil *ParticipantInfo and nil error while calling UpdateParticipant. nil responses are not supported"))
return
}
@@ -2968,44 +2968,47 @@ func callClientError(ctx context.Context, h *twirp.ClientHooks, err twirp.Error)
}
var twirpFileDescriptor0 = []byte{
// 609 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x4d, 0x6f, 0xd3, 0x40,
0x10, 0x55, 0x68, 0xd3, 0x36, 0xd3, 0x16, 0x9a, 0x55, 0x50, 0x5d, 0x57, 0x20, 0x63, 0x0e, 0xa4,
0x87, 0x26, 0x22, 0x1c, 0xe8, 0x81, 0x0b, 0x05, 0x84, 0x22, 0xb5, 0x52, 0xe5, 0x14, 0xf1, 0x71,
0x09, 0x9b, 0x78, 0x68, 0x57, 0xcd, 0x7a, 0x8d, 0xbd, 0x8e, 0x92, 0xbf, 0xc0, 0x89, 0x9f, 0x8c,
0x76, 0xbd, 0x76, 0xec, 0xc6, 0x49, 0x39, 0xc5, 0x33, 0xf3, 0xe6, 0xe3, 0xcd, 0xce, 0x53, 0x80,
0x4c, 0xd8, 0x14, 0xef, 0x98, 0x1c, 0x46, 0x42, 0xf0, 0x4e, 0x18, 0x09, 0x29, 0xc8, 0xb6, 0xf1,
0xd9, 0xad, 0x2c, 0xc8, 0x85, 0x8f, 0x93, 0x38, 0x0d, 0xbb, 0x7f, 0x6b, 0xd0, 0xfc, 0x10, 0x21,
0x95, 0xe8, 0x09, 0xc1, 0x3d, 0xfc, 0x9d, 0x60, 0x2c, 0x09, 0x81, 0xcd, 0x80, 0x72, 0xb4, 0x6a,
0x4e, 0xad, 0xdd, 0xf0, 0xf4, 0x37, 0x79, 0x09, 0xfb, 0xc8, 0x43, 0x39, 0x1f, 0x4a, 0xc6, 0x51,
0x24, 0xd2, 0x7a, 0xe4, 0xd4, 0xda, 0xfb, 0xde, 0x9e, 0x76, 0x5e, 0xa7, 0x3e, 0x72, 0x02, 0x07,
0x9c, 0xce, 0x86, 0x21, 0x8d, 0x24, 0x1b, 0xb3, 0x90, 0x06, 0x32, 0xb6, 0x36, 0x34, 0xee, 0x09,
0xa7, 0xb3, 0xab, 0x82, 0x9b, 0x1c, 0xc2, 0x76, 0x20, 0x7c, 0x1c, 0x32, 0xdf, 0xda, 0xd4, 0x6d,
0xb6, 0x94, 0xd9, 0xf7, 0x5d, 0x02, 0x07, 0x17, 0x2c, 0x96, 0x6a, 0x9e, 0xd8, 0x0c, 0xe4, 0x9e,
0x41, 0xb3, 0xe0, 0x8b, 0x43, 0x11, 0xc4, 0x6a, 0xa2, 0xba, 0x22, 0x1a, 0x5b, 0x35, 0x67, 0xa3,
0xbd, 0xdb, 0xdb, 0xef, 0x18, 0x86, 0x1d, 0x4d, 0x25, 0x8d, 0xb9, 0xaf, 0xa0, 0xf9, 0x11, 0x27,
0xb8, 0xc4, 0x4f, 0x45, 0x33, 0x7e, 0xea, 0xdb, 0x6d, 0x01, 0x29, 0x02, 0xd3, 0x1e, 0xee, 0x29,
0x1c, 0xaa, 0xc6, 0xc5, 0xc9, 0xd7, 0x15, 0xf9, 0x06, 0xd6, 0x32, 0xdc, 0x8c, 0xfb, 0x0e, 0xf6,
0x4a, 0x7b, 0x49, 0xa7, 0xb6, 0xf2, 0xa9, 0x0b, 0x49, 0xfd, 0xe0, 0x97, 0xf0, 0x4a, 0x68, 0xb7,
0x0f, 0x87, 0x6a, 0xb0, 0x22, 0xc8, 0xc7, 0x40, 0x32, 0x39, 0xaf, 0x1a, 0x84, 0xd8, 0xb0, 0xc3,
0x4c, 0x5c, 0x3f, 0x54, 0xc3, 0xcb, 0x6d, 0xf7, 0x18, 0x8e, 0x3c, 0xe4, 0x62, 0x8a, 0x85, 0x62,
0x39, 0xe1, 0x39, 0xb4, 0x2e, 0x93, 0x74, 0x09, 0xd7, 0x11, 0x1d, 0xdf, 0xad, 0x61, 0xbb, 0xae,
0x09, 0x39, 0x86, 0x86, 0x54, 0xf9, 0xc3, 0x98, 0xf9, 0xfa, 0x04, 0x1a, 0xde, 0x8e, 0x76, 0x0c,
0x98, 0x4f, 0x5a, 0x50, 0xe7, 0x89, 0xc4, 0xf4, 0xe5, 0x77, 0xbc, 0xd4, 0x70, 0xdf, 0xc3, 0xd3,
0x7b, 0xad, 0xcd, 0xe6, 0xda, 0x50, 0xd7, 0xa9, 0xba, 0xf9, 0x6e, 0x8f, 0xe4, 0x2b, 0xd3, 0x30,
0xbd, 0xac, 0x14, 0xe0, 0xce, 0xc0, 0xf9, 0x12, 0xfa, 0x54, 0x16, 0xa9, 0x5d, 0xa2, 0xa4, 0x3e,
0x95, 0x34, 0x63, 0x72, 0x06, 0x5b, 0x92, 0x46, 0x37, 0x28, 0x4d, 0x39, 0xa7, 0x74, 0x37, 0x15,
0x0b, 0xf6, 0x0c, 0x5e, 0xf1, 0xe5, 0xa6, 0x58, 0xc6, 0x37, 0xb3, 0x7b, 0x7f, 0xea, 0xb0, 0xab,
0xf2, 0x07, 0x18, 0x4d, 0xd9, 0x18, 0xc9, 0x5b, 0x80, 0x85, 0xae, 0x88, 0x9d, 0xf7, 0x58, 0x12,
0x9b, 0x5d, 0xbe, 0x5b, 0x72, 0x0e, 0x8d, 0xfc, 0xd4, 0xc9, 0x51, 0x1e, 0xbb, 0x2f, 0x09, 0xdb,
0xae, 0x0a, 0x99, 0x85, 0x7d, 0x02, 0x58, 0xdc, 0x72, 0xa1, 0xf9, 0x92, 0x12, 0xec, 0xe3, 0xca,
0x98, 0x29, 0xf3, 0x35, 0x55, 0x62, 0x49, 0xb6, 0x4e, 0xa9, 0x6d, 0x85, 0x2e, 0xec, 0x17, 0x6b,
0x10, 0xa6, 0xf0, 0x05, 0x3c, 0xfe, 0x8c, 0xc5, 0x10, 0x79, 0xf0, 0x11, 0xec, 0x95, 0x42, 0x21,
0xdf, 0xa1, 0xb9, 0x74, 0xcf, 0xff, 0x51, 0xd0, 0x5d, 0x20, 0x56, 0xa9, 0x81, 0x0c, 0x80, 0xa8,
0x93, 0xbc, 0x4a, 0x46, 0x13, 0x16, 0xdf, 0xa2, 0xaf, 0x0f, 0x8e, 0x3c, 0xcb, 0x33, 0xab, 0xa4,
0x62, 0x3f, 0x5f, 0x15, 0x36, 0x45, 0x7f, 0xc2, 0xd1, 0xca, 0x23, 0x25, 0x27, 0x79, 0xf2, 0x43,
0x87, 0xbc, 0x7a, 0x23, 0xe7, 0xaf, 0x7f, 0x74, 0x6f, 0x98, 0xbc, 0x4d, 0x46, 0x9d, 0xb1, 0xe0,
0x5d, 0x83, 0xca, 0x7e, 0x4f, 0x63, 0x8c, 0xa6, 0x18, 0x75, 0xf5, 0x1f, 0x40, 0xe6, 0x1c, 0x6d,
0x69, 0xf3, 0xcd, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x85, 0xd4, 0xae, 0xf7, 0x44, 0x06, 0x00,
0x00,
// 663 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x4d, 0x6f, 0xd3, 0x40,
0x10, 0x55, 0xe8, 0x57, 0x32, 0x69, 0xa1, 0x59, 0xa5, 0xaa, 0xeb, 0x8a, 0x12, 0xcc, 0x81, 0x70,
0x68, 0x2a, 0xc2, 0x01, 0x0e, 0x08, 0x89, 0x02, 0x42, 0x95, 0x8a, 0x14, 0x39, 0x45, 0x7c, 0x48,
0x28, 0xda, 0xd8, 0x03, 0x5d, 0x35, 0xeb, 0x35, 0xde, 0x75, 0xd4, 0xfe, 0x0b, 0x7e, 0x05, 0x3f,
0x92, 0x13, 0xda, 0xf5, 0x47, 0x36, 0x4d, 0x1c, 0x21, 0x4e, 0xf1, 0xce, 0xbc, 0x9d, 0x99, 0xf7,
0x3c, 0xcf, 0x01, 0x32, 0x61, 0x53, 0xbc, 0x62, 0x6a, 0x94, 0x08, 0xc1, 0x7b, 0x71, 0x22, 0x94,
0x20, 0x5b, 0x79, 0xcc, 0x6d, 0x17, 0x49, 0x2e, 0x42, 0x9c, 0xc8, 0x2c, 0xed, 0xfd, 0xaa, 0x41,
0xeb, 0x4d, 0x82, 0x54, 0xa1, 0x2f, 0x04, 0xf7, 0xf1, 0x67, 0x8a, 0x52, 0x11, 0x02, 0xeb, 0x11,
0xe5, 0xe8, 0xd4, 0x3a, 0xb5, 0x6e, 0xc3, 0x37, 0xcf, 0xe4, 0x11, 0xec, 0x20, 0x8f, 0xd5, 0xcd,
0x48, 0x31, 0x8e, 0x22, 0x55, 0xce, 0x9d, 0x4e, 0xad, 0xbb, 0xe3, 0x6f, 0x9b, 0xe0, 0x45, 0x16,
0x23, 0x4f, 0x60, 0x97, 0xd3, 0xeb, 0x51, 0x4c, 0x13, 0xc5, 0x02, 0x16, 0xd3, 0x48, 0x49, 0x67,
0xcd, 0xe0, 0xee, 0x71, 0x7a, 0x3d, 0xb0, 0xc2, 0x64, 0x1f, 0xb6, 0x22, 0x11, 0xe2, 0x88, 0x85,
0xce, 0xba, 0x69, 0xb3, 0xa9, 0x8f, 0x67, 0xa1, 0x47, 0x60, 0xf7, 0x9c, 0x49, 0xa5, 0xe7, 0x91,
0xf9, 0x40, 0xde, 0x0b, 0x68, 0x59, 0x31, 0x19, 0x8b, 0x48, 0xea, 0x89, 0x36, 0x34, 0x51, 0xe9,
0xd4, 0x3a, 0x6b, 0xdd, 0x66, 0x7f, 0xa7, 0x97, 0x33, 0xec, 0x19, 0x2a, 0x59, 0xce, 0x7b, 0x0c,
0xad, 0xb7, 0x38, 0xc1, 0x05, 0x7e, 0x3a, 0x5b, 0xf0, 0xd3, 0xcf, 0x5e, 0x1b, 0x88, 0x0d, 0xcc,
0x7a, 0x78, 0xc7, 0xb0, 0xaf, 0x1b, 0xdb, 0x93, 0xaf, 0x2a, 0xf2, 0x19, 0x9c, 0x45, 0x78, 0x3e,
0xee, 0x4b, 0xd8, 0x9e, 0xd3, 0x25, 0x9b, 0xda, 0x29, 0xa7, 0xb6, 0x2e, 0x9d, 0x45, 0xdf, 0x85,
0x3f, 0x87, 0xf6, 0xce, 0x60, 0x5f, 0x0f, 0x66, 0x83, 0x42, 0x8c, 0x14, 0x53, 0x37, 0xcb, 0x06,
0x21, 0x2e, 0xd4, 0x59, 0x9e, 0x37, 0x2f, 0xaa, 0xe1, 0x97, 0x67, 0xef, 0x10, 0x0e, 0x7c, 0xe4,
0x62, 0x8a, 0x56, 0xb1, 0x92, 0xf0, 0x0d, 0xb4, 0x3f, 0xa4, 0x99, 0x08, 0x17, 0x09, 0x0d, 0xae,
0x56, 0xb0, 0x5d, 0xd5, 0x84, 0x1c, 0x42, 0x43, 0xe9, 0xfb, 0x23, 0xc9, 0x42, 0xb3, 0x02, 0x0d,
0xbf, 0x6e, 0x02, 0x43, 0x16, 0x92, 0x36, 0x6c, 0xf0, 0x54, 0x61, 0xf6, 0xe6, 0xeb, 0x7e, 0x76,
0xf0, 0x5e, 0xc3, 0xde, 0xad, 0xd6, 0xb9, 0x72, 0x5d, 0xd8, 0x30, 0x57, 0x4d, 0xf3, 0x66, 0x9f,
0x94, 0x92, 0x19, 0x98, 0x11, 0x2b, 0x03, 0x78, 0xdf, 0x60, 0xcf, 0x22, 0x35, 0xc0, 0x84, 0x33,
0x29, 0x99, 0x88, 0xf4, 0xf6, 0x06, 0x34, 0x1a, 0xc9, 0x74, 0x2c, 0x83, 0x84, 0x8d, 0xb3, 0xd5,
0xae, 0xfb, 0xdb, 0x01, 0x8d, 0x86, 0x45, 0x8c, 0x3c, 0x80, 0xa6, 0x06, 0xc5, 0xe9, 0x78, 0xc2,
0xe4, 0xa5, 0xa1, 0x54, 0xf7, 0x21, 0xa0, 0xd1, 0x20, 0x8b, 0x78, 0xbf, 0x6b, 0xe0, 0x7c, 0x8c,
0x43, 0xaa, 0xe6, 0xa5, 0xfb, 0x3f, 0x85, 0x5c, 0xa8, 0x73, 0x54, 0x34, 0xa4, 0x8a, 0x16, 0x02,
0x15, 0x67, 0xf2, 0x0a, 0x20, 0x2e, 0x87, 0x37, 0x2a, 0x35, 0xfb, 0x47, 0xcb, 0x36, 0x65, 0x46,
0xd1, 0xb7, 0x6e, 0xf4, 0xff, 0xac, 0x43, 0x53, 0xeb, 0x38, 0xc4, 0x64, 0xca, 0x02, 0x24, 0xcf,
0x01, 0x66, 0x2e, 0x27, 0x6e, 0x59, 0x69, 0xc1, 0xfa, 0xee, 0xbc, 0x8b, 0xc8, 0x29, 0x34, 0x4a,
0xe3, 0x91, 0x83, 0x32, 0x77, 0xdb, 0xa0, 0xae, 0xbb, 0x2c, 0x95, 0xbf, 0xbe, 0x77, 0x00, 0x33,
0x67, 0x59, 0xcd, 0x17, 0x7c, 0xe9, 0x1e, 0x2e, 0xcd, 0xe5, 0x65, 0x3e, 0x65, 0xdf, 0x85, 0xb9,
0x8f, 0x48, 0x67, 0xae, 0xed, 0x12, 0x97, 0xba, 0x0f, 0x57, 0x20, 0xf2, 0xc2, 0xe7, 0x70, 0xf7,
0x3d, 0xda, 0x29, 0xab, 0x6c, 0x85, 0xe7, 0xdc, 0x4a, 0xdb, 0x92, 0x2f, 0xd0, 0x5a, 0x70, 0xd7,
0x3f, 0x14, 0xf4, 0x66, 0x88, 0x2a, 0x6f, 0x92, 0x21, 0x10, 0x6d, 0x90, 0x7c, 0x1b, 0x31, 0x34,
0xeb, 0x4f, 0xee, 0x97, 0x37, 0x97, 0x19, 0xd7, 0x3d, 0xaa, 0x4a, 0xe7, 0x45, 0x07, 0xd0, 0x5a,
0x58, 0x69, 0x32, 0x53, 0xad, 0x6a, 0xdd, 0xab, 0x15, 0x38, 0x7d, 0xfa, 0xf5, 0xe4, 0x07, 0x53,
0x97, 0xe9, 0xb8, 0x17, 0x08, 0x7e, 0x92, 0xa3, 0x8a, 0xdf, 0x63, 0x89, 0xc9, 0x14, 0x93, 0x13,
0xf3, 0xf7, 0x53, 0x04, 0xc7, 0x9b, 0xe6, 0xf8, 0xec, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xde,
0x27, 0x73, 0x48, 0xc2, 0x06, 0x00, 0x00,
}