From c4151981b4fab6233695e721dc8e0189642352d6 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Thu, 16 May 2024 17:01:48 -0700 Subject: [PATCH] Updates --- infra/link.pb.go | 4 +- infra/link_grpc.pb.go | 2 +- livekit/livekit_agent.pb.go | 887 ++++++++++++------- livekit/livekit_analytics.pb.go | 4 +- livekit/livekit_analytics_grpc.pb.go | 2 +- livekit/livekit_egress.pb.go | 4 +- livekit/livekit_ingress.pb.go | 4 +- livekit/livekit_internal.pb.go | 4 +- livekit/livekit_models.pb.go | 4 +- livekit/livekit_room.pb.go | 1231 ++++++++++++++++++++------ livekit/livekit_room.twirp.go | 1009 +++++++++++++++++++-- livekit/livekit_rtc.pb.go | 4 +- livekit/livekit_sip.pb.go | 4 +- livekit/livekit_webhook.pb.go | 4 +- protobufs/livekit_room.proto | 74 +- rpc/agent.pb.go | 4 +- rpc/egress.pb.go | 4 +- rpc/ingress.pb.go | 4 +- rpc/io.pb.go | 4 +- rpc/keepalive.pb.go | 4 +- rpc/participant.pb.go | 4 +- rpc/room.pb.go | 4 +- rpc/signal.pb.go | 4 +- rpc/sip.pb.go | 4 +- 24 files changed, 2544 insertions(+), 733 deletions(-) diff --git a/infra/link.pb.go b/infra/link.pb.go index e4989ff8..8bc93b12 100644 --- a/infra/link.pb.go +++ b/infra/link.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: infra/link.proto package infra diff --git a/infra/link_grpc.pb.go b/infra/link_grpc.pb.go index a7d8284e..ade86816 100644 --- a/infra/link_grpc.pb.go +++ b/infra/link_grpc.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v5.26.1 // source: infra/link.proto package infra diff --git a/livekit/livekit_agent.pb.go b/livekit/livekit_agent.pb.go index 2f5559cc..7fbaba75 100644 --- a/livekit/livekit_agent.pb.go +++ b/livekit/livekit_agent.pb.go @@ -4,7 +4,7 @@ // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // -// http://www.apache.org/licenses/LICENSE-2.0 +// http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_agent.proto package livekit @@ -175,15 +175,142 @@ func (JobStatus) EnumDescriptor() ([]byte, []int) { return file_livekit_agent_proto_rawDescGZIP(), []int{2} } +type StartAgentJobRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type JobType `protobuf:"varint,1,opt,name=type,proto3,enum=livekit.JobType" json:"type,omitempty"` + Room *Room `protobuf:"bytes,2,opt,name=room,proto3" json:"room,omitempty"` + Participant *ParticipantInfo `protobuf:"bytes,3,opt,name=participant,proto3,oneof" json:"participant,omitempty"` + Namespace string `protobuf:"bytes,4,opt,name=namespace,proto3" json:"namespace,omitempty"` + Metadata map[string]string `protobuf:"bytes,5,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *StartAgentJobRequest) Reset() { + *x = StartAgentJobRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_agent_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartAgentJobRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartAgentJobRequest) ProtoMessage() {} + +func (x *StartAgentJobRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_agent_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StartAgentJobRequest.ProtoReflect.Descriptor instead. +func (*StartAgentJobRequest) Descriptor() ([]byte, []int) { + return file_livekit_agent_proto_rawDescGZIP(), []int{0} +} + +func (x *StartAgentJobRequest) GetType() JobType { + if x != nil { + return x.Type + } + return JobType_JT_ROOM +} + +func (x *StartAgentJobRequest) GetRoom() *Room { + if x != nil { + return x.Room + } + return nil +} + +func (x *StartAgentJobRequest) GetParticipant() *ParticipantInfo { + if x != nil { + return x.Participant + } + return nil +} + +func (x *StartAgentJobRequest) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *StartAgentJobRequest) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +type StopAgentJobRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *StopAgentJobRequest) Reset() { + *x = StopAgentJobRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_agent_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopAgentJobRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopAgentJobRequest) ProtoMessage() {} + +func (x *StopAgentJobRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_agent_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StopAgentJobRequest.ProtoReflect.Descriptor instead. +func (*StopAgentJobRequest) Descriptor() ([]byte, []int) { + return file_livekit_agent_proto_rawDescGZIP(), []int{1} +} + +func (x *StopAgentJobRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + type WorkerInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` - Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + // Deprecated: Marked as deprecated in livekit_agent.proto. Type JobType `protobuf:"varint,5,opt,name=type,proto3,enum=livekit.JobType" json:"type,omitempty"` AllowedPermissions *ParticipantPermission `protobuf:"bytes,6,opt,name=allowed_permissions,json=allowedPermissions,proto3" json:"allowed_permissions,omitempty"` } @@ -191,7 +318,7 @@ type WorkerInfo struct { func (x *WorkerInfo) Reset() { *x = WorkerInfo{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[0] + mi := &file_livekit_agent_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -204,7 +331,7 @@ func (x *WorkerInfo) String() string { func (*WorkerInfo) ProtoMessage() {} func (x *WorkerInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[0] + mi := &file_livekit_agent_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -217,7 +344,7 @@ func (x *WorkerInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkerInfo.ProtoReflect.Descriptor instead. func (*WorkerInfo) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{0} + return file_livekit_agent_proto_rawDescGZIP(), []int{2} } func (x *WorkerInfo) GetId() string { @@ -248,6 +375,7 @@ func (x *WorkerInfo) GetName() string { return "" } +// Deprecated: Marked as deprecated in livekit_agent.proto. func (x *WorkerInfo) GetType() JobType { if x != nil { return x.Type @@ -275,7 +403,7 @@ type AgentInfo struct { func (x *AgentInfo) Reset() { *x = AgentInfo{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[1] + mi := &file_livekit_agent_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -288,7 +416,7 @@ func (x *AgentInfo) String() string { func (*AgentInfo) ProtoMessage() {} func (x *AgentInfo) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[1] + mi := &file_livekit_agent_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -301,7 +429,7 @@ func (x *AgentInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AgentInfo.ProtoReflect.Descriptor instead. func (*AgentInfo) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{1} + return file_livekit_agent_proto_rawDescGZIP(), []int{3} } func (x *AgentInfo) GetId() string { @@ -330,17 +458,20 @@ type Job struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Type JobType `protobuf:"varint,2,opt,name=type,proto3,enum=livekit.JobType" json:"type,omitempty"` - Room *Room `protobuf:"bytes,3,opt,name=room,proto3" json:"room,omitempty"` - Participant *ParticipantInfo `protobuf:"bytes,4,opt,name=participant,proto3,oneof" json:"participant,omitempty"` - Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Type JobType `protobuf:"varint,2,opt,name=type,proto3,enum=livekit.JobType" json:"type,omitempty"` + Room *Room `protobuf:"bytes,3,opt,name=room,proto3" json:"room,omitempty"` + Participant *ParticipantInfo `protobuf:"bytes,4,opt,name=participant,proto3,oneof" json:"participant,omitempty"` + Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` + Metadata map[string]string `protobuf:"bytes,6,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Status JobStatus `protobuf:"varint,7,opt,name=status,proto3,enum=livekit.JobStatus" json:"status,omitempty"` + Error string `protobuf:"bytes,8,opt,name=error,proto3" json:"error,omitempty"` } func (x *Job) Reset() { *x = Job{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[2] + mi := &file_livekit_agent_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -353,7 +484,7 @@ func (x *Job) String() string { func (*Job) ProtoMessage() {} func (x *Job) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[2] + mi := &file_livekit_agent_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -366,7 +497,7 @@ func (x *Job) ProtoReflect() protoreflect.Message { // Deprecated: Use Job.ProtoReflect.Descriptor instead. func (*Job) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{2} + return file_livekit_agent_proto_rawDescGZIP(), []int{4} } func (x *Job) GetId() string { @@ -404,6 +535,27 @@ func (x *Job) GetNamespace() string { return "" } +func (x *Job) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Job) GetStatus() JobStatus { + if x != nil { + return x.Status + } + return JobStatus_JS_UNKNOWN +} + +func (x *Job) GetError() string { + if x != nil { + return x.Error + } + return "" +} + // from Worker to Server type WorkerMessage struct { state protoimpl.MessageState @@ -425,7 +577,7 @@ type WorkerMessage struct { func (x *WorkerMessage) Reset() { *x = WorkerMessage{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[3] + mi := &file_livekit_agent_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -438,7 +590,7 @@ func (x *WorkerMessage) String() string { func (*WorkerMessage) ProtoMessage() {} func (x *WorkerMessage) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[3] + mi := &file_livekit_agent_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -451,7 +603,7 @@ func (x *WorkerMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkerMessage.ProtoReflect.Descriptor instead. func (*WorkerMessage) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{3} + return file_livekit_agent_proto_rawDescGZIP(), []int{5} } func (m *WorkerMessage) GetMessage() isWorkerMessage_Message { @@ -578,7 +730,7 @@ type ServerMessage struct { func (x *ServerMessage) Reset() { *x = ServerMessage{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[4] + mi := &file_livekit_agent_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -591,7 +743,7 @@ func (x *ServerMessage) String() string { func (*ServerMessage) ProtoMessage() {} func (x *ServerMessage) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[4] + mi := &file_livekit_agent_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -604,7 +756,7 @@ func (x *ServerMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ServerMessage.ProtoReflect.Descriptor instead. func (*ServerMessage) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{4} + return file_livekit_agent_proto_rawDescGZIP(), []int{6} } func (m *ServerMessage) GetMessage() isServerMessage_Message { @@ -685,7 +837,7 @@ type SimulateJobRequest struct { func (x *SimulateJobRequest) Reset() { *x = SimulateJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[5] + mi := &file_livekit_agent_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -698,7 +850,7 @@ func (x *SimulateJobRequest) String() string { func (*SimulateJobRequest) ProtoMessage() {} func (x *SimulateJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[5] + mi := &file_livekit_agent_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -711,7 +863,7 @@ func (x *SimulateJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SimulateJobRequest.ProtoReflect.Descriptor instead. func (*SimulateJobRequest) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{5} + return file_livekit_agent_proto_rawDescGZIP(), []int{7} } func (x *SimulateJobRequest) GetType() JobType { @@ -746,7 +898,7 @@ type WorkerPing struct { func (x *WorkerPing) Reset() { *x = WorkerPing{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[6] + mi := &file_livekit_agent_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -759,7 +911,7 @@ func (x *WorkerPing) String() string { func (*WorkerPing) ProtoMessage() {} func (x *WorkerPing) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[6] + mi := &file_livekit_agent_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -772,7 +924,7 @@ func (x *WorkerPing) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkerPing.ProtoReflect.Descriptor instead. func (*WorkerPing) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{6} + return file_livekit_agent_proto_rawDescGZIP(), []int{8} } func (x *WorkerPing) GetTimestamp() int64 { @@ -794,7 +946,7 @@ type WorkerPong struct { func (x *WorkerPong) Reset() { *x = WorkerPong{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[7] + mi := &file_livekit_agent_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -807,7 +959,7 @@ func (x *WorkerPong) String() string { func (*WorkerPong) ProtoMessage() {} func (x *WorkerPong) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[7] + mi := &file_livekit_agent_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -820,7 +972,7 @@ func (x *WorkerPong) ProtoReflect() protoreflect.Message { // Deprecated: Use WorkerPong.ProtoReflect.Descriptor instead. func (*WorkerPong) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{7} + return file_livekit_agent_proto_rawDescGZIP(), []int{9} } func (x *WorkerPong) GetLastTimestamp() int64 { @@ -854,7 +1006,7 @@ type RegisterWorkerRequest struct { func (x *RegisterWorkerRequest) Reset() { *x = RegisterWorkerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[8] + mi := &file_livekit_agent_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -867,7 +1019,7 @@ func (x *RegisterWorkerRequest) String() string { func (*RegisterWorkerRequest) ProtoMessage() {} func (x *RegisterWorkerRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[8] + mi := &file_livekit_agent_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -880,7 +1032,7 @@ func (x *RegisterWorkerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterWorkerRequest.ProtoReflect.Descriptor instead. func (*RegisterWorkerRequest) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{8} + return file_livekit_agent_proto_rawDescGZIP(), []int{10} } func (x *RegisterWorkerRequest) GetType() JobType { @@ -937,7 +1089,7 @@ type RegisterWorkerResponse struct { func (x *RegisterWorkerResponse) Reset() { *x = RegisterWorkerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[9] + mi := &file_livekit_agent_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -950,7 +1102,7 @@ func (x *RegisterWorkerResponse) String() string { func (*RegisterWorkerResponse) ProtoMessage() {} func (x *RegisterWorkerResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[9] + mi := &file_livekit_agent_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -963,7 +1115,7 @@ func (x *RegisterWorkerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterWorkerResponse.ProtoReflect.Descriptor instead. func (*RegisterWorkerResponse) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{9} + return file_livekit_agent_proto_rawDescGZIP(), []int{11} } func (x *RegisterWorkerResponse) GetWorkerId() string { @@ -991,7 +1143,7 @@ type MigrateJobRequest struct { func (x *MigrateJobRequest) Reset() { *x = MigrateJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[10] + mi := &file_livekit_agent_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1004,7 +1156,7 @@ func (x *MigrateJobRequest) String() string { func (*MigrateJobRequest) ProtoMessage() {} func (x *MigrateJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[10] + mi := &file_livekit_agent_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1017,7 +1169,7 @@ func (x *MigrateJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MigrateJobRequest.ProtoReflect.Descriptor instead. func (*MigrateJobRequest) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{10} + return file_livekit_agent_proto_rawDescGZIP(), []int{12} } func (x *MigrateJobRequest) GetJobId() string { @@ -1041,7 +1193,7 @@ type AvailabilityRequest struct { func (x *AvailabilityRequest) Reset() { *x = AvailabilityRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[11] + mi := &file_livekit_agent_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1054,7 +1206,7 @@ func (x *AvailabilityRequest) String() string { func (*AvailabilityRequest) ProtoMessage() {} func (x *AvailabilityRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[11] + mi := &file_livekit_agent_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1067,7 +1219,7 @@ func (x *AvailabilityRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AvailabilityRequest.ProtoReflect.Descriptor instead. func (*AvailabilityRequest) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{11} + return file_livekit_agent_proto_rawDescGZIP(), []int{13} } func (x *AvailabilityRequest) GetJob() *Job { @@ -1100,7 +1252,7 @@ type AvailabilityResponse struct { func (x *AvailabilityResponse) Reset() { *x = AvailabilityResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[12] + mi := &file_livekit_agent_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1113,7 +1265,7 @@ func (x *AvailabilityResponse) String() string { func (*AvailabilityResponse) ProtoMessage() {} func (x *AvailabilityResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[12] + mi := &file_livekit_agent_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1126,7 +1278,7 @@ func (x *AvailabilityResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AvailabilityResponse.ProtoReflect.Descriptor instead. func (*AvailabilityResponse) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{12} + return file_livekit_agent_proto_rawDescGZIP(), []int{14} } func (x *AvailabilityResponse) GetJobId() string { @@ -1182,6 +1334,8 @@ type UpdateJobStatus struct { // metadata shown on the dashboard, useful for debugging Error string `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` // the metadata can be updated multiple times + // + // Deprecated: Marked as deprecated in livekit_agent.proto. Metadata *string `protobuf:"bytes,4,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` // The load that the job currently has on the worker Load float32 `protobuf:"fixed32,5,opt,name=load,proto3" json:"load,omitempty"` @@ -1190,7 +1344,7 @@ type UpdateJobStatus struct { func (x *UpdateJobStatus) Reset() { *x = UpdateJobStatus{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[13] + mi := &file_livekit_agent_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1203,7 +1357,7 @@ func (x *UpdateJobStatus) String() string { func (*UpdateJobStatus) ProtoMessage() {} func (x *UpdateJobStatus) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[13] + mi := &file_livekit_agent_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1216,7 +1370,7 @@ func (x *UpdateJobStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateJobStatus.ProtoReflect.Descriptor instead. func (*UpdateJobStatus) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{13} + return file_livekit_agent_proto_rawDescGZIP(), []int{15} } func (x *UpdateJobStatus) GetJobId() string { @@ -1240,6 +1394,7 @@ func (x *UpdateJobStatus) GetError() string { return "" } +// Deprecated: Marked as deprecated in livekit_agent.proto. func (x *UpdateJobStatus) GetMetadata() string { if x != nil && x.Metadata != nil { return *x.Metadata @@ -1259,15 +1414,16 @@ type UpdateWorkerStatus struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Status *WorkerStatus `protobuf:"varint,1,opt,name=status,proto3,enum=livekit.WorkerStatus,oneof" json:"status,omitempty"` - Metadata *string `protobuf:"bytes,2,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` - Load float32 `protobuf:"fixed32,3,opt,name=load,proto3" json:"load,omitempty"` + Status *WorkerStatus `protobuf:"varint,1,opt,name=status,proto3,enum=livekit.WorkerStatus,oneof" json:"status,omitempty"` + // Deprecated: Marked as deprecated in livekit_agent.proto. + Metadata *string `protobuf:"bytes,2,opt,name=metadata,proto3,oneof" json:"metadata,omitempty"` + Load float32 `protobuf:"fixed32,3,opt,name=load,proto3" json:"load,omitempty"` } func (x *UpdateWorkerStatus) Reset() { *x = UpdateWorkerStatus{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[14] + mi := &file_livekit_agent_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1280,7 +1436,7 @@ func (x *UpdateWorkerStatus) String() string { func (*UpdateWorkerStatus) ProtoMessage() {} func (x *UpdateWorkerStatus) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[14] + mi := &file_livekit_agent_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1293,7 +1449,7 @@ func (x *UpdateWorkerStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateWorkerStatus.ProtoReflect.Descriptor instead. func (*UpdateWorkerStatus) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{14} + return file_livekit_agent_proto_rawDescGZIP(), []int{16} } func (x *UpdateWorkerStatus) GetStatus() WorkerStatus { @@ -1303,6 +1459,7 @@ func (x *UpdateWorkerStatus) GetStatus() WorkerStatus { return WorkerStatus_WS_AVAILABLE } +// Deprecated: Marked as deprecated in livekit_agent.proto. func (x *UpdateWorkerStatus) GetMetadata() string { if x != nil && x.Metadata != nil { return *x.Metadata @@ -1330,7 +1487,7 @@ type JobAssignment struct { func (x *JobAssignment) Reset() { *x = JobAssignment{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_agent_proto_msgTypes[15] + mi := &file_livekit_agent_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1343,7 +1500,7 @@ func (x *JobAssignment) String() string { func (*JobAssignment) ProtoMessage() {} func (x *JobAssignment) ProtoReflect() protoreflect.Message { - mi := &file_livekit_agent_proto_msgTypes[15] + mi := &file_livekit_agent_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1356,7 +1513,7 @@ func (x *JobAssignment) ProtoReflect() protoreflect.Message { // Deprecated: Use JobAssignment.ProtoReflect.Descriptor instead. func (*JobAssignment) Descriptor() ([]byte, []int) { - return file_livekit_agent_proto_rawDescGZIP(), []int{15} + return file_livekit_agent_proto_rawDescGZIP(), []int{17} } func (x *JobAssignment) GetJob() *Job { @@ -1386,192 +1543,237 @@ var file_livekit_agent_proto_rawDesc = []byte{ 0x0a, 0x13, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x1a, 0x14, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x01, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd4, 0x02, 0x0a, 0x14, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x67, + 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, + 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x3f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, + 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x25, 0x0a, 0x13, 0x53, + 0x74, 0x6f, 0x70, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x22, 0xe3, 0x01, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 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, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x49, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x03, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, + 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x3f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x4a, 0x6f, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x3b, 0x0a, + 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0xc8, 0x03, 0x0a, 0x0d, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x08, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x0c, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, + 0x00, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, + 0x42, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x6f, + 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x48, 0x00, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x29, + 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x69, 0x6e, + 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x69, 0x6d, + 0x75, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, + 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x3d, 0x0a, 0x0b, 0x6d, + 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, + 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x0a, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x41, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x57, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x42, + 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x53, + 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x10, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 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, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x2a, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x51, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6e, 0x67, + 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x92, 0x02, 0x0a, 0x15, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, - 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 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, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x49, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0xcd, 0x01, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x21, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x72, 0x6f, - 0x6f, 0x6d, 0x12, 0x3f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x22, 0xc8, 0x03, 0x0a, 0x0d, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x12, 0x43, 0x0a, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, - 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, - 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x6f, 0x62, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4a, - 0x6f, 0x62, 0x12, 0x3d, 0x0a, 0x0b, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6a, 0x6f, - 0x62, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x82, 0x02, 0x0a, - 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, - 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x42, 0x0a, - 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x12, 0x38, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x4a, 0x6f, 0x62, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x0a, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x70, - 0x6f, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6e, 0x67, 0x48, 0x00, - 0x52, 0x04, 0x70, 0x6f, 0x6e, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x53, 0x69, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x21, - 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x72, 0x6f, 0x6f, - 0x6d, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 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, - 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x2a, 0x0a, - 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x51, 0x0a, 0x0a, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6e, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x92, 0x02, 0x0a, - 0x15, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, - 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, - 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, - 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x70, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 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, - 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x22, 0x6b, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x77, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x2a, - 0x0a, 0x11, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x13, 0x41, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1e, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, - 0x62, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x85, 0x02, - 0x0a, 0x14, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, - 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x75, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbc, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, - 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x95, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x1f, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, - 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, - 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, 0x0d, - 0x4a, 0x6f, 0x62, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, - 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6c, 0x69, 0x76, - 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x15, 0x0a, - 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, - 0x6c, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, - 0x72, 0x6c, 0x2a, 0x28, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, - 0x07, 0x4a, 0x54, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4a, 0x54, - 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x52, 0x10, 0x01, 0x2a, 0x2d, 0x0a, 0x0c, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x0c, - 0x57, 0x53, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x0b, - 0x0a, 0x07, 0x57, 0x53, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0x3a, 0x0a, 0x09, 0x4a, - 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x53, 0x5f, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x53, 0x5f, 0x53, - 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, - 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, - 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x21, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x13, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x07, 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, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x6b, 0x0a, 0x16, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x2a, 0x0a, 0x11, 0x4d, 0x69, 0x67, 0x72, 0x61, + 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, + 0x62, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x13, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x03, 0x6a, 0x6f, + 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x75, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x75, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x85, 0x02, 0x0a, 0x14, 0x41, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, + 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x14, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc0, + 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x23, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, + 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, + 0x18, 0x01, 0x48, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x88, 0x01, + 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x04, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, + 0x0d, 0x4a, 0x6f, 0x62, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, + 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x15, + 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x75, 0x72, 0x6c, 0x2a, 0x28, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, + 0x0a, 0x07, 0x4a, 0x54, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4a, + 0x54, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x52, 0x10, 0x01, 0x2a, 0x2d, 0x0a, + 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, + 0x0c, 0x57, 0x53, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x57, 0x53, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x2a, 0x3a, 0x0a, 0x09, + 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x53, 0x5f, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4a, 0x53, 0x5f, + 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x32, 0x88, 0x01, 0x0a, 0x0c, 0x41, 0x67, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x0d, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1d, 0x2e, 0x6c, 0x69, 0x76, + 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x4a, 0x6f, 0x62, 0x12, 0x3a, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x4a, 0x6f, 0x62, 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, + 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, + 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1587,64 +1789,78 @@ func file_livekit_agent_proto_rawDescGZIP() []byte { } var file_livekit_agent_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_livekit_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_livekit_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 20) var file_livekit_agent_proto_goTypes = []interface{}{ (JobType)(0), // 0: livekit.JobType (WorkerStatus)(0), // 1: livekit.WorkerStatus (JobStatus)(0), // 2: livekit.JobStatus - (*WorkerInfo)(nil), // 3: livekit.WorkerInfo - (*AgentInfo)(nil), // 4: livekit.AgentInfo - (*Job)(nil), // 5: livekit.Job - (*WorkerMessage)(nil), // 6: livekit.WorkerMessage - (*ServerMessage)(nil), // 7: livekit.ServerMessage - (*SimulateJobRequest)(nil), // 8: livekit.SimulateJobRequest - (*WorkerPing)(nil), // 9: livekit.WorkerPing - (*WorkerPong)(nil), // 10: livekit.WorkerPong - (*RegisterWorkerRequest)(nil), // 11: livekit.RegisterWorkerRequest - (*RegisterWorkerResponse)(nil), // 12: livekit.RegisterWorkerResponse - (*MigrateJobRequest)(nil), // 13: livekit.MigrateJobRequest - (*AvailabilityRequest)(nil), // 14: livekit.AvailabilityRequest - (*AvailabilityResponse)(nil), // 15: livekit.AvailabilityResponse - (*UpdateJobStatus)(nil), // 16: livekit.UpdateJobStatus - (*UpdateWorkerStatus)(nil), // 17: livekit.UpdateWorkerStatus - (*JobAssignment)(nil), // 18: livekit.JobAssignment - (*ParticipantPermission)(nil), // 19: livekit.ParticipantPermission - (*Room)(nil), // 20: livekit.Room - (*ParticipantInfo)(nil), // 21: livekit.ParticipantInfo - (*ServerInfo)(nil), // 22: livekit.ServerInfo + (*StartAgentJobRequest)(nil), // 3: livekit.StartAgentJobRequest + (*StopAgentJobRequest)(nil), // 4: livekit.StopAgentJobRequest + (*WorkerInfo)(nil), // 5: livekit.WorkerInfo + (*AgentInfo)(nil), // 6: livekit.AgentInfo + (*Job)(nil), // 7: livekit.Job + (*WorkerMessage)(nil), // 8: livekit.WorkerMessage + (*ServerMessage)(nil), // 9: livekit.ServerMessage + (*SimulateJobRequest)(nil), // 10: livekit.SimulateJobRequest + (*WorkerPing)(nil), // 11: livekit.WorkerPing + (*WorkerPong)(nil), // 12: livekit.WorkerPong + (*RegisterWorkerRequest)(nil), // 13: livekit.RegisterWorkerRequest + (*RegisterWorkerResponse)(nil), // 14: livekit.RegisterWorkerResponse + (*MigrateJobRequest)(nil), // 15: livekit.MigrateJobRequest + (*AvailabilityRequest)(nil), // 16: livekit.AvailabilityRequest + (*AvailabilityResponse)(nil), // 17: livekit.AvailabilityResponse + (*UpdateJobStatus)(nil), // 18: livekit.UpdateJobStatus + (*UpdateWorkerStatus)(nil), // 19: livekit.UpdateWorkerStatus + (*JobAssignment)(nil), // 20: livekit.JobAssignment + nil, // 21: livekit.StartAgentJobRequest.MetadataEntry + nil, // 22: livekit.Job.MetadataEntry + (*Room)(nil), // 23: livekit.Room + (*ParticipantInfo)(nil), // 24: livekit.ParticipantInfo + (*ParticipantPermission)(nil), // 25: livekit.ParticipantPermission + (*ServerInfo)(nil), // 26: livekit.ServerInfo } var file_livekit_agent_proto_depIdxs = []int32{ - 0, // 0: livekit.WorkerInfo.type:type_name -> livekit.JobType - 19, // 1: livekit.WorkerInfo.allowed_permissions:type_name -> livekit.ParticipantPermission - 0, // 2: livekit.Job.type:type_name -> livekit.JobType - 20, // 3: livekit.Job.room:type_name -> livekit.Room - 21, // 4: livekit.Job.participant:type_name -> livekit.ParticipantInfo - 11, // 5: livekit.WorkerMessage.register:type_name -> livekit.RegisterWorkerRequest - 15, // 6: livekit.WorkerMessage.availability:type_name -> livekit.AvailabilityResponse - 17, // 7: livekit.WorkerMessage.update_worker:type_name -> livekit.UpdateWorkerStatus - 16, // 8: livekit.WorkerMessage.update_job:type_name -> livekit.UpdateJobStatus - 9, // 9: livekit.WorkerMessage.ping:type_name -> livekit.WorkerPing - 8, // 10: livekit.WorkerMessage.simulate_job:type_name -> livekit.SimulateJobRequest - 13, // 11: livekit.WorkerMessage.migrate_job:type_name -> livekit.MigrateJobRequest - 12, // 12: livekit.ServerMessage.register:type_name -> livekit.RegisterWorkerResponse - 14, // 13: livekit.ServerMessage.availability:type_name -> livekit.AvailabilityRequest - 18, // 14: livekit.ServerMessage.assignment:type_name -> livekit.JobAssignment - 10, // 15: livekit.ServerMessage.pong:type_name -> livekit.WorkerPong - 0, // 16: livekit.SimulateJobRequest.type:type_name -> livekit.JobType - 20, // 17: livekit.SimulateJobRequest.room:type_name -> livekit.Room - 21, // 18: livekit.SimulateJobRequest.participant:type_name -> livekit.ParticipantInfo - 0, // 19: livekit.RegisterWorkerRequest.type:type_name -> livekit.JobType - 19, // 20: livekit.RegisterWorkerRequest.allowed_permissions:type_name -> livekit.ParticipantPermission - 22, // 21: livekit.RegisterWorkerResponse.server_info:type_name -> livekit.ServerInfo - 5, // 22: livekit.AvailabilityRequest.job:type_name -> livekit.Job - 2, // 23: livekit.UpdateJobStatus.status:type_name -> livekit.JobStatus - 1, // 24: livekit.UpdateWorkerStatus.status:type_name -> livekit.WorkerStatus - 5, // 25: livekit.JobAssignment.job:type_name -> livekit.Job - 26, // [26:26] is the sub-list for method output_type - 26, // [26:26] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 0, // 0: livekit.StartAgentJobRequest.type:type_name -> livekit.JobType + 23, // 1: livekit.StartAgentJobRequest.room:type_name -> livekit.Room + 24, // 2: livekit.StartAgentJobRequest.participant:type_name -> livekit.ParticipantInfo + 21, // 3: livekit.StartAgentJobRequest.metadata:type_name -> livekit.StartAgentJobRequest.MetadataEntry + 0, // 4: livekit.WorkerInfo.type:type_name -> livekit.JobType + 25, // 5: livekit.WorkerInfo.allowed_permissions:type_name -> livekit.ParticipantPermission + 0, // 6: livekit.Job.type:type_name -> livekit.JobType + 23, // 7: livekit.Job.room:type_name -> livekit.Room + 24, // 8: livekit.Job.participant:type_name -> livekit.ParticipantInfo + 22, // 9: livekit.Job.metadata:type_name -> livekit.Job.MetadataEntry + 2, // 10: livekit.Job.status:type_name -> livekit.JobStatus + 13, // 11: livekit.WorkerMessage.register:type_name -> livekit.RegisterWorkerRequest + 17, // 12: livekit.WorkerMessage.availability:type_name -> livekit.AvailabilityResponse + 19, // 13: livekit.WorkerMessage.update_worker:type_name -> livekit.UpdateWorkerStatus + 18, // 14: livekit.WorkerMessage.update_job:type_name -> livekit.UpdateJobStatus + 11, // 15: livekit.WorkerMessage.ping:type_name -> livekit.WorkerPing + 10, // 16: livekit.WorkerMessage.simulate_job:type_name -> livekit.SimulateJobRequest + 15, // 17: livekit.WorkerMessage.migrate_job:type_name -> livekit.MigrateJobRequest + 14, // 18: livekit.ServerMessage.register:type_name -> livekit.RegisterWorkerResponse + 16, // 19: livekit.ServerMessage.availability:type_name -> livekit.AvailabilityRequest + 20, // 20: livekit.ServerMessage.assignment:type_name -> livekit.JobAssignment + 12, // 21: livekit.ServerMessage.pong:type_name -> livekit.WorkerPong + 0, // 22: livekit.SimulateJobRequest.type:type_name -> livekit.JobType + 23, // 23: livekit.SimulateJobRequest.room:type_name -> livekit.Room + 24, // 24: livekit.SimulateJobRequest.participant:type_name -> livekit.ParticipantInfo + 0, // 25: livekit.RegisterWorkerRequest.type:type_name -> livekit.JobType + 25, // 26: livekit.RegisterWorkerRequest.allowed_permissions:type_name -> livekit.ParticipantPermission + 26, // 27: livekit.RegisterWorkerResponse.server_info:type_name -> livekit.ServerInfo + 7, // 28: livekit.AvailabilityRequest.job:type_name -> livekit.Job + 2, // 29: livekit.UpdateJobStatus.status:type_name -> livekit.JobStatus + 1, // 30: livekit.UpdateWorkerStatus.status:type_name -> livekit.WorkerStatus + 7, // 31: livekit.JobAssignment.job:type_name -> livekit.Job + 3, // 32: livekit.AgentService.StartAgentJob:input_type -> livekit.StartAgentJobRequest + 4, // 33: livekit.AgentService.StopAgentJob:input_type -> livekit.StopAgentJobRequest + 7, // 34: livekit.AgentService.StartAgentJob:output_type -> livekit.Job + 7, // 35: livekit.AgentService.StopAgentJob:output_type -> livekit.Job + 34, // [34:36] is the sub-list for method output_type + 32, // [32:34] 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 } func init() { file_livekit_agent_proto_init() } @@ -1655,7 +1871,7 @@ func file_livekit_agent_proto_init() { file_livekit_models_proto_init() if !protoimpl.UnsafeEnabled { file_livekit_agent_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkerInfo); i { + switch v := v.(*StartAgentJobRequest); i { case 0: return &v.state case 1: @@ -1667,7 +1883,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AgentInfo); i { + switch v := v.(*StopAgentJobRequest); i { case 0: return &v.state case 1: @@ -1679,7 +1895,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Job); i { + switch v := v.(*WorkerInfo); i { case 0: return &v.state case 1: @@ -1691,7 +1907,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkerMessage); i { + switch v := v.(*AgentInfo); i { case 0: return &v.state case 1: @@ -1703,7 +1919,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ServerMessage); i { + switch v := v.(*Job); i { case 0: return &v.state case 1: @@ -1715,7 +1931,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SimulateJobRequest); i { + switch v := v.(*WorkerMessage); i { case 0: return &v.state case 1: @@ -1727,7 +1943,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkerPing); i { + switch v := v.(*ServerMessage); i { case 0: return &v.state case 1: @@ -1739,7 +1955,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WorkerPong); i { + switch v := v.(*SimulateJobRequest); i { case 0: return &v.state case 1: @@ -1751,7 +1967,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterWorkerRequest); i { + switch v := v.(*WorkerPing); i { case 0: return &v.state case 1: @@ -1763,7 +1979,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterWorkerResponse); i { + switch v := v.(*WorkerPong); i { case 0: return &v.state case 1: @@ -1775,7 +1991,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MigrateJobRequest); i { + switch v := v.(*RegisterWorkerRequest); i { case 0: return &v.state case 1: @@ -1787,7 +2003,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AvailabilityRequest); i { + switch v := v.(*RegisterWorkerResponse); i { case 0: return &v.state case 1: @@ -1799,7 +2015,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AvailabilityResponse); i { + switch v := v.(*MigrateJobRequest); i { case 0: return &v.state case 1: @@ -1811,7 +2027,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateJobStatus); i { + switch v := v.(*AvailabilityRequest); i { case 0: return &v.state case 1: @@ -1823,7 +2039,7 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateWorkerStatus); i { + switch v := v.(*AvailabilityResponse); i { case 0: return &v.state case 1: @@ -1835,6 +2051,30 @@ func file_livekit_agent_proto_init() { } } file_livekit_agent_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateJobStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_agent_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateWorkerStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_agent_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*JobAssignment); i { case 0: return &v.state @@ -1847,8 +2087,9 @@ func file_livekit_agent_proto_init() { } } } - file_livekit_agent_proto_msgTypes[2].OneofWrappers = []interface{}{} - file_livekit_agent_proto_msgTypes[3].OneofWrappers = []interface{}{ + file_livekit_agent_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_livekit_agent_proto_msgTypes[4].OneofWrappers = []interface{}{} + file_livekit_agent_proto_msgTypes[5].OneofWrappers = []interface{}{ (*WorkerMessage_Register)(nil), (*WorkerMessage_Availability)(nil), (*WorkerMessage_UpdateWorker)(nil), @@ -1857,25 +2098,25 @@ func file_livekit_agent_proto_init() { (*WorkerMessage_SimulateJob)(nil), (*WorkerMessage_MigrateJob)(nil), } - file_livekit_agent_proto_msgTypes[4].OneofWrappers = []interface{}{ + file_livekit_agent_proto_msgTypes[6].OneofWrappers = []interface{}{ (*ServerMessage_Register)(nil), (*ServerMessage_Availability)(nil), (*ServerMessage_Assignment)(nil), (*ServerMessage_Pong)(nil), } - file_livekit_agent_proto_msgTypes[8].OneofWrappers = []interface{}{} - file_livekit_agent_proto_msgTypes[13].OneofWrappers = []interface{}{} - file_livekit_agent_proto_msgTypes[14].OneofWrappers = []interface{}{} + file_livekit_agent_proto_msgTypes[10].OneofWrappers = []interface{}{} file_livekit_agent_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_livekit_agent_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_livekit_agent_proto_msgTypes[17].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_livekit_agent_proto_rawDesc, NumEnums: 3, - NumMessages: 16, + NumMessages: 20, NumExtensions: 0, - NumServices: 0, + NumServices: 1, }, GoTypes: file_livekit_agent_proto_goTypes, DependencyIndexes: file_livekit_agent_proto_depIdxs, diff --git a/livekit/livekit_analytics.pb.go b/livekit/livekit_analytics.pb.go index a6f1dad2..4f399405 100644 --- a/livekit/livekit_analytics.pb.go +++ b/livekit/livekit_analytics.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_analytics.proto package livekit diff --git a/livekit/livekit_analytics_grpc.pb.go b/livekit/livekit_analytics_grpc.pb.go index d6e880c4..9c4aaeec 100644 --- a/livekit/livekit_analytics_grpc.pb.go +++ b/livekit/livekit_analytics_grpc.pb.go @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v5.26.1 // source: livekit_analytics.proto package livekit diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index b2940a80..67771d0d 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_egress.proto package livekit diff --git a/livekit/livekit_ingress.pb.go b/livekit/livekit_ingress.pb.go index 622e2e44..58bbf9a5 100644 --- a/livekit/livekit_ingress.pb.go +++ b/livekit/livekit_ingress.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_ingress.proto package livekit diff --git a/livekit/livekit_internal.pb.go b/livekit/livekit_internal.pb.go index 6f82248e..64b674e2 100644 --- a/livekit/livekit_internal.pb.go +++ b/livekit/livekit_internal.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_internal.proto package livekit diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index 03beef3e..5f4d8da1 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_models.proto package livekit diff --git a/livekit/livekit_room.pb.go b/livekit/livekit_room.pb.go index 2102b265..0cbfcfd9 100644 --- a/livekit/livekit_room.pb.go +++ b/livekit/livekit_room.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_room.proto package livekit @@ -41,6 +41,8 @@ type CreateRoomRequest struct { // name of the room Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // configuration to use for this room parameters. Setting parameters below override the config defaults. + ConfigName string `protobuf:"bytes,12,opt,name=config_name,json=configName,proto3" json:"config_name,omitempty"` // number of seconds to keep the room open if no one joins EmptyTimeout uint32 `protobuf:"varint,2,opt,name=empty_timeout,json=emptyTimeout,proto3" json:"empty_timeout,omitempty"` // number of seconds to keep the room open after everyone leaves @@ -53,6 +55,8 @@ type CreateRoomRequest struct { Metadata string `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"` // egress Egress *RoomEgress `protobuf:"bytes,6,opt,name=egress,proto3" json:"egress,omitempty"` + // agent + Agent *RoomAgent `protobuf:"bytes,11,opt,name=agent,proto3" json:"agent,omitempty"` // playout delay of subscriber MinPlayoutDelay uint32 `protobuf:"varint,7,opt,name=min_playout_delay,json=minPlayoutDelay,proto3" json:"min_playout_delay,omitempty"` MaxPlayoutDelay uint32 `protobuf:"varint,8,opt,name=max_playout_delay,json=maxPlayoutDelay,proto3" json:"max_playout_delay,omitempty"` @@ -100,6 +104,13 @@ func (x *CreateRoomRequest) GetName() string { return "" } +func (x *CreateRoomRequest) GetConfigName() string { + if x != nil { + return x.ConfigName + } + return "" +} + func (x *CreateRoomRequest) GetEmptyTimeout() uint32 { if x != nil { return x.EmptyTimeout @@ -142,6 +153,13 @@ func (x *CreateRoomRequest) GetEgress() *RoomEgress { return nil } +func (x *CreateRoomRequest) GetAgent() *RoomAgent { + if x != nil { + return x.Agent + } + return nil +} + func (x *CreateRoomRequest) GetMinPlayoutDelay() uint32 { if x != nil { return x.MinPlayoutDelay @@ -226,6 +244,53 @@ func (x *RoomEgress) GetTracks() *AutoTrackEgress { return nil } +type RoomAgent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Agents []*StartAgentJobRequest `protobuf:"bytes,1,rep,name=agents,proto3" json:"agents,omitempty"` +} + +func (x *RoomAgent) Reset() { + *x = RoomAgent{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_room_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RoomAgent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RoomAgent) ProtoMessage() {} + +func (x *RoomAgent) ProtoReflect() protoreflect.Message { + mi := &file_livekit_room_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RoomAgent.ProtoReflect.Descriptor instead. +func (*RoomAgent) Descriptor() ([]byte, []int) { + return file_livekit_room_proto_rawDescGZIP(), []int{2} +} + +func (x *RoomAgent) GetAgents() []*StartAgentJobRequest { + if x != nil { + return x.Agents + } + return nil +} + type ListRoomsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -238,7 +303,7 @@ type ListRoomsRequest struct { func (x *ListRoomsRequest) Reset() { *x = ListRoomsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[2] + mi := &file_livekit_room_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -251,7 +316,7 @@ func (x *ListRoomsRequest) String() string { func (*ListRoomsRequest) ProtoMessage() {} func (x *ListRoomsRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[2] + mi := &file_livekit_room_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -264,7 +329,7 @@ func (x *ListRoomsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRoomsRequest.ProtoReflect.Descriptor instead. func (*ListRoomsRequest) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{2} + return file_livekit_room_proto_rawDescGZIP(), []int{3} } func (x *ListRoomsRequest) GetNames() []string { @@ -285,7 +350,7 @@ type ListRoomsResponse struct { func (x *ListRoomsResponse) Reset() { *x = ListRoomsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[3] + mi := &file_livekit_room_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -298,7 +363,7 @@ func (x *ListRoomsResponse) String() string { func (*ListRoomsResponse) ProtoMessage() {} func (x *ListRoomsResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[3] + mi := &file_livekit_room_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -311,7 +376,7 @@ func (x *ListRoomsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRoomsResponse.ProtoReflect.Descriptor instead. func (*ListRoomsResponse) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{3} + return file_livekit_room_proto_rawDescGZIP(), []int{4} } func (x *ListRoomsResponse) GetRooms() []*Room { @@ -333,7 +398,7 @@ type DeleteRoomRequest struct { func (x *DeleteRoomRequest) Reset() { *x = DeleteRoomRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[4] + mi := &file_livekit_room_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -346,7 +411,7 @@ func (x *DeleteRoomRequest) String() string { func (*DeleteRoomRequest) ProtoMessage() {} func (x *DeleteRoomRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[4] + mi := &file_livekit_room_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -359,7 +424,7 @@ func (x *DeleteRoomRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteRoomRequest.ProtoReflect.Descriptor instead. func (*DeleteRoomRequest) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{4} + return file_livekit_room_proto_rawDescGZIP(), []int{5} } func (x *DeleteRoomRequest) GetRoom() string { @@ -378,7 +443,7 @@ type DeleteRoomResponse struct { func (x *DeleteRoomResponse) Reset() { *x = DeleteRoomResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[5] + mi := &file_livekit_room_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -391,7 +456,7 @@ func (x *DeleteRoomResponse) String() string { func (*DeleteRoomResponse) ProtoMessage() {} func (x *DeleteRoomResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[5] + mi := &file_livekit_room_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -404,7 +469,7 @@ func (x *DeleteRoomResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteRoomResponse.ProtoReflect.Descriptor instead. func (*DeleteRoomResponse) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{5} + return file_livekit_room_proto_rawDescGZIP(), []int{6} } type ListParticipantsRequest struct { @@ -419,7 +484,7 @@ type ListParticipantsRequest struct { func (x *ListParticipantsRequest) Reset() { *x = ListParticipantsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[6] + mi := &file_livekit_room_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -432,7 +497,7 @@ func (x *ListParticipantsRequest) String() string { func (*ListParticipantsRequest) ProtoMessage() {} func (x *ListParticipantsRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[6] + mi := &file_livekit_room_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -445,7 +510,7 @@ func (x *ListParticipantsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListParticipantsRequest.ProtoReflect.Descriptor instead. func (*ListParticipantsRequest) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{6} + return file_livekit_room_proto_rawDescGZIP(), []int{7} } func (x *ListParticipantsRequest) GetRoom() string { @@ -466,7 +531,7 @@ type ListParticipantsResponse struct { func (x *ListParticipantsResponse) Reset() { *x = ListParticipantsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[7] + mi := &file_livekit_room_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -479,7 +544,7 @@ func (x *ListParticipantsResponse) String() string { func (*ListParticipantsResponse) ProtoMessage() {} func (x *ListParticipantsResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[7] + mi := &file_livekit_room_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -492,7 +557,7 @@ func (x *ListParticipantsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListParticipantsResponse.ProtoReflect.Descriptor instead. func (*ListParticipantsResponse) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{7} + return file_livekit_room_proto_rawDescGZIP(), []int{8} } func (x *ListParticipantsResponse) GetParticipants() []*ParticipantInfo { @@ -516,7 +581,7 @@ type RoomParticipantIdentity struct { func (x *RoomParticipantIdentity) Reset() { *x = RoomParticipantIdentity{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[8] + mi := &file_livekit_room_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -529,7 +594,7 @@ func (x *RoomParticipantIdentity) String() string { func (*RoomParticipantIdentity) ProtoMessage() {} func (x *RoomParticipantIdentity) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[8] + mi := &file_livekit_room_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -542,7 +607,7 @@ func (x *RoomParticipantIdentity) ProtoReflect() protoreflect.Message { // Deprecated: Use RoomParticipantIdentity.ProtoReflect.Descriptor instead. func (*RoomParticipantIdentity) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{8} + return file_livekit_room_proto_rawDescGZIP(), []int{9} } func (x *RoomParticipantIdentity) GetRoom() string { @@ -568,7 +633,7 @@ type RemoveParticipantResponse struct { func (x *RemoveParticipantResponse) Reset() { *x = RemoveParticipantResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[9] + mi := &file_livekit_room_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -581,7 +646,7 @@ func (x *RemoveParticipantResponse) String() string { func (*RemoveParticipantResponse) ProtoMessage() {} func (x *RemoveParticipantResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[9] + mi := &file_livekit_room_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -594,7 +659,7 @@ func (x *RemoveParticipantResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveParticipantResponse.ProtoReflect.Descriptor instead. func (*RemoveParticipantResponse) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{9} + return file_livekit_room_proto_rawDescGZIP(), []int{10} } type MuteRoomTrackRequest struct { @@ -614,7 +679,7 @@ type MuteRoomTrackRequest struct { func (x *MuteRoomTrackRequest) Reset() { *x = MuteRoomTrackRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[10] + mi := &file_livekit_room_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -627,7 +692,7 @@ func (x *MuteRoomTrackRequest) String() string { func (*MuteRoomTrackRequest) ProtoMessage() {} func (x *MuteRoomTrackRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[10] + mi := &file_livekit_room_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -640,7 +705,7 @@ func (x *MuteRoomTrackRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use MuteRoomTrackRequest.ProtoReflect.Descriptor instead. func (*MuteRoomTrackRequest) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{10} + return file_livekit_room_proto_rawDescGZIP(), []int{11} } func (x *MuteRoomTrackRequest) GetRoom() string { @@ -682,7 +747,7 @@ type MuteRoomTrackResponse struct { func (x *MuteRoomTrackResponse) Reset() { *x = MuteRoomTrackResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[11] + mi := &file_livekit_room_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -695,7 +760,7 @@ func (x *MuteRoomTrackResponse) String() string { func (*MuteRoomTrackResponse) ProtoMessage() {} func (x *MuteRoomTrackResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[11] + mi := &file_livekit_room_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -708,7 +773,7 @@ func (x *MuteRoomTrackResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use MuteRoomTrackResponse.ProtoReflect.Descriptor instead. func (*MuteRoomTrackResponse) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{11} + return file_livekit_room_proto_rawDescGZIP(), []int{12} } func (x *MuteRoomTrackResponse) GetTrack() *TrackInfo { @@ -736,7 +801,7 @@ type UpdateParticipantRequest struct { func (x *UpdateParticipantRequest) Reset() { *x = UpdateParticipantRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[12] + mi := &file_livekit_room_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -749,7 +814,7 @@ func (x *UpdateParticipantRequest) String() string { func (*UpdateParticipantRequest) ProtoMessage() {} func (x *UpdateParticipantRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[12] + mi := &file_livekit_room_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -762,7 +827,7 @@ func (x *UpdateParticipantRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateParticipantRequest.ProtoReflect.Descriptor instead. func (*UpdateParticipantRequest) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{12} + return file_livekit_room_proto_rawDescGZIP(), []int{13} } func (x *UpdateParticipantRequest) GetRoom() string { @@ -818,7 +883,7 @@ type UpdateSubscriptionsRequest struct { func (x *UpdateSubscriptionsRequest) Reset() { *x = UpdateSubscriptionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[13] + mi := &file_livekit_room_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -831,7 +896,7 @@ func (x *UpdateSubscriptionsRequest) String() string { func (*UpdateSubscriptionsRequest) ProtoMessage() {} func (x *UpdateSubscriptionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[13] + mi := &file_livekit_room_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -844,7 +909,7 @@ func (x *UpdateSubscriptionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateSubscriptionsRequest.ProtoReflect.Descriptor instead. func (*UpdateSubscriptionsRequest) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{13} + return file_livekit_room_proto_rawDescGZIP(), []int{14} } func (x *UpdateSubscriptionsRequest) GetRoom() string { @@ -891,7 +956,7 @@ type UpdateSubscriptionsResponse struct { func (x *UpdateSubscriptionsResponse) Reset() { *x = UpdateSubscriptionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[14] + mi := &file_livekit_room_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -904,7 +969,7 @@ func (x *UpdateSubscriptionsResponse) String() string { func (*UpdateSubscriptionsResponse) ProtoMessage() {} func (x *UpdateSubscriptionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[14] + mi := &file_livekit_room_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -917,7 +982,7 @@ func (x *UpdateSubscriptionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateSubscriptionsResponse.ProtoReflect.Descriptor instead. func (*UpdateSubscriptionsResponse) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{14} + return file_livekit_room_proto_rawDescGZIP(), []int{15} } type SendDataRequest struct { @@ -940,7 +1005,7 @@ type SendDataRequest struct { func (x *SendDataRequest) Reset() { *x = SendDataRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[15] + mi := &file_livekit_room_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -953,7 +1018,7 @@ func (x *SendDataRequest) String() string { func (*SendDataRequest) ProtoMessage() {} func (x *SendDataRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[15] + mi := &file_livekit_room_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -966,7 +1031,7 @@ func (x *SendDataRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendDataRequest.ProtoReflect.Descriptor instead. func (*SendDataRequest) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{15} + return file_livekit_room_proto_rawDescGZIP(), []int{16} } func (x *SendDataRequest) GetRoom() string { @@ -1021,7 +1086,7 @@ type SendDataResponse struct { func (x *SendDataResponse) Reset() { *x = SendDataResponse{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[16] + mi := &file_livekit_room_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1034,7 +1099,7 @@ func (x *SendDataResponse) String() string { func (*SendDataResponse) ProtoMessage() {} func (x *SendDataResponse) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[16] + mi := &file_livekit_room_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1047,7 +1112,7 @@ func (x *SendDataResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendDataResponse.ProtoReflect.Descriptor instead. func (*SendDataResponse) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{16} + return file_livekit_room_proto_rawDescGZIP(), []int{17} } type UpdateRoomMetadataRequest struct { @@ -1063,7 +1128,7 @@ type UpdateRoomMetadataRequest struct { func (x *UpdateRoomMetadataRequest) Reset() { *x = UpdateRoomMetadataRequest{} if protoimpl.UnsafeEnabled { - mi := &file_livekit_room_proto_msgTypes[17] + mi := &file_livekit_room_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1076,7 +1141,7 @@ func (x *UpdateRoomMetadataRequest) String() string { func (*UpdateRoomMetadataRequest) ProtoMessage() {} func (x *UpdateRoomMetadataRequest) ProtoReflect() protoreflect.Message { - mi := &file_livekit_room_proto_msgTypes[17] + mi := &file_livekit_room_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1089,7 +1154,7 @@ func (x *UpdateRoomMetadataRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRoomMetadataRequest.ProtoReflect.Descriptor instead. func (*UpdateRoomMetadataRequest) Descriptor() ([]byte, []int) { - return file_livekit_room_proto_rawDescGZIP(), []int{17} + return file_livekit_room_proto_rawDescGZIP(), []int{18} } func (x *UpdateRoomMetadataRequest) GetRoom() string { @@ -1106,6 +1171,385 @@ func (x *UpdateRoomMetadataRequest) GetMetadata() string { return "" } +type CreateRoomConfigurationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Configuration *RoomConfiguration `protobuf:"bytes,1,opt,name=configuration,proto3" json:"configuration,omitempty"` +} + +func (x *CreateRoomConfigurationRequest) Reset() { + *x = CreateRoomConfigurationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_room_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateRoomConfigurationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateRoomConfigurationRequest) ProtoMessage() {} + +func (x *CreateRoomConfigurationRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_room_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateRoomConfigurationRequest.ProtoReflect.Descriptor instead. +func (*CreateRoomConfigurationRequest) Descriptor() ([]byte, []int) { + return file_livekit_room_proto_rawDescGZIP(), []int{19} +} + +func (x *CreateRoomConfigurationRequest) GetConfiguration() *RoomConfiguration { + if x != nil { + return x.Configuration + } + return nil +} + +type UpdateRoomConfigurationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // configuration to update + // number of seconds to keep the room open if no one joins + EmptyTimeout *uint32 `protobuf:"varint,2,opt,name=empty_timeout,json=emptyTimeout,proto3,oneof" json:"empty_timeout,omitempty"` + // number of seconds to keep the room open after everyone leaves + DepartureTimeout *uint32 `protobuf:"varint,3,opt,name=departure_timeout,json=departureTimeout,proto3,oneof" json:"departure_timeout,omitempty"` + // limit number of participants that can be in a room + MaxParticipants *uint32 `protobuf:"varint,4,opt,name=max_participants,json=maxParticipants,proto3,oneof" json:"max_participants,omitempty"` + // egress + Egress *RoomEgress `protobuf:"bytes,5,opt,name=egress,proto3,oneof" json:"egress,omitempty"` + // agent + Agent *RoomAgent `protobuf:"bytes,6,opt,name=agent,proto3,oneof" json:"agent,omitempty"` + // playout delay of subscriber + MinPlayoutDelay *uint32 `protobuf:"varint,7,opt,name=min_playout_delay,json=minPlayoutDelay,proto3,oneof" json:"min_playout_delay,omitempty"` + MaxPlayoutDelay *uint32 `protobuf:"varint,8,opt,name=max_playout_delay,json=maxPlayoutDelay,proto3,oneof" json:"max_playout_delay,omitempty"` + // improves A/V sync when playout_delay set to a value larger than 200ms. It will disables transceiver re-use + // so not recommended for rooms with frequent subscription changes + SyncStreams *bool `protobuf:"varint,9,opt,name=sync_streams,json=syncStreams,proto3,oneof" json:"sync_streams,omitempty"` +} + +func (x *UpdateRoomConfigurationRequest) Reset() { + *x = UpdateRoomConfigurationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_room_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateRoomConfigurationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateRoomConfigurationRequest) ProtoMessage() {} + +func (x *UpdateRoomConfigurationRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_room_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateRoomConfigurationRequest.ProtoReflect.Descriptor instead. +func (*UpdateRoomConfigurationRequest) Descriptor() ([]byte, []int) { + return file_livekit_room_proto_rawDescGZIP(), []int{20} +} + +func (x *UpdateRoomConfigurationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateRoomConfigurationRequest) GetEmptyTimeout() uint32 { + if x != nil && x.EmptyTimeout != nil { + return *x.EmptyTimeout + } + return 0 +} + +func (x *UpdateRoomConfigurationRequest) GetDepartureTimeout() uint32 { + if x != nil && x.DepartureTimeout != nil { + return *x.DepartureTimeout + } + return 0 +} + +func (x *UpdateRoomConfigurationRequest) GetMaxParticipants() uint32 { + if x != nil && x.MaxParticipants != nil { + return *x.MaxParticipants + } + return 0 +} + +func (x *UpdateRoomConfigurationRequest) GetEgress() *RoomEgress { + if x != nil { + return x.Egress + } + return nil +} + +func (x *UpdateRoomConfigurationRequest) GetAgent() *RoomAgent { + if x != nil { + return x.Agent + } + return nil +} + +func (x *UpdateRoomConfigurationRequest) GetMinPlayoutDelay() uint32 { + if x != nil && x.MinPlayoutDelay != nil { + return *x.MinPlayoutDelay + } + return 0 +} + +func (x *UpdateRoomConfigurationRequest) GetMaxPlayoutDelay() uint32 { + if x != nil && x.MaxPlayoutDelay != nil { + return *x.MaxPlayoutDelay + } + return 0 +} + +func (x *UpdateRoomConfigurationRequest) GetSyncStreams() bool { + if x != nil && x.SyncStreams != nil { + return *x.SyncStreams + } + return false +} + +type ListRoomConfigurationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // If non empty, return only the configurartion with this name +} + +func (x *ListRoomConfigurationRequest) Reset() { + *x = ListRoomConfigurationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_room_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRoomConfigurationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRoomConfigurationRequest) ProtoMessage() {} + +func (x *ListRoomConfigurationRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_room_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRoomConfigurationRequest.ProtoReflect.Descriptor instead. +func (*ListRoomConfigurationRequest) Descriptor() ([]byte, []int) { + return file_livekit_room_proto_rawDescGZIP(), []int{21} +} + +func (x *ListRoomConfigurationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type ListRoomConfigurationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Configurations []*RoomConfiguration `protobuf:"bytes,1,rep,name=configurations,proto3" json:"configurations,omitempty"` +} + +func (x *ListRoomConfigurationResponse) Reset() { + *x = ListRoomConfigurationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_room_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRoomConfigurationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRoomConfigurationResponse) ProtoMessage() {} + +func (x *ListRoomConfigurationResponse) ProtoReflect() protoreflect.Message { + mi := &file_livekit_room_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRoomConfigurationResponse.ProtoReflect.Descriptor instead. +func (*ListRoomConfigurationResponse) Descriptor() ([]byte, []int) { + return file_livekit_room_proto_rawDescGZIP(), []int{22} +} + +func (x *ListRoomConfigurationResponse) GetConfigurations() []*RoomConfiguration { + if x != nil { + return x.Configurations + } + return nil +} + +type RoomConfiguration struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Used as ID, must be unique + // number of seconds to keep the room open if no one joins + EmptyTimeout uint32 `protobuf:"varint,2,opt,name=empty_timeout,json=emptyTimeout,proto3" json:"empty_timeout,omitempty"` + // number of seconds to keep the room open after everyone leaves + DepartureTimeout uint32 `protobuf:"varint,3,opt,name=departure_timeout,json=departureTimeout,proto3" json:"departure_timeout,omitempty"` + // limit number of participants that can be in a room + MaxParticipants uint32 `protobuf:"varint,4,opt,name=max_participants,json=maxParticipants,proto3" json:"max_participants,omitempty"` + // egress + Egress *RoomEgress `protobuf:"bytes,5,opt,name=egress,proto3" json:"egress,omitempty"` + // agent + Agent *RoomAgent `protobuf:"bytes,6,opt,name=agent,proto3" json:"agent,omitempty"` + // playout delay of subscriber + MinPlayoutDelay uint32 `protobuf:"varint,7,opt,name=min_playout_delay,json=minPlayoutDelay,proto3" json:"min_playout_delay,omitempty"` + MaxPlayoutDelay uint32 `protobuf:"varint,8,opt,name=max_playout_delay,json=maxPlayoutDelay,proto3" json:"max_playout_delay,omitempty"` + // improves A/V sync when playout_delay set to a value larger than 200ms. It will disables transceiver re-use + // so not recommended for rooms with frequent subscription changes + SyncStreams bool `protobuf:"varint,9,opt,name=sync_streams,json=syncStreams,proto3" json:"sync_streams,omitempty"` +} + +func (x *RoomConfiguration) Reset() { + *x = RoomConfiguration{} + if protoimpl.UnsafeEnabled { + mi := &file_livekit_room_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RoomConfiguration) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RoomConfiguration) ProtoMessage() {} + +func (x *RoomConfiguration) ProtoReflect() protoreflect.Message { + mi := &file_livekit_room_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RoomConfiguration.ProtoReflect.Descriptor instead. +func (*RoomConfiguration) Descriptor() ([]byte, []int) { + return file_livekit_room_proto_rawDescGZIP(), []int{23} +} + +func (x *RoomConfiguration) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RoomConfiguration) GetEmptyTimeout() uint32 { + if x != nil { + return x.EmptyTimeout + } + return 0 +} + +func (x *RoomConfiguration) GetDepartureTimeout() uint32 { + if x != nil { + return x.DepartureTimeout + } + return 0 +} + +func (x *RoomConfiguration) GetMaxParticipants() uint32 { + if x != nil { + return x.MaxParticipants + } + return 0 +} + +func (x *RoomConfiguration) GetEgress() *RoomEgress { + if x != nil { + return x.Egress + } + return nil +} + +func (x *RoomConfiguration) GetAgent() *RoomAgent { + if x != nil { + return x.Agent + } + return nil +} + +func (x *RoomConfiguration) GetMinPlayoutDelay() uint32 { + if x != nil { + return x.MinPlayoutDelay + } + return 0 +} + +func (x *RoomConfiguration) GetMaxPlayoutDelay() uint32 { + if x != nil { + return x.MaxPlayoutDelay + } + return 0 +} + +func (x *RoomConfiguration) GetSyncStreams() bool { + if x != nil { + return x.SyncStreams + } + return false +} + var File_livekit_room_proto protoreflect.FileDescriptor var file_livekit_room_proto_rawDesc = []byte{ @@ -1113,24 +1557,30 @@ var file_livekit_room_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x1a, 0x14, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x5f, 0x65, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x81, 0x03, 0x0a, 0x11, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x61, - 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0f, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, - 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 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, 0x2b, 0x0a, 0x06, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, 0x65, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6f, 0x75, + 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, + 0x03, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x2b, + 0x0a, 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x64, 0x65, 0x70, 0x61, 0x72, + 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x6d, + 0x61, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x64, 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, 0x2b, 0x0a, 0x06, 0x65, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x52, 0x06, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x61, 0x67, 0x65, + 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x65, @@ -1149,152 +1599,250 @@ var file_livekit_room_proto_rawDesc = []byte{ 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x45, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x28, 0x0a, 0x10, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0x38, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x05, 0x72, 0x6f, 0x6f, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x05, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x22, 0x27, 0x0a, - 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x0a, 0x17, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, - 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, 0x22, 0x58, 0x0a, 0x18, 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, 0x3c, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x73, 0x22, 0x49, 0x0a, 0x17, 0x52, 0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 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, - 0x22, 0x1b, 0x0a, 0x19, 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, 0x22, 0x79, 0x0a, - 0x14, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b, 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, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x73, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x53, - 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x41, 0x0a, 0x15, 0x4d, 0x75, 0x74, 0x65, - 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b, 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, 0xba, 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, + 0x73, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x42, 0x0a, 0x09, 0x52, 0x6f, 0x6f, + 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x06, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x28, 0x0a, + 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x38, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x05, + 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x05, 0x72, 0x6f, 0x6f, 0x6d, + 0x73, 0x22, 0x27, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2d, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x73, 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, 0x22, + 0x58, 0x0a, 0x18, 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, 0x3c, 0x0a, 0x0c, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 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, 0x52, 0x0c, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x22, 0x49, 0x0a, 0x17, 0x52, 0x6f, 0x6f, + 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 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, 0x22, 0x1b, 0x0a, 0x19, 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, 0x22, 0x79, 0x0a, 0x14, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x72, 0x61, + 0x63, 0x6b, 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, 0x1b, 0x0a, 0x09, 0x74, 0x72, 0x61, + 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x53, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x41, 0x0a, 0x15, + 0x4d, 0x75, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x6b, 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, + 0xba, 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, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd4, 0x01, 0x0a, + 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 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, 0x1d, 0x0a, 0x0a, 0x74, + 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x69, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, + 0x52, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xf2, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 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, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, + 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x10, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x19, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 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, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd4, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 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, 0x1d, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, - 0x5f, 0x73, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x74, 0x72, 0x61, - 0x63, 0x6b, 0x53, 0x69, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x11, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, - 0x1d, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf2, - 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 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, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x04, 0x6b, 0x69, - 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4b, 0x69, - 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x64, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x19, - 0x0a, 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x05, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x6f, - 0x70, 0x69, 0x63, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 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, 0xe6, 0x06, 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, 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, 0x60, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, - 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x2e, 0x6c, 0x69, 0x76, - 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x46, 0x5a, - 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, - 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x62, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xba, 0x04, 0x0a, + 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, + 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x01, 0x52, 0x10, 0x64, 0x65, 0x70, 0x61, + 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x02, 0x52, 0x0f, 0x6d, 0x61, 0x78, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x06, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x48, 0x03, 0x52, 0x06, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x2d, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x48, 0x04, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x05, 0x52, 0x0f, 0x6d, + 0x69, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, + 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x06, 0x52, 0x0f, + 0x6d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x07, 0x52, 0x0b, 0x73, 0x79, 0x6e, 0x63, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, + 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x65, 0x6c, + 0x61, 0x79, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6f, + 0x75, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x79, 0x6e, + 0x63, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x22, 0x32, 0x0a, 0x1c, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x63, 0x0a, + 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, + 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0xf6, 0x02, 0x0a, 0x11, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x64, 0x65, + 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x29, + 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x06, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x06, + 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x69, 0x6e, + 0x50, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x2a, 0x0a, 0x11, + 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x50, 0x6c, 0x61, 0x79, + 0x6f, 0x75, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x79, 0x6e, 0x63, + 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x73, 0x79, 0x6e, 0x63, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x32, 0x8e, 0x09, 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, 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, 0x60, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x65, + 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x19, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x12, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x22, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x5e, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x27, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, + 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x27, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x6d, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x6d, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x46, 0x5a, 0x23, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1309,74 +1857,95 @@ func file_livekit_room_proto_rawDescGZIP() []byte { return file_livekit_room_proto_rawDescData } -var file_livekit_room_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_livekit_room_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_livekit_room_proto_goTypes = []interface{}{ - (*CreateRoomRequest)(nil), // 0: livekit.CreateRoomRequest - (*RoomEgress)(nil), // 1: livekit.RoomEgress - (*ListRoomsRequest)(nil), // 2: livekit.ListRoomsRequest - (*ListRoomsResponse)(nil), // 3: livekit.ListRoomsResponse - (*DeleteRoomRequest)(nil), // 4: livekit.DeleteRoomRequest - (*DeleteRoomResponse)(nil), // 5: livekit.DeleteRoomResponse - (*ListParticipantsRequest)(nil), // 6: livekit.ListParticipantsRequest - (*ListParticipantsResponse)(nil), // 7: livekit.ListParticipantsResponse - (*RoomParticipantIdentity)(nil), // 8: livekit.RoomParticipantIdentity - (*RemoveParticipantResponse)(nil), // 9: livekit.RemoveParticipantResponse - (*MuteRoomTrackRequest)(nil), // 10: livekit.MuteRoomTrackRequest - (*MuteRoomTrackResponse)(nil), // 11: livekit.MuteRoomTrackResponse - (*UpdateParticipantRequest)(nil), // 12: livekit.UpdateParticipantRequest - (*UpdateSubscriptionsRequest)(nil), // 13: livekit.UpdateSubscriptionsRequest - (*UpdateSubscriptionsResponse)(nil), // 14: livekit.UpdateSubscriptionsResponse - (*SendDataRequest)(nil), // 15: livekit.SendDataRequest - (*SendDataResponse)(nil), // 16: livekit.SendDataResponse - (*UpdateRoomMetadataRequest)(nil), // 17: livekit.UpdateRoomMetadataRequest - (*RoomCompositeEgressRequest)(nil), // 18: livekit.RoomCompositeEgressRequest - (*AutoParticipantEgress)(nil), // 19: livekit.AutoParticipantEgress - (*AutoTrackEgress)(nil), // 20: livekit.AutoTrackEgress - (*Room)(nil), // 21: livekit.Room - (*ParticipantInfo)(nil), // 22: livekit.ParticipantInfo - (*TrackInfo)(nil), // 23: livekit.TrackInfo - (*ParticipantPermission)(nil), // 24: livekit.ParticipantPermission - (*ParticipantTracks)(nil), // 25: livekit.ParticipantTracks - (DataPacket_Kind)(0), // 26: livekit.DataPacket.Kind + (*CreateRoomRequest)(nil), // 0: livekit.CreateRoomRequest + (*RoomEgress)(nil), // 1: livekit.RoomEgress + (*RoomAgent)(nil), // 2: livekit.RoomAgent + (*ListRoomsRequest)(nil), // 3: livekit.ListRoomsRequest + (*ListRoomsResponse)(nil), // 4: livekit.ListRoomsResponse + (*DeleteRoomRequest)(nil), // 5: livekit.DeleteRoomRequest + (*DeleteRoomResponse)(nil), // 6: livekit.DeleteRoomResponse + (*ListParticipantsRequest)(nil), // 7: livekit.ListParticipantsRequest + (*ListParticipantsResponse)(nil), // 8: livekit.ListParticipantsResponse + (*RoomParticipantIdentity)(nil), // 9: livekit.RoomParticipantIdentity + (*RemoveParticipantResponse)(nil), // 10: livekit.RemoveParticipantResponse + (*MuteRoomTrackRequest)(nil), // 11: livekit.MuteRoomTrackRequest + (*MuteRoomTrackResponse)(nil), // 12: livekit.MuteRoomTrackResponse + (*UpdateParticipantRequest)(nil), // 13: livekit.UpdateParticipantRequest + (*UpdateSubscriptionsRequest)(nil), // 14: livekit.UpdateSubscriptionsRequest + (*UpdateSubscriptionsResponse)(nil), // 15: livekit.UpdateSubscriptionsResponse + (*SendDataRequest)(nil), // 16: livekit.SendDataRequest + (*SendDataResponse)(nil), // 17: livekit.SendDataResponse + (*UpdateRoomMetadataRequest)(nil), // 18: livekit.UpdateRoomMetadataRequest + (*CreateRoomConfigurationRequest)(nil), // 19: livekit.CreateRoomConfigurationRequest + (*UpdateRoomConfigurationRequest)(nil), // 20: livekit.UpdateRoomConfigurationRequest + (*ListRoomConfigurationRequest)(nil), // 21: livekit.ListRoomConfigurationRequest + (*ListRoomConfigurationResponse)(nil), // 22: livekit.ListRoomConfigurationResponse + (*RoomConfiguration)(nil), // 23: livekit.RoomConfiguration + (*RoomCompositeEgressRequest)(nil), // 24: livekit.RoomCompositeEgressRequest + (*AutoParticipantEgress)(nil), // 25: livekit.AutoParticipantEgress + (*AutoTrackEgress)(nil), // 26: livekit.AutoTrackEgress + (*StartAgentJobRequest)(nil), // 27: livekit.StartAgentJobRequest + (*Room)(nil), // 28: livekit.Room + (*ParticipantInfo)(nil), // 29: livekit.ParticipantInfo + (*TrackInfo)(nil), // 30: livekit.TrackInfo + (*ParticipantPermission)(nil), // 31: livekit.ParticipantPermission + (*ParticipantTracks)(nil), // 32: livekit.ParticipantTracks + (DataPacket_Kind)(0), // 33: livekit.DataPacket.Kind } var file_livekit_room_proto_depIdxs = []int32{ 1, // 0: livekit.CreateRoomRequest.egress:type_name -> livekit.RoomEgress - 18, // 1: livekit.RoomEgress.room:type_name -> livekit.RoomCompositeEgressRequest - 19, // 2: livekit.RoomEgress.participant:type_name -> livekit.AutoParticipantEgress - 20, // 3: livekit.RoomEgress.tracks:type_name -> livekit.AutoTrackEgress - 21, // 4: livekit.ListRoomsResponse.rooms:type_name -> livekit.Room - 22, // 5: livekit.ListParticipantsResponse.participants:type_name -> livekit.ParticipantInfo - 23, // 6: livekit.MuteRoomTrackResponse.track:type_name -> livekit.TrackInfo - 24, // 7: livekit.UpdateParticipantRequest.permission:type_name -> livekit.ParticipantPermission - 25, // 8: livekit.UpdateSubscriptionsRequest.participant_tracks:type_name -> livekit.ParticipantTracks - 26, // 9: livekit.SendDataRequest.kind:type_name -> livekit.DataPacket.Kind - 0, // 10: livekit.RoomService.CreateRoom:input_type -> livekit.CreateRoomRequest - 2, // 11: livekit.RoomService.ListRooms:input_type -> livekit.ListRoomsRequest - 4, // 12: livekit.RoomService.DeleteRoom:input_type -> livekit.DeleteRoomRequest - 6, // 13: livekit.RoomService.ListParticipants:input_type -> livekit.ListParticipantsRequest - 8, // 14: livekit.RoomService.GetParticipant:input_type -> livekit.RoomParticipantIdentity - 8, // 15: livekit.RoomService.RemoveParticipant:input_type -> livekit.RoomParticipantIdentity - 10, // 16: livekit.RoomService.MutePublishedTrack:input_type -> livekit.MuteRoomTrackRequest - 12, // 17: livekit.RoomService.UpdateParticipant:input_type -> livekit.UpdateParticipantRequest - 13, // 18: livekit.RoomService.UpdateSubscriptions:input_type -> livekit.UpdateSubscriptionsRequest - 15, // 19: livekit.RoomService.SendData:input_type -> livekit.SendDataRequest - 17, // 20: livekit.RoomService.UpdateRoomMetadata:input_type -> livekit.UpdateRoomMetadataRequest - 21, // 21: livekit.RoomService.CreateRoom:output_type -> livekit.Room - 3, // 22: livekit.RoomService.ListRooms:output_type -> livekit.ListRoomsResponse - 5, // 23: livekit.RoomService.DeleteRoom:output_type -> livekit.DeleteRoomResponse - 7, // 24: livekit.RoomService.ListParticipants:output_type -> livekit.ListParticipantsResponse - 22, // 25: livekit.RoomService.GetParticipant:output_type -> livekit.ParticipantInfo - 9, // 26: livekit.RoomService.RemoveParticipant:output_type -> livekit.RemoveParticipantResponse - 11, // 27: livekit.RoomService.MutePublishedTrack:output_type -> livekit.MuteRoomTrackResponse - 22, // 28: livekit.RoomService.UpdateParticipant:output_type -> livekit.ParticipantInfo - 14, // 29: livekit.RoomService.UpdateSubscriptions:output_type -> livekit.UpdateSubscriptionsResponse - 16, // 30: livekit.RoomService.SendData:output_type -> livekit.SendDataResponse - 21, // 31: livekit.RoomService.UpdateRoomMetadata:output_type -> livekit.Room - 21, // [21:32] is the sub-list for method output_type - 10, // [10:21] 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 + 2, // 1: livekit.CreateRoomRequest.agent:type_name -> livekit.RoomAgent + 24, // 2: livekit.RoomEgress.room:type_name -> livekit.RoomCompositeEgressRequest + 25, // 3: livekit.RoomEgress.participant:type_name -> livekit.AutoParticipantEgress + 26, // 4: livekit.RoomEgress.tracks:type_name -> livekit.AutoTrackEgress + 27, // 5: livekit.RoomAgent.agents:type_name -> livekit.StartAgentJobRequest + 28, // 6: livekit.ListRoomsResponse.rooms:type_name -> livekit.Room + 29, // 7: livekit.ListParticipantsResponse.participants:type_name -> livekit.ParticipantInfo + 30, // 8: livekit.MuteRoomTrackResponse.track:type_name -> livekit.TrackInfo + 31, // 9: livekit.UpdateParticipantRequest.permission:type_name -> livekit.ParticipantPermission + 32, // 10: livekit.UpdateSubscriptionsRequest.participant_tracks:type_name -> livekit.ParticipantTracks + 33, // 11: livekit.SendDataRequest.kind:type_name -> livekit.DataPacket.Kind + 23, // 12: livekit.CreateRoomConfigurationRequest.configuration:type_name -> livekit.RoomConfiguration + 1, // 13: livekit.UpdateRoomConfigurationRequest.egress:type_name -> livekit.RoomEgress + 2, // 14: livekit.UpdateRoomConfigurationRequest.agent:type_name -> livekit.RoomAgent + 23, // 15: livekit.ListRoomConfigurationResponse.configurations:type_name -> livekit.RoomConfiguration + 1, // 16: livekit.RoomConfiguration.egress:type_name -> livekit.RoomEgress + 2, // 17: livekit.RoomConfiguration.agent:type_name -> livekit.RoomAgent + 0, // 18: livekit.RoomService.CreateRoom:input_type -> livekit.CreateRoomRequest + 3, // 19: livekit.RoomService.ListRooms:input_type -> livekit.ListRoomsRequest + 5, // 20: livekit.RoomService.DeleteRoom:input_type -> livekit.DeleteRoomRequest + 7, // 21: livekit.RoomService.ListParticipants:input_type -> livekit.ListParticipantsRequest + 9, // 22: livekit.RoomService.GetParticipant:input_type -> livekit.RoomParticipantIdentity + 9, // 23: livekit.RoomService.RemoveParticipant:input_type -> livekit.RoomParticipantIdentity + 11, // 24: livekit.RoomService.MutePublishedTrack:input_type -> livekit.MuteRoomTrackRequest + 13, // 25: livekit.RoomService.UpdateParticipant:input_type -> livekit.UpdateParticipantRequest + 14, // 26: livekit.RoomService.UpdateSubscriptions:input_type -> livekit.UpdateSubscriptionsRequest + 16, // 27: livekit.RoomService.SendData:input_type -> livekit.SendDataRequest + 18, // 28: livekit.RoomService.UpdateRoomMetadata:input_type -> livekit.UpdateRoomMetadataRequest + 19, // 29: livekit.RoomService.CreateRoomConfiguration:input_type -> livekit.CreateRoomConfigurationRequest + 20, // 30: livekit.RoomService.UpdateRoomConfiguration:input_type -> livekit.UpdateRoomConfigurationRequest + 21, // 31: livekit.RoomService.ListRoomConfiguration:input_type -> livekit.ListRoomConfigurationRequest + 28, // 32: livekit.RoomService.CreateRoom:output_type -> livekit.Room + 4, // 33: livekit.RoomService.ListRooms:output_type -> livekit.ListRoomsResponse + 6, // 34: livekit.RoomService.DeleteRoom:output_type -> livekit.DeleteRoomResponse + 8, // 35: livekit.RoomService.ListParticipants:output_type -> livekit.ListParticipantsResponse + 29, // 36: livekit.RoomService.GetParticipant:output_type -> livekit.ParticipantInfo + 10, // 37: livekit.RoomService.RemoveParticipant:output_type -> livekit.RemoveParticipantResponse + 12, // 38: livekit.RoomService.MutePublishedTrack:output_type -> livekit.MuteRoomTrackResponse + 29, // 39: livekit.RoomService.UpdateParticipant:output_type -> livekit.ParticipantInfo + 15, // 40: livekit.RoomService.UpdateSubscriptions:output_type -> livekit.UpdateSubscriptionsResponse + 17, // 41: livekit.RoomService.SendData:output_type -> livekit.SendDataResponse + 28, // 42: livekit.RoomService.UpdateRoomMetadata:output_type -> livekit.Room + 23, // 43: livekit.RoomService.CreateRoomConfiguration:output_type -> livekit.RoomConfiguration + 23, // 44: livekit.RoomService.UpdateRoomConfiguration:output_type -> livekit.RoomConfiguration + 22, // 45: livekit.RoomService.ListRoomConfiguration:output_type -> livekit.ListRoomConfigurationResponse + 32, // [32:46] is the sub-list for method output_type + 18, // [18:32] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name } func init() { file_livekit_room_proto_init() } @@ -1386,6 +1955,7 @@ func file_livekit_room_proto_init() { } file_livekit_models_proto_init() file_livekit_egress_proto_init() + file_livekit_agent_proto_init() if !protoimpl.UnsafeEnabled { file_livekit_room_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRoomRequest); i { @@ -1412,7 +1982,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRoomsRequest); i { + switch v := v.(*RoomAgent); i { case 0: return &v.state case 1: @@ -1424,7 +1994,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRoomsResponse); i { + switch v := v.(*ListRoomsRequest); i { case 0: return &v.state case 1: @@ -1436,7 +2006,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteRoomRequest); i { + switch v := v.(*ListRoomsResponse); i { case 0: return &v.state case 1: @@ -1448,7 +2018,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteRoomResponse); i { + switch v := v.(*DeleteRoomRequest); i { case 0: return &v.state case 1: @@ -1460,7 +2030,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListParticipantsRequest); i { + switch v := v.(*DeleteRoomResponse); i { case 0: return &v.state case 1: @@ -1472,7 +2042,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListParticipantsResponse); i { + switch v := v.(*ListParticipantsRequest); i { case 0: return &v.state case 1: @@ -1484,7 +2054,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RoomParticipantIdentity); i { + switch v := v.(*ListParticipantsResponse); i { case 0: return &v.state case 1: @@ -1496,7 +2066,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveParticipantResponse); i { + switch v := v.(*RoomParticipantIdentity); i { case 0: return &v.state case 1: @@ -1508,7 +2078,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MuteRoomTrackRequest); i { + switch v := v.(*RemoveParticipantResponse); i { case 0: return &v.state case 1: @@ -1520,7 +2090,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MuteRoomTrackResponse); i { + switch v := v.(*MuteRoomTrackRequest); i { case 0: return &v.state case 1: @@ -1532,7 +2102,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateParticipantRequest); i { + switch v := v.(*MuteRoomTrackResponse); i { case 0: return &v.state case 1: @@ -1544,7 +2114,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateSubscriptionsRequest); i { + switch v := v.(*UpdateParticipantRequest); i { case 0: return &v.state case 1: @@ -1556,7 +2126,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateSubscriptionsResponse); i { + switch v := v.(*UpdateSubscriptionsRequest); i { case 0: return &v.state case 1: @@ -1568,7 +2138,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendDataRequest); i { + switch v := v.(*UpdateSubscriptionsResponse); i { case 0: return &v.state case 1: @@ -1580,7 +2150,7 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendDataResponse); i { + switch v := v.(*SendDataRequest); i { case 0: return &v.state case 1: @@ -1592,6 +2162,18 @@ func file_livekit_room_proto_init() { } } file_livekit_room_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendDataResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_room_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateRoomMetadataRequest); i { case 0: return &v.state @@ -1603,15 +2185,76 @@ func file_livekit_room_proto_init() { return nil } } + file_livekit_room_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateRoomConfigurationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_room_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateRoomConfigurationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_room_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRoomConfigurationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_room_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListRoomConfigurationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_livekit_room_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RoomConfiguration); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - file_livekit_room_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_livekit_room_proto_msgTypes[16].OneofWrappers = []interface{}{} + file_livekit_room_proto_msgTypes[20].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_livekit_room_proto_rawDesc, NumEnums: 0, - NumMessages: 18, + NumMessages: 24, NumExtensions: 0, NumServices: 1, }, diff --git a/livekit/livekit_room.twirp.go b/livekit/livekit_room.twirp.go index f53c62b3..af8deb4b 100644 --- a/livekit/livekit_room.twirp.go +++ b/livekit/livekit_room.twirp.go @@ -63,6 +63,15 @@ type RoomService interface { // Update room metadata, will cause updates to be broadcasted to everyone in the room, Requires `roomAdmin` UpdateRoomMetadata(context.Context, *UpdateRoomMetadataRequest) (*Room, error) + + // Create a room configuration. + CreateRoomConfiguration(context.Context, *CreateRoomConfigurationRequest) (*RoomConfiguration, error) + + // Update a room configuration + UpdateRoomConfiguration(context.Context, *UpdateRoomConfigurationRequest) (*RoomConfiguration, error) + + // List configurations + ListRoomConfiguration(context.Context, *ListRoomConfigurationRequest) (*ListRoomConfigurationResponse, error) } // =========================== @@ -71,7 +80,7 @@ type RoomService interface { type roomServiceProtobufClient struct { client HTTPClient - urls [11]string + urls [14]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -99,7 +108,7 @@ func NewRoomServiceProtobufClient(baseURL string, client HTTPClient, opts ...twi // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "RoomService") - urls := [11]string{ + urls := [14]string{ serviceURL + "CreateRoom", serviceURL + "ListRooms", serviceURL + "DeleteRoom", @@ -111,6 +120,9 @@ func NewRoomServiceProtobufClient(baseURL string, client HTTPClient, opts ...twi serviceURL + "UpdateSubscriptions", serviceURL + "SendData", serviceURL + "UpdateRoomMetadata", + serviceURL + "CreateRoomConfiguration", + serviceURL + "UpdateRoomConfiguration", + serviceURL + "ListRoomConfiguration", } return &roomServiceProtobufClient{ @@ -627,13 +639,151 @@ func (c *roomServiceProtobufClient) callUpdateRoomMetadata(ctx context.Context, return out, nil } +func (c *roomServiceProtobufClient) CreateRoomConfiguration(ctx context.Context, in *CreateRoomConfigurationRequest) (*RoomConfiguration, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "RoomService") + ctx = ctxsetters.WithMethodName(ctx, "CreateRoomConfiguration") + caller := c.callCreateRoomConfiguration + if c.interceptor != nil { + caller = func(ctx context.Context, req *CreateRoomConfigurationRequest) (*RoomConfiguration, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*CreateRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*CreateRoomConfigurationRequest) when calling interceptor") + } + return c.callCreateRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*RoomConfiguration) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*RoomConfiguration) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *roomServiceProtobufClient) callCreateRoomConfiguration(ctx context.Context, in *CreateRoomConfigurationRequest) (*RoomConfiguration, error) { + out := new(RoomConfiguration) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[11], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *roomServiceProtobufClient) UpdateRoomConfiguration(ctx context.Context, in *UpdateRoomConfigurationRequest) (*RoomConfiguration, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "RoomService") + ctx = ctxsetters.WithMethodName(ctx, "UpdateRoomConfiguration") + caller := c.callUpdateRoomConfiguration + if c.interceptor != nil { + caller = func(ctx context.Context, req *UpdateRoomConfigurationRequest) (*RoomConfiguration, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*UpdateRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*UpdateRoomConfigurationRequest) when calling interceptor") + } + return c.callUpdateRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*RoomConfiguration) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*RoomConfiguration) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *roomServiceProtobufClient) callUpdateRoomConfiguration(ctx context.Context, in *UpdateRoomConfigurationRequest) (*RoomConfiguration, error) { + out := new(RoomConfiguration) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *roomServiceProtobufClient) ListRoomConfiguration(ctx context.Context, in *ListRoomConfigurationRequest) (*ListRoomConfigurationResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "RoomService") + ctx = ctxsetters.WithMethodName(ctx, "ListRoomConfiguration") + caller := c.callListRoomConfiguration + if c.interceptor != nil { + caller = func(ctx context.Context, req *ListRoomConfigurationRequest) (*ListRoomConfigurationResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ListRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ListRoomConfigurationRequest) when calling interceptor") + } + return c.callListRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ListRoomConfigurationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ListRoomConfigurationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *roomServiceProtobufClient) callListRoomConfiguration(ctx context.Context, in *ListRoomConfigurationRequest) (*ListRoomConfigurationResponse, error) { + out := new(ListRoomConfigurationResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[13], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + // ======================= // RoomService JSON Client // ======================= type roomServiceJSONClient struct { client HTTPClient - urls [11]string + urls [14]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -661,7 +811,7 @@ func NewRoomServiceJSONClient(baseURL string, client HTTPClient, opts ...twirp.C // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "RoomService") - urls := [11]string{ + urls := [14]string{ serviceURL + "CreateRoom", serviceURL + "ListRooms", serviceURL + "DeleteRoom", @@ -673,6 +823,9 @@ func NewRoomServiceJSONClient(baseURL string, client HTTPClient, opts ...twirp.C serviceURL + "UpdateSubscriptions", serviceURL + "SendData", serviceURL + "UpdateRoomMetadata", + serviceURL + "CreateRoomConfiguration", + serviceURL + "UpdateRoomConfiguration", + serviceURL + "ListRoomConfiguration", } return &roomServiceJSONClient{ @@ -1189,6 +1342,144 @@ func (c *roomServiceJSONClient) callUpdateRoomMetadata(ctx context.Context, in * return out, nil } +func (c *roomServiceJSONClient) CreateRoomConfiguration(ctx context.Context, in *CreateRoomConfigurationRequest) (*RoomConfiguration, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "RoomService") + ctx = ctxsetters.WithMethodName(ctx, "CreateRoomConfiguration") + caller := c.callCreateRoomConfiguration + if c.interceptor != nil { + caller = func(ctx context.Context, req *CreateRoomConfigurationRequest) (*RoomConfiguration, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*CreateRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*CreateRoomConfigurationRequest) when calling interceptor") + } + return c.callCreateRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*RoomConfiguration) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*RoomConfiguration) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *roomServiceJSONClient) callCreateRoomConfiguration(ctx context.Context, in *CreateRoomConfigurationRequest) (*RoomConfiguration, error) { + out := new(RoomConfiguration) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[11], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *roomServiceJSONClient) UpdateRoomConfiguration(ctx context.Context, in *UpdateRoomConfigurationRequest) (*RoomConfiguration, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "RoomService") + ctx = ctxsetters.WithMethodName(ctx, "UpdateRoomConfiguration") + caller := c.callUpdateRoomConfiguration + if c.interceptor != nil { + caller = func(ctx context.Context, req *UpdateRoomConfigurationRequest) (*RoomConfiguration, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*UpdateRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*UpdateRoomConfigurationRequest) when calling interceptor") + } + return c.callUpdateRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*RoomConfiguration) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*RoomConfiguration) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *roomServiceJSONClient) callUpdateRoomConfiguration(ctx context.Context, in *UpdateRoomConfigurationRequest) (*RoomConfiguration, error) { + out := new(RoomConfiguration) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[12], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *roomServiceJSONClient) ListRoomConfiguration(ctx context.Context, in *ListRoomConfigurationRequest) (*ListRoomConfigurationResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "RoomService") + ctx = ctxsetters.WithMethodName(ctx, "ListRoomConfiguration") + caller := c.callListRoomConfiguration + if c.interceptor != nil { + caller = func(ctx context.Context, req *ListRoomConfigurationRequest) (*ListRoomConfigurationResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ListRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ListRoomConfigurationRequest) when calling interceptor") + } + return c.callListRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ListRoomConfigurationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ListRoomConfigurationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *roomServiceJSONClient) callListRoomConfiguration(ctx context.Context, in *ListRoomConfigurationRequest) (*ListRoomConfigurationResponse, error) { + out := new(ListRoomConfigurationResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[13], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + // ========================== // RoomService Server Handler // ========================== @@ -1319,6 +1610,15 @@ func (s *roomServiceServer) ServeHTTP(resp http.ResponseWriter, req *http.Reques case "UpdateRoomMetadata": s.serveUpdateRoomMetadata(ctx, resp, req) return + case "CreateRoomConfiguration": + s.serveCreateRoomConfiguration(ctx, resp, req) + return + case "UpdateRoomConfiguration": + s.serveUpdateRoomConfiguration(ctx, resp, req) + return + case "ListRoomConfiguration": + s.serveListRoomConfiguration(ctx, resp, req) + return default: msg := fmt.Sprintf("no handler for path %q", req.URL.Path) s.writeError(ctx, resp, badRouteError(msg, req.Method, req.URL.Path)) @@ -3306,6 +3606,546 @@ func (s *roomServiceServer) serveUpdateRoomMetadataProtobuf(ctx context.Context, callResponseSent(ctx, s.hooks) } +func (s *roomServiceServer) serveCreateRoomConfiguration(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveCreateRoomConfigurationJSON(ctx, resp, req) + case "application/protobuf": + s.serveCreateRoomConfigurationProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *roomServiceServer) serveCreateRoomConfigurationJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "CreateRoomConfiguration") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(CreateRoomConfigurationRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.RoomService.CreateRoomConfiguration + if s.interceptor != nil { + handler = func(ctx context.Context, req *CreateRoomConfigurationRequest) (*RoomConfiguration, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*CreateRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*CreateRoomConfigurationRequest) when calling interceptor") + } + return s.RoomService.CreateRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*RoomConfiguration) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*RoomConfiguration) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *RoomConfiguration + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *RoomConfiguration and nil error while calling CreateRoomConfiguration. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *roomServiceServer) serveCreateRoomConfigurationProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "CreateRoomConfiguration") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(CreateRoomConfigurationRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.RoomService.CreateRoomConfiguration + if s.interceptor != nil { + handler = func(ctx context.Context, req *CreateRoomConfigurationRequest) (*RoomConfiguration, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*CreateRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*CreateRoomConfigurationRequest) when calling interceptor") + } + return s.RoomService.CreateRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*RoomConfiguration) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*RoomConfiguration) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *RoomConfiguration + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *RoomConfiguration and nil error while calling CreateRoomConfiguration. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *roomServiceServer) serveUpdateRoomConfiguration(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveUpdateRoomConfigurationJSON(ctx, resp, req) + case "application/protobuf": + s.serveUpdateRoomConfigurationProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *roomServiceServer) serveUpdateRoomConfigurationJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "UpdateRoomConfiguration") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(UpdateRoomConfigurationRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.RoomService.UpdateRoomConfiguration + if s.interceptor != nil { + handler = func(ctx context.Context, req *UpdateRoomConfigurationRequest) (*RoomConfiguration, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*UpdateRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*UpdateRoomConfigurationRequest) when calling interceptor") + } + return s.RoomService.UpdateRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*RoomConfiguration) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*RoomConfiguration) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *RoomConfiguration + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *RoomConfiguration and nil error while calling UpdateRoomConfiguration. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *roomServiceServer) serveUpdateRoomConfigurationProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "UpdateRoomConfiguration") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(UpdateRoomConfigurationRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.RoomService.UpdateRoomConfiguration + if s.interceptor != nil { + handler = func(ctx context.Context, req *UpdateRoomConfigurationRequest) (*RoomConfiguration, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*UpdateRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*UpdateRoomConfigurationRequest) when calling interceptor") + } + return s.RoomService.UpdateRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*RoomConfiguration) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*RoomConfiguration) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *RoomConfiguration + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *RoomConfiguration and nil error while calling UpdateRoomConfiguration. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *roomServiceServer) serveListRoomConfiguration(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveListRoomConfigurationJSON(ctx, resp, req) + case "application/protobuf": + s.serveListRoomConfigurationProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *roomServiceServer) serveListRoomConfigurationJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "ListRoomConfiguration") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(ListRoomConfigurationRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.RoomService.ListRoomConfiguration + if s.interceptor != nil { + handler = func(ctx context.Context, req *ListRoomConfigurationRequest) (*ListRoomConfigurationResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ListRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ListRoomConfigurationRequest) when calling interceptor") + } + return s.RoomService.ListRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ListRoomConfigurationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ListRoomConfigurationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *ListRoomConfigurationResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *ListRoomConfigurationResponse and nil error while calling ListRoomConfiguration. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *roomServiceServer) serveListRoomConfigurationProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "ListRoomConfiguration") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(ListRoomConfigurationRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.RoomService.ListRoomConfiguration + if s.interceptor != nil { + handler = func(ctx context.Context, req *ListRoomConfigurationRequest) (*ListRoomConfigurationResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ListRoomConfigurationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ListRoomConfigurationRequest) when calling interceptor") + } + return s.RoomService.ListRoomConfiguration(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ListRoomConfigurationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ListRoomConfigurationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *ListRoomConfigurationResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *ListRoomConfigurationResponse and nil error while calling ListRoomConfiguration. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + func (s *roomServiceServer) ServiceDescriptor() ([]byte, int) { return twirpFileDescriptor2, 0 } @@ -3322,73 +4162,96 @@ func (s *roomServiceServer) PathPrefix() string { } var twirpFileDescriptor2 = []byte{ - // 1087 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xdd, 0x6e, 0x1b, 0x45, - 0x14, 0x66, 0x13, 0xdb, 0xb1, 0x8f, 0xf3, 0xe7, 0x69, 0x4a, 0x36, 0x1b, 0x52, 0xb9, 0x1b, 0x24, - 0x0c, 0xa5, 0x29, 0x32, 0x42, 0x45, 0x15, 0x02, 0x9a, 0xa6, 0x94, 0x28, 0xa9, 0x64, 0x8d, 0x8b, - 0xf8, 0xb9, 0x31, 0x1b, 0xef, 0xd0, 0x8e, 0xe2, 0xdd, 0x59, 0x76, 0x66, 0xa3, 0xfa, 0x92, 0x3b, - 0x9e, 0x85, 0x37, 0x80, 0xe7, 0xe0, 0x19, 0xb8, 0xe0, 0x92, 0x27, 0x40, 0xf3, 0xe3, 0xdd, 0x59, - 0x7b, 0x6d, 0x50, 0xef, 0x3c, 0xe7, 0x7c, 0x73, 0xe6, 0x9c, 0xef, 0x9c, 0xf3, 0xad, 0x01, 0x4d, - 0xe8, 0x0d, 0xb9, 0xa6, 0x62, 0x94, 0x32, 0x16, 0x9d, 0x24, 0x29, 0x13, 0x0c, 0x6d, 0x18, 0x9b, - 0xb7, 0x37, 0x73, 0x46, 0x2c, 0x24, 0x13, 0xae, 0xdd, 0x85, 0x95, 0xbc, 0x4c, 0x09, 0x37, 0x56, - 0xff, 0x97, 0x75, 0xe8, 0x3c, 0x49, 0x49, 0x20, 0x08, 0x66, 0x2c, 0xc2, 0xe4, 0xe7, 0x8c, 0x70, - 0x81, 0x10, 0xd4, 0xe2, 0x20, 0x22, 0xae, 0xd3, 0x75, 0x7a, 0x2d, 0xac, 0x7e, 0xa3, 0x63, 0xd8, - 0x22, 0x51, 0x22, 0xa6, 0x23, 0x41, 0x23, 0xc2, 0x32, 0xe1, 0xae, 0x75, 0x9d, 0xde, 0x16, 0xde, - 0x54, 0xc6, 0x17, 0xda, 0x86, 0xee, 0x41, 0x27, 0x24, 0x49, 0x90, 0x8a, 0x2c, 0x25, 0x39, 0x10, - 0x14, 0x70, 0x37, 0x77, 0xcc, 0xc0, 0xef, 0xc3, 0x6e, 0x14, 0xbc, 0x1e, 0x49, 0x2b, 0x1d, 0xd3, - 0x24, 0x88, 0x05, 0x77, 0xd7, 0x15, 0x76, 0x27, 0x0a, 0x5e, 0x0f, 0x2c, 0x33, 0xda, 0x87, 0x8d, - 0x98, 0x85, 0x64, 0x44, 0x43, 0xb7, 0xa6, 0x72, 0x6a, 0xc8, 0xe3, 0x79, 0x88, 0x3c, 0x68, 0x46, - 0x44, 0x04, 0x61, 0x20, 0x02, 0xb7, 0xae, 0x3c, 0xf9, 0x19, 0xdd, 0x83, 0x86, 0xae, 0xd5, 0x6d, - 0x74, 0x9d, 0x5e, 0xbb, 0x7f, 0xeb, 0xc4, 0x50, 0x70, 0x22, 0x6b, 0x7d, 0xaa, 0x5c, 0xd8, 0x40, - 0xd0, 0x07, 0xd0, 0x89, 0x68, 0x3c, 0x4a, 0x26, 0xc1, 0x94, 0x65, 0x62, 0x14, 0x92, 0x49, 0x30, - 0x75, 0x37, 0x4c, 0x36, 0x34, 0x1e, 0x68, 0xfb, 0x99, 0x34, 0x2b, 0xac, 0x4c, 0xbc, 0x84, 0x6d, - 0x16, 0x99, 0xdb, 0xd8, 0xbb, 0xb0, 0xc9, 0xa7, 0xf1, 0x78, 0xc4, 0x45, 0x4a, 0x82, 0x88, 0xbb, - 0xad, 0xae, 0xd3, 0x6b, 0xe2, 0xb6, 0xb4, 0x0d, 0xb5, 0xc9, 0xff, 0xdd, 0x01, 0x28, 0x32, 0x42, - 0x0f, 0xa1, 0x26, 0xbb, 0xaa, 0xc8, 0x6f, 0xf7, 0x8f, 0x4b, 0x49, 0x3f, 0x61, 0x51, 0xc2, 0x38, - 0x15, 0xc4, 0x64, 0xaf, 0xfb, 0x85, 0xd5, 0x05, 0xf4, 0x25, 0xb4, 0x2d, 0x2e, 0x15, 0x95, 0xed, - 0xfe, 0x9d, 0xfc, 0xfe, 0xe3, 0x4c, 0x30, 0x8b, 0x54, 0x13, 0xc1, 0xbe, 0x82, 0x3e, 0x82, 0x86, - 0x48, 0x83, 0xf1, 0x35, 0x57, 0xcd, 0x6d, 0xf7, 0xdd, 0xd2, 0xe5, 0x17, 0xd2, 0x35, 0xa3, 0x4d, - 0xe3, 0xfc, 0x1e, 0xec, 0x5e, 0x52, 0x2e, 0x64, 0x6e, 0xb3, 0x6c, 0xd0, 0x1e, 0xd4, 0xe5, 0xc4, - 0x70, 0xd7, 0xe9, 0xae, 0xf7, 0x5a, 0x58, 0x1f, 0xfc, 0x4f, 0xa1, 0x63, 0x21, 0x79, 0xc2, 0x62, - 0x2e, 0x87, 0xaa, 0x2e, 0x53, 0xd7, 0xd0, 0x76, 0x7f, 0xab, 0x54, 0x2c, 0xd6, 0x3e, 0xff, 0x3d, - 0xe8, 0x9c, 0x91, 0x09, 0x59, 0x18, 0xd1, 0x9c, 0xa5, 0x96, 0x26, 0xc0, 0xdf, 0x03, 0x64, 0x03, - 0xf5, 0x1b, 0xfe, 0x7d, 0xd8, 0x97, 0x0f, 0xdb, 0xf3, 0xb4, 0x2a, 0xc8, 0x77, 0xe0, 0x2e, 0xc2, - 0x4d, 0xba, 0x9f, 0xc1, 0x66, 0x69, 0x5a, 0x75, 0xd6, 0x05, 0x4b, 0xd6, 0xa5, 0xf3, 0xf8, 0x27, - 0x86, 0x4b, 0x68, 0xff, 0x1c, 0xf6, 0x65, 0x62, 0x36, 0x28, 0x24, 0xb1, 0xa0, 0x62, 0x5a, 0x95, - 0x88, 0x1c, 0x6d, 0x6a, 0xfc, 0xaa, 0x1d, 0x2d, 0x9c, 0x9f, 0xfd, 0x43, 0x38, 0xc0, 0x24, 0x62, - 0x37, 0xc4, 0x0a, 0x96, 0x17, 0x3c, 0x85, 0xbd, 0xe7, 0x99, 0x26, 0x41, 0xb5, 0x6c, 0x45, 0xb5, - 0xab, 0x1e, 0x41, 0x87, 0xd0, 0x52, 0x5d, 0x1e, 0x71, 0x1a, 0xaa, 0x69, 0x6a, 0xe1, 0xa6, 0x32, - 0x0c, 0x69, 0x28, 0x9b, 0x1c, 0x65, 0x82, 0xe8, 0x7d, 0x6c, 0x62, 0x7d, 0xf0, 0x1f, 0xc3, 0xed, - 0xb9, 0xa7, 0x0d, 0x73, 0x3d, 0xa8, 0xab, 0xab, 0x66, 0xaa, 0x51, 0x4e, 0x99, 0x82, 0x29, 0xb2, - 0x34, 0xc0, 0xff, 0xc3, 0x01, 0xf7, 0x9b, 0x24, 0x0c, 0x44, 0xb9, 0xb6, 0x37, 0x2b, 0xc1, 0x96, - 0x87, 0xf5, 0x39, 0x79, 0xf8, 0x1c, 0x20, 0x21, 0x69, 0x44, 0x39, 0xa7, 0x2c, 0x56, 0x65, 0xd8, - 0xdb, 0x62, 0x3d, 0x3e, 0xc8, 0x51, 0xd8, 0xba, 0x91, 0x8b, 0x64, 0xbd, 0x10, 0x49, 0xff, 0x4f, - 0x07, 0x3c, 0x9d, 0xfc, 0x30, 0xbb, 0xe2, 0xe3, 0x94, 0x26, 0x82, 0xb2, 0x98, 0xbf, 0x69, 0xfa, - 0x47, 0x00, 0x79, 0x07, 0xa4, 0x36, 0xca, 0x75, 0x6a, 0xcd, 0x5a, 0xc0, 0xd1, 0x3b, 0xd0, 0xe2, - 0xfa, 0x99, 0x2b, 0x62, 0xfa, 0x50, 0x18, 0xd0, 0x39, 0x20, 0x6b, 0xfc, 0x46, 0x66, 0xb1, 0xeb, - 0x6a, 0x64, 0xbd, 0xaa, 0x3a, 0x55, 0x2b, 0x38, 0xee, 0x24, 0xf3, 0x26, 0xff, 0x08, 0x0e, 0x2b, - 0xab, 0x32, 0x03, 0xf7, 0x8f, 0x03, 0x3b, 0x43, 0x12, 0x87, 0x67, 0x81, 0x08, 0x56, 0x95, 0x8a, - 0xa0, 0xa6, 0x3a, 0x21, 0xcb, 0xdc, 0xc4, 0xea, 0x37, 0xfa, 0x10, 0x6a, 0xd7, 0x34, 0xd6, 0xf3, - 0xb5, 0x6d, 0xad, 0x92, 0x8c, 0x35, 0x08, 0xc6, 0xd7, 0x44, 0x9c, 0x5c, 0xd0, 0x38, 0xc4, 0x0a, - 0x85, 0xee, 0xc3, 0x6e, 0x48, 0xb8, 0xa0, 0x71, 0x20, 0x33, 0xd0, 0xb4, 0xd4, 0x24, 0x2d, 0xa7, - 0x6b, 0xae, 0x83, 0x77, 0x2c, 0x9f, 0x22, 0xe8, 0x13, 0x78, 0xdb, 0x86, 0x1b, 0x5e, 0x29, 0x91, - 0x5f, 0x04, 0xc9, 0xe5, 0x6d, 0xcb, 0x7b, 0x9e, 0x3b, 0xd1, 0x01, 0xd4, 0x05, 0x4b, 0xe8, 0x58, - 0xb7, 0xf6, 0xeb, 0xb7, 0xb0, 0x3e, 0xfe, 0xea, 0x38, 0xa7, 0x4d, 0x68, 0x8c, 0xd4, 0xc1, 0x47, - 0xb0, 0x5b, 0xd4, 0x6c, 0x88, 0xb8, 0x80, 0x03, 0xcd, 0x93, 0x5c, 0x80, 0xe7, 0x66, 0xd0, 0xfe, - 0xa3, 0xf9, 0xf9, 0x7c, 0xae, 0x95, 0xe7, 0xb3, 0xff, 0x57, 0x03, 0xda, 0x32, 0xce, 0x90, 0xa4, - 0x37, 0x74, 0x4c, 0xd0, 0x43, 0x80, 0xe2, 0x4b, 0x8d, 0x8a, 0x0e, 0x2e, 0x7c, 0xbe, 0xbd, 0xb2, - 0x8c, 0xa2, 0x53, 0x68, 0xe5, 0xca, 0x8b, 0x0e, 0x72, 0xdf, 0xbc, 0x6e, 0x7b, 0x5e, 0x95, 0xcb, - 0xec, 0xef, 0x53, 0x80, 0x42, 0x5a, 0xad, 0xc7, 0x17, 0x84, 0xd9, 0x3b, 0xac, 0xf4, 0x99, 0x30, - 0xdf, 0xea, 0xcf, 0x45, 0xe9, 0xdb, 0xde, 0x2d, 0x3d, 0x5b, 0x21, 0xd3, 0xde, 0xdd, 0x15, 0x08, - 0x13, 0xf8, 0x12, 0xb6, 0x9f, 0x11, 0xdb, 0x65, 0x85, 0x5d, 0x22, 0xba, 0xde, 0x52, 0xdd, 0x46, - 0xdf, 0x43, 0x67, 0x41, 0x5e, 0xff, 0x47, 0x40, 0xbf, 0x40, 0x2c, 0x13, 0x67, 0x34, 0x04, 0x24, - 0x15, 0x72, 0x90, 0x5d, 0x4d, 0x28, 0x7f, 0x45, 0x42, 0xb5, 0x61, 0xe8, 0x28, 0xbf, 0x59, 0xa5, - 0xdc, 0xde, 0x9d, 0x65, 0x6e, 0x13, 0x74, 0x00, 0x9d, 0x05, 0xc9, 0x44, 0x05, 0x6b, 0xcb, 0xe4, - 0x74, 0x05, 0x03, 0x3f, 0xc2, 0xad, 0x8a, 0x8d, 0x47, 0xc7, 0x73, 0x31, 0xab, 0x54, 0xce, 0x7b, - 0x77, 0x35, 0xc8, 0xe4, 0xfc, 0x05, 0x34, 0x67, 0xfb, 0x83, 0x8a, 0x3c, 0xe6, 0x64, 0xc4, 0x3b, - 0xa8, 0xf0, 0x98, 0x00, 0xcf, 0x00, 0x2d, 0x2e, 0x1b, 0xf2, 0xe7, 0x1e, 0xaf, 0xd8, 0xc4, 0xb9, - 0xfd, 0x38, 0xfd, 0xea, 0x87, 0xe3, 0x97, 0x54, 0xbc, 0xca, 0xae, 0x4e, 0xc6, 0x2c, 0x7a, 0x60, - 0x5c, 0x0f, 0xd4, 0xff, 0xe3, 0x31, 0x9b, 0xcc, 0x0c, 0xbf, 0xad, 0x6d, 0x5d, 0xd2, 0x1b, 0x72, - 0x21, 0xc9, 0x92, 0xae, 0xbf, 0xd7, 0xb6, 0xcd, 0xf9, 0xd1, 0x23, 0x65, 0xb8, 0x6a, 0xa8, 0x2b, - 0x1f, 0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xc5, 0x5e, 0x21, 0x05, 0x9d, 0x0b, 0x00, 0x00, + // 1441 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0xdd, 0x72, 0xdb, 0x44, + 0x14, 0xae, 0x1c, 0xdb, 0xb1, 0x8e, 0xf3, 0xe7, 0x4d, 0x4a, 0x14, 0xa5, 0x09, 0xa9, 0x02, 0xad, + 0xa1, 0x34, 0xed, 0x98, 0xe9, 0x94, 0xe9, 0x30, 0xd0, 0xba, 0x2d, 0x75, 0x68, 0xcb, 0x64, 0xe4, + 0x32, 0xfc, 0x5c, 0x20, 0x64, 0x6b, 0x9b, 0xee, 0xc4, 0x92, 0x8c, 0xb4, 0xce, 0xd4, 0x6f, 0xd0, + 0x2b, 0x1e, 0x84, 0x37, 0xa0, 0xcf, 0xc0, 0x25, 0x4f, 0xc1, 0x25, 0x17, 0x5c, 0x33, 0xfb, 0x23, + 0x69, 0x65, 0xc9, 0x6e, 0xe9, 0x15, 0x77, 0xd1, 0x39, 0xdf, 0x39, 0x7b, 0xce, 0xb7, 0x67, 0x77, + 0x3f, 0x07, 0xd0, 0x88, 0x9c, 0xe3, 0x33, 0x42, 0x9d, 0x28, 0x0c, 0xfd, 0xa3, 0x71, 0x14, 0xd2, + 0x10, 0x2d, 0x4b, 0x9b, 0xb9, 0x95, 0x38, 0xfd, 0xd0, 0xc3, 0xa3, 0x58, 0xb8, 0x33, 0x2b, 0x3e, + 0x8d, 0x70, 0x9c, 0x58, 0x37, 0x13, 0xab, 0x7b, 0x8a, 0x03, 0x2a, 0x8c, 0xd6, 0x1f, 0x4b, 0xd0, + 0xba, 0x1f, 0x61, 0x97, 0x62, 0x3b, 0x0c, 0x7d, 0x1b, 0xff, 0x32, 0xc1, 0x31, 0x45, 0x08, 0xaa, + 0x81, 0xeb, 0x63, 0x43, 0x3b, 0xd0, 0xda, 0xba, 0xcd, 0xff, 0x46, 0xef, 0x43, 0x73, 0x18, 0x06, + 0xcf, 0xc9, 0xa9, 0xc3, 0x5d, 0x2b, 0xdc, 0x05, 0xc2, 0xf4, 0x0d, 0x03, 0x1c, 0xc2, 0x2a, 0xf6, + 0xc7, 0x74, 0xea, 0x50, 0xe2, 0xe3, 0x70, 0x42, 0x8d, 0xca, 0x81, 0xd6, 0x5e, 0xb5, 0x57, 0xb8, + 0xf1, 0x99, 0xb0, 0xa1, 0x6b, 0xd0, 0xf2, 0xf0, 0xd8, 0x8d, 0xe8, 0x24, 0xc2, 0x29, 0x10, 0x38, + 0x70, 0x23, 0x75, 0x24, 0xe0, 0x8f, 0x60, 0xc3, 0x77, 0x5f, 0x3a, 0xcc, 0x4a, 0x86, 0x64, 0xec, + 0x06, 0x34, 0x36, 0x96, 0x38, 0x76, 0xdd, 0x77, 0x5f, 0x9e, 0x28, 0x66, 0xb4, 0x0d, 0xcb, 0x41, + 0xe8, 0x61, 0x87, 0x78, 0x46, 0x95, 0x57, 0x56, 0x67, 0x9f, 0xc7, 0x1e, 0x32, 0xa1, 0xe1, 0x63, + 0xea, 0x7a, 0x2e, 0x75, 0x8d, 0x1a, 0xf7, 0xa4, 0xdf, 0xe8, 0x1a, 0xd4, 0x05, 0x43, 0x46, 0xfd, + 0x40, 0x6b, 0x37, 0x3b, 0x9b, 0x47, 0x92, 0xa2, 0x23, 0x46, 0xc6, 0x43, 0xee, 0xb2, 0x25, 0x04, + 0xb5, 0xa1, 0xc6, 0x89, 0x33, 0x9a, 0x1c, 0x8b, 0x72, 0xd8, 0x7b, 0xcc, 0x63, 0x0b, 0x00, 0xfa, + 0x18, 0x5a, 0x3e, 0x09, 0x9c, 0xf1, 0xc8, 0x9d, 0x86, 0x13, 0xea, 0x78, 0x78, 0xe4, 0x4e, 0x8d, + 0x65, 0x59, 0x37, 0x09, 0x4e, 0x84, 0xfd, 0x01, 0x33, 0x73, 0x2c, 0x6b, 0x31, 0x87, 0x6d, 0x64, + 0x3d, 0xaa, 0xd8, 0xcb, 0xb0, 0x12, 0x4f, 0x83, 0xa1, 0x13, 0xd3, 0x08, 0xbb, 0x7e, 0x6c, 0xe8, + 0x07, 0x5a, 0xbb, 0x61, 0x37, 0x99, 0xad, 0x2f, 0x4c, 0xd6, 0xef, 0x1a, 0x40, 0x56, 0x3b, 0xba, + 0x0d, 0x55, 0x36, 0x35, 0x7c, 0x1f, 0x9b, 0x9d, 0xc3, 0x5c, 0xc9, 0xf7, 0x43, 0x7f, 0x1c, 0xc6, + 0x84, 0x62, 0xd9, 0xa7, 0xd8, 0x7a, 0x9b, 0x07, 0xa0, 0xbb, 0xd0, 0x54, 0x58, 0xe7, 0xa4, 0x37, + 0x3b, 0xfb, 0x69, 0xfc, 0xbd, 0x09, 0x0d, 0x15, 0xfa, 0x65, 0x06, 0x35, 0x04, 0xdd, 0x84, 0x3a, + 0x8d, 0xdc, 0xe1, 0x59, 0xcc, 0xc7, 0xa0, 0xd9, 0x31, 0x72, 0xc1, 0xcf, 0x98, 0x2b, 0x21, 0x58, + 0xe0, 0xac, 0x2e, 0xe8, 0x29, 0x95, 0xe8, 0x16, 0xd4, 0x39, 0x99, 0xb1, 0xa1, 0x1d, 0x2c, 0xb5, + 0x9b, 0x9d, 0xbd, 0x34, 0xbc, 0x4f, 0xdd, 0x88, 0x72, 0xd0, 0xd7, 0xe1, 0x20, 0xa9, 0x5a, 0x82, + 0xad, 0x36, 0x6c, 0x3c, 0x21, 0x31, 0x65, 0x79, 0x92, 0x8e, 0xd0, 0x16, 0xd4, 0xd8, 0xc4, 0x8a, + 0x4c, 0xba, 0x2d, 0x3e, 0xac, 0xcf, 0xa0, 0xa5, 0x20, 0xe3, 0x71, 0x18, 0xc4, 0x6c, 0x84, 0x6b, + 0xac, 0xfd, 0x64, 0xd1, 0xd5, 0x1c, 0x61, 0xb6, 0xf0, 0x59, 0x57, 0xa1, 0xf5, 0x00, 0x8f, 0x70, + 0xe1, 0xc4, 0xa4, 0x4c, 0xeb, 0x82, 0x44, 0x6b, 0x0b, 0x90, 0x0a, 0x14, 0x6b, 0x58, 0xd7, 0x61, + 0x9b, 0x2d, 0xac, 0x4e, 0xef, 0xa2, 0x24, 0xdf, 0x83, 0x51, 0x84, 0xcb, 0x72, 0x3f, 0x87, 0x95, + 0xdc, 0xd9, 0x10, 0x55, 0x67, 0x4c, 0x2b, 0x41, 0xc7, 0xc1, 0xf3, 0xd0, 0xce, 0xa1, 0xad, 0x63, + 0xd8, 0x66, 0x85, 0xa9, 0x20, 0x0f, 0x07, 0x94, 0xd0, 0x69, 0x59, 0x21, 0xec, 0x20, 0x11, 0xe9, + 0xe7, 0x5b, 0xaa, 0xdb, 0xe9, 0xb7, 0xb5, 0x0b, 0x3b, 0x36, 0xf6, 0xc3, 0x73, 0xac, 0x24, 0x4b, + 0x1b, 0x9e, 0xc2, 0xd6, 0xd3, 0x89, 0x20, 0x81, 0x6f, 0xfb, 0x82, 0x6e, 0x17, 0x2d, 0x82, 0x76, + 0x41, 0xe7, 0x93, 0xe2, 0xc4, 0xc4, 0xe3, 0x13, 0xa9, 0xdb, 0x0d, 0x6e, 0xe8, 0x13, 0x8f, 0x6d, + 0xb2, 0x3f, 0xa1, 0x58, 0x9c, 0xfe, 0x86, 0x2d, 0x3e, 0xac, 0x7b, 0x70, 0x71, 0x66, 0x69, 0xc9, + 0x5c, 0x1b, 0x6a, 0x3c, 0x54, 0x9e, 0x8c, 0xec, 0x30, 0x73, 0x18, 0x27, 0x4b, 0x00, 0xac, 0xd7, + 0x1a, 0x18, 0xdf, 0x8e, 0x3d, 0x97, 0xe6, 0x7b, 0x7b, 0xb7, 0x16, 0xd4, 0xcb, 0x68, 0x69, 0xe6, + 0x32, 0xfa, 0x02, 0x60, 0x8c, 0x23, 0x9f, 0xc4, 0x31, 0x09, 0x03, 0xde, 0x86, 0x7a, 0xe2, 0x94, + 0xc5, 0x4f, 0x52, 0x94, 0xad, 0x44, 0xa4, 0x77, 0x76, 0x2d, 0xbb, 0xb3, 0xad, 0x3f, 0x35, 0x30, + 0x45, 0xf1, 0xfd, 0xc9, 0x20, 0x1e, 0x46, 0x64, 0x4c, 0x49, 0x18, 0xc4, 0xef, 0x5a, 0xfe, 0x1e, + 0x40, 0xba, 0x03, 0xec, 0x26, 0x66, 0xc7, 0x49, 0x4f, 0xb6, 0x20, 0x46, 0x97, 0x40, 0x8f, 0xc5, + 0x32, 0x03, 0x2c, 0xf7, 0x21, 0x33, 0xa0, 0x63, 0x40, 0xca, 0xf8, 0x39, 0xf2, 0x72, 0xa8, 0xf1, + 0x91, 0x35, 0xcb, 0xfa, 0xe4, 0x5b, 0x11, 0xdb, 0xad, 0xf1, 0xac, 0xc9, 0xda, 0x83, 0xdd, 0xd2, + 0xae, 0xe4, 0xc0, 0xfd, 0xad, 0xc1, 0x7a, 0x1f, 0x07, 0xde, 0x03, 0x97, 0xba, 0x8b, 0x5a, 0x45, + 0x50, 0xe5, 0x3b, 0xc1, 0xda, 0x5c, 0xb1, 0xf9, 0xdf, 0xe8, 0x13, 0xa8, 0x9e, 0x91, 0x40, 0xcc, + 0xd7, 0x9a, 0x72, 0x94, 0x58, 0xae, 0x13, 0x77, 0x78, 0x86, 0xe9, 0xd1, 0x63, 0x12, 0x78, 0x36, + 0x47, 0xa1, 0xeb, 0xb0, 0xe1, 0xe1, 0x98, 0x92, 0xc0, 0x65, 0x15, 0x08, 0x5a, 0xaa, 0x8c, 0x96, + 0x6e, 0xc5, 0xd0, 0xec, 0x75, 0xc5, 0xc7, 0x09, 0xba, 0x05, 0xef, 0xa9, 0x70, 0xc9, 0x2b, 0xc1, + 0xec, 0xfd, 0x61, 0x5c, 0x5e, 0x54, 0xbc, 0xc7, 0xa9, 0x13, 0xed, 0x40, 0x8d, 0x86, 0x63, 0x32, + 0x14, 0x5b, 0xdb, 0xbb, 0x60, 0x8b, 0xcf, 0x57, 0x9a, 0xd6, 0x6d, 0x40, 0xdd, 0xe1, 0x1f, 0x16, + 0x82, 0x8d, 0xac, 0x67, 0x49, 0xc4, 0x63, 0xd8, 0x11, 0x3c, 0xb1, 0x03, 0xf0, 0x54, 0x0e, 0xda, + 0x1b, 0x36, 0x3f, 0x9d, 0xcf, 0x4a, 0x7e, 0x3e, 0xad, 0x01, 0xec, 0x67, 0x42, 0xe1, 0x3e, 0x7f, + 0xf6, 0x27, 0x11, 0x2f, 0x35, 0xc9, 0x78, 0x17, 0x56, 0x87, 0xaa, 0x5d, 0x1e, 0x2e, 0x73, 0xe6, + 0xd9, 0x51, 0x23, 0xf3, 0x01, 0xd6, 0xeb, 0x2a, 0xec, 0x67, 0x15, 0x97, 0x2e, 0x52, 0x26, 0x4d, + 0xda, 0xa5, 0xca, 0xa3, 0x77, 0x21, 0xaf, 0x3d, 0x5e, 0x69, 0x1a, 0xba, 0x59, 0x26, 0x3f, 0xb8, + 0xa4, 0xe8, 0x69, 0x45, 0x01, 0xc2, 0x22, 0x8e, 0x4a, 0x34, 0x48, 0x95, 0x07, 0x54, 0x0a, 0x2a, + 0x44, 0xac, 0x90, 0x68, 0x8a, 0xda, 0x5c, 0x4d, 0xd1, 0x5b, 0x4a, 0x54, 0x05, 0x8b, 0xb8, 0x9e, + 0x08, 0x8b, 0xfa, 0x3c, 0x61, 0xd1, 0xab, 0x4a, 0x69, 0xc1, 0xe0, 0x37, 0xe6, 0xaa, 0x8b, 0x5e, + 0xad, 0xa0, 0x2f, 0x92, 0x80, 0x72, 0x89, 0xd1, 0xab, 0x17, 0x44, 0x06, 0x0b, 0xb8, 0x52, 0xa6, + 0x33, 0x7a, 0xcb, 0x39, 0xa5, 0xc1, 0x86, 0x6f, 0x03, 0xd6, 0x9c, 0x1c, 0xef, 0xdd, 0x2d, 0x40, + 0x4e, 0x81, 0xdf, 0xee, 0x26, 0xb4, 0x9c, 0x59, 0x0e, 0xbb, 0x3a, 0x2c, 0x4b, 0x79, 0xca, 0x87, + 0x98, 0xb7, 0xc7, 0xe3, 0x0b, 0xcd, 0x09, 0xeb, 0x6c, 0x07, 0xdd, 0x75, 0x58, 0x75, 0xd4, 0x32, + 0xad, 0x0e, 0x5c, 0x4a, 0x5e, 0xf4, 0xb7, 0x9d, 0x1c, 0x6b, 0x08, 0x7b, 0x73, 0x62, 0xe4, 0x43, + 0xd1, 0x85, 0xb5, 0xdc, 0x88, 0x26, 0x8f, 0xec, 0xa2, 0xa1, 0x9e, 0x89, 0xb0, 0xfe, 0xa9, 0x40, + 0xab, 0x80, 0x2a, 0x1d, 0xe4, 0x77, 0x97, 0xd0, 0x4b, 0xff, 0x41, 0x42, 0x57, 0xcb, 0x25, 0xf4, + 0xb5, 0xb7, 0x98, 0xdc, 0xa2, 0x1a, 0xae, 0xff, 0x7f, 0xd5, 0x70, 0xe7, 0x57, 0x1d, 0x9a, 0xac, + 0x9e, 0x3e, 0x8e, 0xce, 0xc9, 0x10, 0xa3, 0xdb, 0x00, 0xd9, 0x15, 0x86, 0xb2, 0x2d, 0x2c, 0xfc, + 0x00, 0x32, 0xf3, 0xca, 0x0f, 0x75, 0x41, 0x4f, 0xc5, 0x22, 0xda, 0x49, 0x7d, 0xb3, 0x52, 0xd3, + 0x34, 0xcb, 0x5c, 0x72, 0x92, 0x1e, 0x02, 0x64, 0x6a, 0x50, 0x59, 0xbc, 0xa0, 0x25, 0xcd, 0xdd, + 0x52, 0x9f, 0x4c, 0xf3, 0x9d, 0x50, 0xb8, 0xb9, 0x9d, 0x3b, 0xc8, 0x2d, 0x5b, 0xa2, 0x2c, 0xcd, + 0xcb, 0x0b, 0x10, 0x32, 0xf1, 0x13, 0x58, 0x7b, 0x84, 0x55, 0x97, 0x92, 0x76, 0x8e, 0x4e, 0x34, + 0xe7, 0x4a, 0x4d, 0xf4, 0x03, 0xb4, 0x0a, 0x8a, 0xf0, 0x2d, 0x12, 0x5a, 0x19, 0x62, 0x9e, 0x9e, + 0x44, 0x7d, 0x40, 0x4c, 0xd4, 0x9d, 0x4c, 0x06, 0x23, 0x12, 0xbf, 0xc0, 0x1e, 0x17, 0x05, 0x28, + 0xfb, 0x81, 0x50, 0x26, 0x36, 0xcd, 0xfd, 0x79, 0x6e, 0x99, 0xf4, 0x04, 0x5a, 0x05, 0x95, 0x87, + 0x32, 0xd6, 0xe6, 0x29, 0xc0, 0x05, 0x0c, 0xfc, 0x0c, 0x9b, 0x25, 0x22, 0x05, 0x1d, 0xce, 0xe4, + 0x2c, 0x13, 0x66, 0xe6, 0x07, 0x8b, 0x41, 0xb2, 0xe6, 0x2f, 0xa1, 0x91, 0x3c, 0xf9, 0x28, 0xab, + 0x63, 0x46, 0xf9, 0x98, 0x3b, 0x25, 0x1e, 0x99, 0xe0, 0x11, 0xa0, 0xa2, 0x3e, 0x40, 0xd6, 0xcc, + 0xe2, 0x25, 0xe2, 0x61, 0xf6, 0x7c, 0xfc, 0x04, 0xdb, 0x73, 0xb4, 0x01, 0xba, 0x5a, 0x72, 0xca, + 0xca, 0xae, 0x67, 0x73, 0xc1, 0x8d, 0xca, 0xf2, 0xcf, 0x91, 0x05, 0x4a, 0xfe, 0xc5, 0xc2, 0x61, + 0x61, 0xfe, 0xe7, 0x70, 0xb1, 0xf4, 0x19, 0x40, 0x1f, 0x16, 0x0e, 0x74, 0x69, 0xee, 0x2b, 0x6f, + 0x82, 0x09, 0xc2, 0xbb, 0x5f, 0xfd, 0x78, 0x78, 0x4a, 0xe8, 0x8b, 0xc9, 0xe0, 0x68, 0x18, 0xfa, + 0x37, 0x64, 0xcc, 0x0d, 0xfe, 0x9f, 0x98, 0x61, 0x38, 0x4a, 0x0c, 0xbf, 0x55, 0x56, 0x9f, 0x90, + 0x73, 0xfc, 0x98, 0x0d, 0x15, 0x73, 0xfd, 0x55, 0x59, 0x93, 0xdf, 0x77, 0xee, 0x70, 0xc3, 0xa0, + 0xce, 0x43, 0x3e, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0xde, 0x97, 0x0c, 0x1f, 0x1c, 0x12, 0x00, + 0x00, } diff --git a/livekit/livekit_rtc.pb.go b/livekit/livekit_rtc.pb.go index 0bd008bb..d28c907f 100644 --- a/livekit/livekit_rtc.pb.go +++ b/livekit/livekit_rtc.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_rtc.proto package livekit diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index 905ec68c..a8e134b5 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_sip.proto package livekit diff --git a/livekit/livekit_webhook.pb.go b/livekit/livekit_webhook.pb.go index fd12a721..10d6da3d 100644 --- a/livekit/livekit_webhook.pb.go +++ b/livekit/livekit_webhook.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: livekit_webhook.proto package livekit diff --git a/protobufs/livekit_room.proto b/protobufs/livekit_room.proto index ad5f43cb..6e0a0bb2 100644 --- a/protobufs/livekit_room.proto +++ b/protobufs/livekit_room.proto @@ -21,6 +21,7 @@ option ruby_package = "LiveKit::Proto"; import "livekit_models.proto"; import "livekit_egress.proto"; +import "livekit_agent.proto"; // Room service that can be performed on any node // they are Twirp-based HTTP req/responses @@ -59,11 +60,22 @@ service RoomService { // Update room metadata, will cause updates to be broadcasted to everyone in the room, Requires `roomAdmin` rpc UpdateRoomMetadata (UpdateRoomMetadataRequest) returns (Room); + + // Create a room configuration. + rpc CreateRoomConfiguration(CreateRoomConfigurationRequest) returns (RoomConfiguration); + + // Update a room configuration + rpc UpdateRoomConfiguration(UpdateRoomConfigurationRequest) returns (RoomConfiguration); + + // List configurations + rpc ListRoomConfiguration(ListRoomConfigurationRequest) returns (ListRoomConfigurationResponse); } message CreateRoomRequest { // name of the room string name = 1; + // configuration to use for this room parameters. Setting parameters below override the config defaults. + string config_name = 12; // number of seconds to keep the room open if no one joins uint32 empty_timeout = 2; // number of seconds to keep the room open after everyone leaves @@ -77,7 +89,7 @@ message CreateRoomRequest { // egress RoomEgress egress = 6; // agent - repeated RoomAgent agent = 11; + RoomAgent agent = 11; // playout delay of subscriber uint32 min_playout_delay = 7; uint32 max_playout_delay = 8; @@ -85,7 +97,7 @@ message CreateRoomRequest { // so not recommended for rooms with frequent subscription changes bool sync_streams = 9; - // NEXT-ID: 12 + // NEXT-ID: 13 } message RoomEgress { @@ -95,11 +107,10 @@ message RoomEgress { } message RoomAgent { - JobType type = 1; - string namespace = 2; - map metadata = 3; + repeated StartAgentJobRequest agents = 1; } + message ListRoomsRequest { // when set, will only return rooms with name match repeated string names = 1; @@ -198,3 +209,56 @@ message UpdateRoomMetadataRequest { // metadata to update. skipping updates if left empty string metadata = 2; } + +message CreateRoomConfigurationRequest { + RoomConfiguration configuration = 1; +} + +message UpdateRoomConfigurationRequest { + string name = 1; // configuration to update + // number of seconds to keep the room open if no one joins + optional uint32 empty_timeout = 2; + // number of seconds to keep the room open after everyone leaves + optional uint32 departure_timeout = 3; + // limit number of participants that can be in a room + optional uint32 max_participants = 4; + // egress + optional RoomEgress egress = 5; + // agent + optional RoomAgent agent = 6; + // playout delay of subscriber + optional uint32 min_playout_delay = 7; + optional uint32 max_playout_delay = 8; + // improves A/V sync when playout_delay set to a value larger than 200ms. It will disables transceiver re-use + // so not recommended for rooms with frequent subscription changes + optional bool sync_streams = 9; +} + +message ListRoomConfigurationRequest { + string name = 1; // If non empty, return only the configurartion with this name +} + +message ListRoomConfigurationResponse { + repeated RoomConfiguration configurations = 1; +} + +message RoomConfiguration { + string name = 1; // Used as ID, must be unique + // number of seconds to keep the room open if no one joins + uint32 empty_timeout = 2; + // number of seconds to keep the room open after everyone leaves + uint32 departure_timeout = 3; + // limit number of participants that can be in a room + uint32 max_participants = 4; + // egress + RoomEgress egress = 5; + // agent + RoomAgent agent = 6; + // playout delay of subscriber + uint32 min_playout_delay = 7; + uint32 max_playout_delay = 8; + // improves A/V sync when playout_delay set to a value larger than 200ms. It will disables transceiver re-use + // so not recommended for rooms with frequent subscription changes + bool sync_streams = 9; +} + diff --git a/rpc/agent.pb.go b/rpc/agent.pb.go index 9367e256..6bd0eedc 100644 --- a/rpc/agent.pb.go +++ b/rpc/agent.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: rpc/agent.proto package rpc diff --git a/rpc/egress.pb.go b/rpc/egress.pb.go index 7e14c985..d3717a89 100644 --- a/rpc/egress.pb.go +++ b/rpc/egress.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: rpc/egress.proto package rpc diff --git a/rpc/ingress.pb.go b/rpc/ingress.pb.go index 65b66381..e0148e0a 100644 --- a/rpc/ingress.pb.go +++ b/rpc/ingress.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: rpc/ingress.proto package rpc diff --git a/rpc/io.pb.go b/rpc/io.pb.go index 568ef68e..959aa6f7 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: rpc/io.proto package rpc diff --git a/rpc/keepalive.pb.go b/rpc/keepalive.pb.go index 62a08afa..51f79067 100644 --- a/rpc/keepalive.pb.go +++ b/rpc/keepalive.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: rpc/keepalive.proto package rpc diff --git a/rpc/participant.pb.go b/rpc/participant.pb.go index efb56ae1..cf7d699a 100644 --- a/rpc/participant.pb.go +++ b/rpc/participant.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: rpc/participant.proto package rpc diff --git a/rpc/room.pb.go b/rpc/room.pb.go index 6657f781..71332bc4 100644 --- a/rpc/room.pb.go +++ b/rpc/room.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: rpc/room.proto package rpc diff --git a/rpc/signal.pb.go b/rpc/signal.pb.go index b7117098..918e78d3 100644 --- a/rpc/signal.pb.go +++ b/rpc/signal.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: rpc/signal.proto package rpc diff --git a/rpc/sip.pb.go b/rpc/sip.pb.go index e0aecf21..1bf19fbd 100644 --- a/rpc/sip.pb.go +++ b/rpc/sip.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.1 -// protoc v4.23.4 +// protoc-gen-go v1.33.0 +// protoc v5.26.1 // source: rpc/sip.proto package rpc