// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.25.0-devel
// 	protoc        v3.12.2
// source: pkg/proto/noir.proto

package proto

import (
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type Trickle_Target int32

const (
	Trickle_PUBLISHER  Trickle_Target = 0
	Trickle_SUBSCRIBER Trickle_Target = 1
)

// Enum value maps for Trickle_Target.
var (
	Trickle_Target_name = map[int32]string{
		0: "PUBLISHER",
		1: "SUBSCRIBER",
	}
	Trickle_Target_value = map[string]int32{
		"PUBLISHER":  0,
		"SUBSCRIBER": 1,
	}
)

func (x Trickle_Target) Enum() *Trickle_Target {
	p := new(Trickle_Target)
	*p = x
	return p
}

func (x Trickle_Target) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Trickle_Target) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_proto_noir_proto_enumTypes[0].Descriptor()
}

func (Trickle_Target) Type() protoreflect.EnumType {
	return &file_pkg_proto_noir_proto_enumTypes[0]
}

func (x Trickle_Target) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Trickle_Target.Descriptor instead.
func (Trickle_Target) EnumDescriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{21, 0}
}

type JobData_JobStatus int32

const (
	JobData_CREATED JobData_JobStatus = 0
	JobData_RUNNING JobData_JobStatus = 1
	JobData_STOPPED JobData_JobStatus = 2
	JobData_ERROR   JobData_JobStatus = 3
)

// Enum value maps for JobData_JobStatus.
var (
	JobData_JobStatus_name = map[int32]string{
		0: "CREATED",
		1: "RUNNING",
		2: "STOPPED",
		3: "ERROR",
	}
	JobData_JobStatus_value = map[string]int32{
		"CREATED": 0,
		"RUNNING": 1,
		"STOPPED": 2,
		"ERROR":   3,
	}
)

func (x JobData_JobStatus) Enum() *JobData_JobStatus {
	p := new(JobData_JobStatus)
	*p = x
	return p
}

func (x JobData_JobStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (JobData_JobStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_pkg_proto_noir_proto_enumTypes[1].Descriptor()
}

func (JobData_JobStatus) Type() protoreflect.EnumType {
	return &file_pkg_proto_noir_proto_enumTypes[1]
}

func (x JobData_JobStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use JobData_JobStatus.Descriptor instead.
func (JobData_JobStatus) EnumDescriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{28, 0}
}

// GRPC ADMIN API
type AdminClient struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClientID string `protobuf:"bytes,1,opt,name=clientID,proto3" json:"clientID,omitempty"`
}

func (x *AdminClient) Reset() {
	*x = AdminClient{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AdminClient) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AdminClient) ProtoMessage() {}

func (x *AdminClient) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_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 AdminClient.ProtoReflect.Descriptor instead.
func (*AdminClient) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{0}
}

func (x *AdminClient) GetClientID() string {
	if x != nil {
		return x.ClientID
	}
	return ""
}

type Empty struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Empty) Reset() {
	*x = Empty{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Empty) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Empty) ProtoMessage() {}

func (x *Empty) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_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 Empty.ProtoReflect.Descriptor instead.
func (*Empty) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{1}
}

type NoirRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id     string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	At     string `protobuf:"bytes,2,opt,name=at,proto3" json:"at,omitempty"`
	Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"`
	// Types that are assignable to Command:
	//	*NoirRequest_Signal
	//	*NoirRequest_Admin
	Command isNoirRequest_Command `protobuf_oneof:"command"`
	AdminID string                `protobuf:"bytes,6,opt,name=adminID,proto3" json:"adminID,omitempty"`
}

func (x *NoirRequest) Reset() {
	*x = NoirRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NoirRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NoirRequest) ProtoMessage() {}

func (x *NoirRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_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 NoirRequest.ProtoReflect.Descriptor instead.
func (*NoirRequest) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{2}
}

func (x *NoirRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *NoirRequest) GetAt() string {
	if x != nil {
		return x.At
	}
	return ""
}

func (x *NoirRequest) GetAction() string {
	if x != nil {
		return x.Action
	}
	return ""
}

func (m *NoirRequest) GetCommand() isNoirRequest_Command {
	if m != nil {
		return m.Command
	}
	return nil
}

func (x *NoirRequest) GetSignal() *SignalRequest {
	if x, ok := x.GetCommand().(*NoirRequest_Signal); ok {
		return x.Signal
	}
	return nil
}

func (x *NoirRequest) GetAdmin() *AdminRequest {
	if x, ok := x.GetCommand().(*NoirRequest_Admin); ok {
		return x.Admin
	}
	return nil
}

func (x *NoirRequest) GetAdminID() string {
	if x != nil {
		return x.AdminID
	}
	return ""
}

type isNoirRequest_Command interface {
	isNoirRequest_Command()
}

type NoirRequest_Signal struct {
	Signal *SignalRequest `protobuf:"bytes,4,opt,name=signal,proto3,oneof"`
}

type NoirRequest_Admin struct {
	Admin *AdminRequest `protobuf:"bytes,5,opt,name=admin,proto3,oneof"`
}

func (*NoirRequest_Signal) isNoirRequest_Command() {}

func (*NoirRequest_Admin) isNoirRequest_Command() {}

type NoirReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	At string `protobuf:"bytes,2,opt,name=at,proto3" json:"at,omitempty"`
	// Types that are assignable to Command:
	//	*NoirReply_Signal
	//	*NoirReply_Admin
	//	*NoirReply_Error
	Command isNoirReply_Command `protobuf_oneof:"command"`
}

func (x *NoirReply) Reset() {
	*x = NoirReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NoirReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NoirReply) ProtoMessage() {}

func (x *NoirReply) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NoirReply.ProtoReflect.Descriptor instead.
func (*NoirReply) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{3}
}

func (x *NoirReply) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *NoirReply) GetAt() string {
	if x != nil {
		return x.At
	}
	return ""
}

func (m *NoirReply) GetCommand() isNoirReply_Command {
	if m != nil {
		return m.Command
	}
	return nil
}

func (x *NoirReply) GetSignal() *SignalReply {
	if x, ok := x.GetCommand().(*NoirReply_Signal); ok {
		return x.Signal
	}
	return nil
}

func (x *NoirReply) GetAdmin() *AdminReply {
	if x, ok := x.GetCommand().(*NoirReply_Admin); ok {
		return x.Admin
	}
	return nil
}

func (x *NoirReply) GetError() string {
	if x, ok := x.GetCommand().(*NoirReply_Error); ok {
		return x.Error
	}
	return ""
}

type isNoirReply_Command interface {
	isNoirReply_Command()
}

type NoirReply_Signal struct {
	Signal *SignalReply `protobuf:"bytes,3,opt,name=signal,proto3,oneof"`
}

type NoirReply_Admin struct {
	Admin *AdminReply `protobuf:"bytes,4,opt,name=admin,proto3,oneof"`
}

type NoirReply_Error struct {
	Error string `protobuf:"bytes,5,opt,name=error,proto3,oneof"`
}

func (*NoirReply_Signal) isNoirReply_Command() {}

func (*NoirReply_Admin) isNoirReply_Command() {}

func (*NoirReply_Error) isNoirReply_Command() {}

// ****************************************************
//Admin Commands
//***************************************************
type AdminRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Payload:
	//	*AdminRequest_RoomAdmin
	//	*AdminRequest_RoomCount
	//	*AdminRequest_RoomList
	Payload isAdminRequest_Payload `protobuf_oneof:"payload"`
}

func (x *AdminRequest) Reset() {
	*x = AdminRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AdminRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AdminRequest) ProtoMessage() {}

func (x *AdminRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AdminRequest.ProtoReflect.Descriptor instead.
func (*AdminRequest) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{4}
}

func (m *AdminRequest) GetPayload() isAdminRequest_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *AdminRequest) GetRoomAdmin() *RoomAdminRequest {
	if x, ok := x.GetPayload().(*AdminRequest_RoomAdmin); ok {
		return x.RoomAdmin
	}
	return nil
}

func (x *AdminRequest) GetRoomCount() *RoomCountRequest {
	if x, ok := x.GetPayload().(*AdminRequest_RoomCount); ok {
		return x.RoomCount
	}
	return nil
}

func (x *AdminRequest) GetRoomList() *RoomListRequest {
	if x, ok := x.GetPayload().(*AdminRequest_RoomList); ok {
		return x.RoomList
	}
	return nil
}

type isAdminRequest_Payload interface {
	isAdminRequest_Payload()
}

type AdminRequest_RoomAdmin struct {
	RoomAdmin *RoomAdminRequest `protobuf:"bytes,1,opt,name=roomAdmin,proto3,oneof"`
}

type AdminRequest_RoomCount struct {
	RoomCount *RoomCountRequest `protobuf:"bytes,2,opt,name=roomCount,proto3,oneof"`
}

type AdminRequest_RoomList struct {
	RoomList *RoomListRequest `protobuf:"bytes,3,opt,name=roomList,proto3,oneof"`
}

func (*AdminRequest_RoomAdmin) isAdminRequest_Payload() {}

func (*AdminRequest_RoomCount) isAdminRequest_Payload() {}

func (*AdminRequest_RoomList) isAdminRequest_Payload() {}

type AdminReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Payload:
	//	*AdminReply_Error
	//	*AdminReply_RoomAdmin
	//	*AdminReply_RoomCount
	//	*AdminReply_RoomList
	Payload isAdminReply_Payload `protobuf_oneof:"payload"`
}

func (x *AdminReply) Reset() {
	*x = AdminReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AdminReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AdminReply) ProtoMessage() {}

func (x *AdminReply) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AdminReply.ProtoReflect.Descriptor instead.
func (*AdminReply) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{5}
}

func (m *AdminReply) GetPayload() isAdminReply_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *AdminReply) GetError() string {
	if x, ok := x.GetPayload().(*AdminReply_Error); ok {
		return x.Error
	}
	return ""
}

func (x *AdminReply) GetRoomAdmin() *RoomAdminReply {
	if x, ok := x.GetPayload().(*AdminReply_RoomAdmin); ok {
		return x.RoomAdmin
	}
	return nil
}

func (x *AdminReply) GetRoomCount() *RoomCountReply {
	if x, ok := x.GetPayload().(*AdminReply_RoomCount); ok {
		return x.RoomCount
	}
	return nil
}

func (x *AdminReply) GetRoomList() *RoomListReply {
	if x, ok := x.GetPayload().(*AdminReply_RoomList); ok {
		return x.RoomList
	}
	return nil
}

type isAdminReply_Payload interface {
	isAdminReply_Payload()
}

type AdminReply_Error struct {
	Error string `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
}

type AdminReply_RoomAdmin struct {
	RoomAdmin *RoomAdminReply `protobuf:"bytes,2,opt,name=roomAdmin,proto3,oneof"`
}

type AdminReply_RoomCount struct {
	RoomCount *RoomCountReply `protobuf:"bytes,3,opt,name=roomCount,proto3,oneof"`
}

type AdminReply_RoomList struct {
	RoomList *RoomListReply `protobuf:"bytes,4,opt,name=roomList,proto3,oneof"`
}

func (*AdminReply_Error) isAdminReply_Payload() {}

func (*AdminReply_RoomAdmin) isAdminReply_Payload() {}

func (*AdminReply_RoomCount) isAdminReply_Payload() {}

func (*AdminReply_RoomList) isAdminReply_Payload() {}

type RoomCountRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *RoomCountRequest) Reset() {
	*x = RoomCountRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomCountRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomCountRequest) ProtoMessage() {}

func (x *RoomCountRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomCountRequest.ProtoReflect.Descriptor instead.
func (*RoomCountRequest) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{6}
}

type RoomCountReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Result int64 `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"`
}

func (x *RoomCountReply) Reset() {
	*x = RoomCountReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomCountReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomCountReply) ProtoMessage() {}

func (x *RoomCountReply) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomCountReply.ProtoReflect.Descriptor instead.
func (*RoomCountReply) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{7}
}

func (x *RoomCountReply) GetResult() int64 {
	if x != nil {
		return x.Result
	}
	return 0
}

type RoomListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *RoomListRequest) Reset() {
	*x = RoomListRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomListRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomListRequest) ProtoMessage() {}

func (x *RoomListRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomListRequest.ProtoReflect.Descriptor instead.
func (*RoomListRequest) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{8}
}

type RoomListEntry struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id    string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Score int64  `protobuf:"varint,2,opt,name=score,proto3" json:"score,omitempty"`
}

func (x *RoomListEntry) Reset() {
	*x = RoomListEntry{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomListEntry) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomListEntry) ProtoMessage() {}

func (x *RoomListEntry) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomListEntry.ProtoReflect.Descriptor instead.
func (*RoomListEntry) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{9}
}

func (x *RoomListEntry) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *RoomListEntry) GetScore() int64 {
	if x != nil {
		return x.Score
	}
	return 0
}

type RoomListReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Count  int64            `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
	Result []*RoomListEntry `protobuf:"bytes,2,rep,name=result,proto3" json:"result,omitempty"`
}

func (x *RoomListReply) Reset() {
	*x = RoomListReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomListReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomListReply) ProtoMessage() {}

func (x *RoomListReply) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomListReply.ProtoReflect.Descriptor instead.
func (*RoomListReply) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{10}
}

func (x *RoomListReply) GetCount() int64 {
	if x != nil {
		return x.Count
	}
	return 0
}

func (x *RoomListReply) GetResult() []*RoomListEntry {
	if x != nil {
		return x.Result
	}
	return nil
}

type RoomAdminRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	// Types that are assignable to Method:
	//	*RoomAdminRequest_CreateRoom
	//	*RoomAdminRequest_RoomJob
	Method isRoomAdminRequest_Method `protobuf_oneof:"method"`
}

func (x *RoomAdminRequest) Reset() {
	*x = RoomAdminRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomAdminRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomAdminRequest) ProtoMessage() {}

func (x *RoomAdminRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomAdminRequest.ProtoReflect.Descriptor instead.
func (*RoomAdminRequest) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{11}
}

func (x *RoomAdminRequest) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (m *RoomAdminRequest) GetMethod() isRoomAdminRequest_Method {
	if m != nil {
		return m.Method
	}
	return nil
}

func (x *RoomAdminRequest) GetCreateRoom() *CreateRoomRequest {
	if x, ok := x.GetMethod().(*RoomAdminRequest_CreateRoom); ok {
		return x.CreateRoom
	}
	return nil
}

func (x *RoomAdminRequest) GetRoomJob() *RoomJobRequest {
	if x, ok := x.GetMethod().(*RoomAdminRequest_RoomJob); ok {
		return x.RoomJob
	}
	return nil
}

type isRoomAdminRequest_Method interface {
	isRoomAdminRequest_Method()
}

type RoomAdminRequest_CreateRoom struct {
	CreateRoom *CreateRoomRequest `protobuf:"bytes,2,opt,name=createRoom,proto3,oneof"`
}

type RoomAdminRequest_RoomJob struct {
	RoomJob *RoomJobRequest `protobuf:"bytes,3,opt,name=roomJob,proto3,oneof"`
}

func (*RoomAdminRequest_CreateRoom) isRoomAdminRequest_Method() {}

func (*RoomAdminRequest_RoomJob) isRoomAdminRequest_Method() {}

type RoomAdminReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID string `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	// Types that are assignable to Payload:
	//	*RoomAdminReply_Error
	//	*RoomAdminReply_CreateRoom
	//	*RoomAdminReply_RoomJob
	Payload isRoomAdminReply_Payload `protobuf_oneof:"payload"`
}

func (x *RoomAdminReply) Reset() {
	*x = RoomAdminReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomAdminReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomAdminReply) ProtoMessage() {}

func (x *RoomAdminReply) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomAdminReply.ProtoReflect.Descriptor instead.
func (*RoomAdminReply) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{12}
}

func (x *RoomAdminReply) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (m *RoomAdminReply) GetPayload() isRoomAdminReply_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *RoomAdminReply) GetError() string {
	if x, ok := x.GetPayload().(*RoomAdminReply_Error); ok {
		return x.Error
	}
	return ""
}

func (x *RoomAdminReply) GetCreateRoom() *CreateRoomReply {
	if x, ok := x.GetPayload().(*RoomAdminReply_CreateRoom); ok {
		return x.CreateRoom
	}
	return nil
}

func (x *RoomAdminReply) GetRoomJob() *RoomJobReply {
	if x, ok := x.GetPayload().(*RoomAdminReply_RoomJob); ok {
		return x.RoomJob
	}
	return nil
}

type isRoomAdminReply_Payload interface {
	isRoomAdminReply_Payload()
}

type RoomAdminReply_Error struct {
	Error string `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

type RoomAdminReply_CreateRoom struct {
	CreateRoom *CreateRoomReply `protobuf:"bytes,3,opt,name=createRoom,proto3,oneof"`
}

type RoomAdminReply_RoomJob struct {
	RoomJob *RoomJobReply `protobuf:"bytes,4,opt,name=roomJob,proto3,oneof"`
}

func (*RoomAdminReply_Error) isRoomAdminReply_Payload() {}

func (*RoomAdminReply_CreateRoom) isRoomAdminReply_Payload() {}

func (*RoomAdminReply_RoomJob) isRoomAdminReply_Payload() {}

type CreateRoomRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Options *RoomOptions `protobuf:"bytes,1,opt,name=options,proto3" json:"options,omitempty"`
}

func (x *CreateRoomRequest) Reset() {
	*x = CreateRoomRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateRoomRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateRoomRequest) ProtoMessage() {}

func (x *CreateRoomRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateRoomRequest.ProtoReflect.Descriptor instead.
func (*CreateRoomRequest) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{13}
}

func (x *CreateRoomRequest) GetOptions() *RoomOptions {
	if x != nil {
		return x.Options
	}
	return nil
}

type CreateRoomReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Options *RoomOptions `protobuf:"bytes,2,opt,name=options,proto3" json:"options,omitempty"`
}

func (x *CreateRoomReply) Reset() {
	*x = CreateRoomReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateRoomReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateRoomReply) ProtoMessage() {}

func (x *CreateRoomReply) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateRoomReply.ProtoReflect.Descriptor instead.
func (*CreateRoomReply) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{14}
}

func (x *CreateRoomReply) GetOptions() *RoomOptions {
	if x != nil {
		return x.Options
	}
	return nil
}

type RoomJobRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Handler string `protobuf:"bytes,1,opt,name=handler,proto3" json:"handler,omitempty"`
	Pid     string `protobuf:"bytes,2,opt,name=pid,proto3" json:"pid,omitempty"` // peer id will be random if not specified
	Options []byte `protobuf:"bytes,3,opt,name=options,proto3" json:"options,omitempty"`
}

func (x *RoomJobRequest) Reset() {
	*x = RoomJobRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomJobRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomJobRequest) ProtoMessage() {}

func (x *RoomJobRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomJobRequest.ProtoReflect.Descriptor instead.
func (*RoomJobRequest) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{15}
}

func (x *RoomJobRequest) GetHandler() string {
	if x != nil {
		return x.Handler
	}
	return ""
}

func (x *RoomJobRequest) GetPid() string {
	if x != nil {
		return x.Pid
	}
	return ""
}

func (x *RoomJobRequest) GetOptions() []byte {
	if x != nil {
		return x.Options
	}
	return nil
}

type RoomJobReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Handler string `protobuf:"bytes,1,opt,name=handler,proto3" json:"handler,omitempty"`
	Pid     string `protobuf:"bytes,2,opt,name=pid,proto3" json:"pid,omitempty"` // peer id will be random if not specified
	Status  bool   `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"`
	Options []byte `protobuf:"bytes,4,opt,name=options,proto3" json:"options,omitempty"`
}

func (x *RoomJobReply) Reset() {
	*x = RoomJobReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomJobReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomJobReply) ProtoMessage() {}

func (x *RoomJobReply) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomJobReply.ProtoReflect.Descriptor instead.
func (*RoomJobReply) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{16}
}

func (x *RoomJobReply) GetHandler() string {
	if x != nil {
		return x.Handler
	}
	return ""
}

func (x *RoomJobReply) GetPid() string {
	if x != nil {
		return x.Pid
	}
	return ""
}

func (x *RoomJobReply) GetStatus() bool {
	if x != nil {
		return x.Status
	}
	return false
}

func (x *RoomJobReply) GetOptions() []byte {
	if x != nil {
		return x.Options
	}
	return nil
}

// ****************************************************
//SIGNAL COMMANDS - ION-SFU COMPATIBLE
//1 SIGNAL = 1 CLIENT CONNECTION
//***************************************************
type SignalRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // SignalRequest.id should be called pid but we are ion-sfu compatible
	// Types that are assignable to Payload:
	//	*SignalRequest_Join
	//	*SignalRequest_Description
	//	*SignalRequest_Trickle
	//	*SignalRequest_Kill
	Payload   isSignalRequest_Payload `protobuf_oneof:"payload"`
	RequestId string                  `protobuf:"bytes,6,opt,name=requestId,proto3" json:"requestId,omitempty"` // optional, for requests with replies
}

func (x *SignalRequest) Reset() {
	*x = SignalRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SignalRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalRequest) ProtoMessage() {}

func (x *SignalRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalRequest.ProtoReflect.Descriptor instead.
func (*SignalRequest) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{17}
}

func (x *SignalRequest) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (m *SignalRequest) GetPayload() isSignalRequest_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *SignalRequest) GetJoin() *JoinRequest {
	if x, ok := x.GetPayload().(*SignalRequest_Join); ok {
		return x.Join
	}
	return nil
}

func (x *SignalRequest) GetDescription() []byte {
	if x, ok := x.GetPayload().(*SignalRequest_Description); ok {
		return x.Description
	}
	return nil
}

func (x *SignalRequest) GetTrickle() *Trickle {
	if x, ok := x.GetPayload().(*SignalRequest_Trickle); ok {
		return x.Trickle
	}
	return nil
}

func (x *SignalRequest) GetKill() bool {
	if x, ok := x.GetPayload().(*SignalRequest_Kill); ok {
		return x.Kill
	}
	return false
}

func (x *SignalRequest) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

type isSignalRequest_Payload interface {
	isSignalRequest_Payload()
}

type SignalRequest_Join struct {
	Join *JoinRequest `protobuf:"bytes,2,opt,name=join,proto3,oneof"`
}

type SignalRequest_Description struct {
	Description []byte `protobuf:"bytes,3,opt,name=description,proto3,oneof"`
}

type SignalRequest_Trickle struct {
	Trickle *Trickle `protobuf:"bytes,4,opt,name=trickle,proto3,oneof"`
}

type SignalRequest_Kill struct {
	Kill bool `protobuf:"varint,5,opt,name=kill,proto3,oneof"`
}

func (*SignalRequest_Join) isSignalRequest_Payload() {}

func (*SignalRequest_Description) isSignalRequest_Payload() {}

func (*SignalRequest_Trickle) isSignalRequest_Payload() {}

func (*SignalRequest_Kill) isSignalRequest_Payload() {}

type SignalReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Types that are assignable to Payload:
	//	*SignalReply_Join
	//	*SignalReply_Description
	//	*SignalReply_Trickle
	//	*SignalReply_IceConnectionState
	//	*SignalReply_Error
	//	*SignalReply_Kill
	Payload   isSignalReply_Payload `protobuf_oneof:"payload"`
	RequestId string                `protobuf:"bytes,8,opt,name=requestId,proto3" json:"requestId,omitempty"` // optional, for requests with replies
}

func (x *SignalReply) Reset() {
	*x = SignalReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SignalReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalReply) ProtoMessage() {}

func (x *SignalReply) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalReply.ProtoReflect.Descriptor instead.
func (*SignalReply) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{18}
}

func (x *SignalReply) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (m *SignalReply) GetPayload() isSignalReply_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *SignalReply) GetJoin() *JoinReply {
	if x, ok := x.GetPayload().(*SignalReply_Join); ok {
		return x.Join
	}
	return nil
}

func (x *SignalReply) GetDescription() []byte {
	if x, ok := x.GetPayload().(*SignalReply_Description); ok {
		return x.Description
	}
	return nil
}

func (x *SignalReply) GetTrickle() *Trickle {
	if x, ok := x.GetPayload().(*SignalReply_Trickle); ok {
		return x.Trickle
	}
	return nil
}

func (x *SignalReply) GetIceConnectionState() string {
	if x, ok := x.GetPayload().(*SignalReply_IceConnectionState); ok {
		return x.IceConnectionState
	}
	return ""
}

func (x *SignalReply) GetError() string {
	if x, ok := x.GetPayload().(*SignalReply_Error); ok {
		return x.Error
	}
	return ""
}

func (x *SignalReply) GetKill() bool {
	if x, ok := x.GetPayload().(*SignalReply_Kill); ok {
		return x.Kill
	}
	return false
}

func (x *SignalReply) GetRequestId() string {
	if x != nil {
		return x.RequestId
	}
	return ""
}

type isSignalReply_Payload interface {
	isSignalReply_Payload()
}

type SignalReply_Join struct {
	Join *JoinReply `protobuf:"bytes,2,opt,name=join,proto3,oneof"`
}

type SignalReply_Description struct {
	Description []byte `protobuf:"bytes,3,opt,name=description,proto3,oneof"`
}

type SignalReply_Trickle struct {
	Trickle *Trickle `protobuf:"bytes,4,opt,name=trickle,proto3,oneof"`
}

type SignalReply_IceConnectionState struct {
	IceConnectionState string `protobuf:"bytes,5,opt,name=iceConnectionState,proto3,oneof"`
}

type SignalReply_Error struct {
	Error string `protobuf:"bytes,6,opt,name=error,proto3,oneof"`
}

type SignalReply_Kill struct {
	Kill bool `protobuf:"varint,7,opt,name=kill,proto3,oneof"`
}

func (*SignalReply_Join) isSignalReply_Payload() {}

func (*SignalReply_Description) isSignalReply_Payload() {}

func (*SignalReply_Trickle) isSignalReply_Payload() {}

func (*SignalReply_IceConnectionState) isSignalReply_Payload() {}

func (*SignalReply_Error) isSignalReply_Payload() {}

func (*SignalReply_Kill) isSignalReply_Payload() {}

type JoinRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Sid         string `protobuf:"bytes,1,opt,name=sid,proto3" json:"sid,omitempty"`
	Description []byte `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
}

func (x *JoinRequest) Reset() {
	*x = JoinRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *JoinRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*JoinRequest) ProtoMessage() {}

func (x *JoinRequest) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_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 JoinRequest.ProtoReflect.Descriptor instead.
func (*JoinRequest) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{19}
}

func (x *JoinRequest) GetSid() string {
	if x != nil {
		return x.Sid
	}
	return ""
}

func (x *JoinRequest) GetDescription() []byte {
	if x != nil {
		return x.Description
	}
	return nil
}

type JoinReply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Description []byte `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
}

func (x *JoinReply) Reset() {
	*x = JoinReply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *JoinReply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*JoinReply) ProtoMessage() {}

func (x *JoinReply) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_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 JoinReply.ProtoReflect.Descriptor instead.
func (*JoinReply) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{20}
}

func (x *JoinReply) GetDescription() []byte {
	if x != nil {
		return x.Description
	}
	return nil
}

type Trickle struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Target Trickle_Target `protobuf:"varint,1,opt,name=target,proto3,enum=noir.Trickle_Target" json:"target,omitempty"`
	Init   string         `protobuf:"bytes,2,opt,name=init,proto3" json:"init,omitempty"`
}

func (x *Trickle) Reset() {
	*x = Trickle{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Trickle) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Trickle) ProtoMessage() {}

func (x *Trickle) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_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 Trickle.ProtoReflect.Descriptor instead.
func (*Trickle) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{21}
}

func (x *Trickle) GetTarget() Trickle_Target {
	if x != nil {
		return x.Target
	}
	return Trickle_PUBLISHER
}

func (x *Trickle) GetInit() string {
	if x != nil {
		return x.Init
	}
	return ""
}

type NoirObject struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Data:
	//	*NoirObject_Node
	//	*NoirObject_Room
	//	*NoirObject_User
	Data isNoirObject_Data `protobuf_oneof:"data"`
}

func (x *NoirObject) Reset() {
	*x = NoirObject{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NoirObject) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NoirObject) ProtoMessage() {}

func (x *NoirObject) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_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 NoirObject.ProtoReflect.Descriptor instead.
func (*NoirObject) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{22}
}

func (m *NoirObject) GetData() isNoirObject_Data {
	if m != nil {
		return m.Data
	}
	return nil
}

func (x *NoirObject) GetNode() *NodeData {
	if x, ok := x.GetData().(*NoirObject_Node); ok {
		return x.Node
	}
	return nil
}

func (x *NoirObject) GetRoom() *RoomData {
	if x, ok := x.GetData().(*NoirObject_Room); ok {
		return x.Room
	}
	return nil
}

func (x *NoirObject) GetUser() *UserData {
	if x, ok := x.GetData().(*NoirObject_User); ok {
		return x.User
	}
	return nil
}

type isNoirObject_Data interface {
	isNoirObject_Data()
}

type NoirObject_Node struct {
	Node *NodeData `protobuf:"bytes,1,opt,name=node,proto3,oneof"`
}

type NoirObject_Room struct {
	Room *RoomData `protobuf:"bytes,2,opt,name=room,proto3,oneof"`
}

type NoirObject_User struct {
	User *UserData `protobuf:"bytes,3,opt,name=user,proto3,oneof"`
}

func (*NoirObject_Node) isNoirObject_Data() {}

func (*NoirObject_Room) isNoirObject_Data() {}

func (*NoirObject_User) isNoirObject_Data() {}

type NodeData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         string               `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	LastUpdate *timestamp.Timestamp `protobuf:"bytes,2,opt,name=lastUpdate,proto3" json:"lastUpdate,omitempty"`
	Services   []string             `protobuf:"bytes,3,rep,name=services,proto3" json:"services,omitempty"`
}

func (x *NodeData) Reset() {
	*x = NodeData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *NodeData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NodeData) ProtoMessage() {}

func (x *NodeData) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_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 NodeData.ProtoReflect.Descriptor instead.
func (*NodeData) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{23}
}

func (x *NodeData) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *NodeData) GetLastUpdate() *timestamp.Timestamp {
	if x != nil {
		return x.LastUpdate
	}
	return nil
}

func (x *NodeData) GetServices() []string {
	if x != nil {
		return x.Services
	}
	return nil
}

type RoomData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         string               `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Created    *timestamp.Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
	LastUpdate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=lastUpdate,proto3" json:"lastUpdate,omitempty"`
	NodeID     string               `protobuf:"bytes,4,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
	Options    *RoomOptions         `protobuf:"bytes,5,opt,name=options,proto3" json:"options,omitempty"`
	Publisher  string               `protobuf:"bytes,6,opt,name=publisher,proto3" json:"publisher,omitempty"`
}

func (x *RoomData) Reset() {
	*x = RoomData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomData) ProtoMessage() {}

func (x *RoomData) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[24]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomData.ProtoReflect.Descriptor instead.
func (*RoomData) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{24}
}

func (x *RoomData) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *RoomData) GetCreated() *timestamp.Timestamp {
	if x != nil {
		return x.Created
	}
	return nil
}

func (x *RoomData) GetLastUpdate() *timestamp.Timestamp {
	if x != nil {
		return x.LastUpdate
	}
	return nil
}

func (x *RoomData) GetNodeID() string {
	if x != nil {
		return x.NodeID
	}
	return ""
}

func (x *RoomData) GetOptions() *RoomOptions {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *RoomData) GetPublisher() string {
	if x != nil {
		return x.Publisher
	}
	return ""
}

type RoomOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Debug           int32  `protobuf:"varint,1,opt,name=debug,proto3" json:"debug,omitempty"`
	Title           string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	MaxAgeSeconds   int32  `protobuf:"varint,3,opt,name=maxAgeSeconds,proto3" json:"maxAgeSeconds,omitempty"`
	KeyExpiryFactor int32  `protobuf:"varint,4,opt,name=keyExpiryFactor,proto3" json:"keyExpiryFactor,omitempty"`
	JoinPassword    string `protobuf:"bytes,5,opt,name=joinPassword,proto3" json:"joinPassword,omitempty"`
	PublishPassword string `protobuf:"bytes,6,opt,name=publishPassword,proto3" json:"publishPassword,omitempty"`
	MaxPeers        int32  `protobuf:"varint,7,opt,name=maxPeers,proto3" json:"maxPeers,omitempty"`
	IsChannel       bool   `protobuf:"varint,8,opt,name=isChannel,proto3" json:"isChannel,omitempty"`
}

func (x *RoomOptions) Reset() {
	*x = RoomOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RoomOptions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RoomOptions) ProtoMessage() {}

func (x *RoomOptions) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[25]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RoomOptions.ProtoReflect.Descriptor instead.
func (*RoomOptions) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{25}
}

func (x *RoomOptions) GetDebug() int32 {
	if x != nil {
		return x.Debug
	}
	return 0
}

func (x *RoomOptions) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *RoomOptions) GetMaxAgeSeconds() int32 {
	if x != nil {
		return x.MaxAgeSeconds
	}
	return 0
}

func (x *RoomOptions) GetKeyExpiryFactor() int32 {
	if x != nil {
		return x.KeyExpiryFactor
	}
	return 0
}

func (x *RoomOptions) GetJoinPassword() string {
	if x != nil {
		return x.JoinPassword
	}
	return ""
}

func (x *RoomOptions) GetPublishPassword() string {
	if x != nil {
		return x.PublishPassword
	}
	return ""
}

func (x *RoomOptions) GetMaxPeers() int32 {
	if x != nil {
		return x.MaxPeers
	}
	return 0
}

func (x *RoomOptions) GetIsChannel() bool {
	if x != nil {
		return x.IsChannel
	}
	return false
}

type UserData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         string               `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Created    *timestamp.Timestamp `protobuf:"bytes,2,opt,name=created,proto3" json:"created,omitempty"`
	LastUpdate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=lastUpdate,proto3" json:"lastUpdate,omitempty"`
	RoomID     string               `protobuf:"bytes,5,opt,name=roomID,proto3" json:"roomID,omitempty"`
	Options    *UserOptions         `protobuf:"bytes,6,opt,name=options,proto3" json:"options,omitempty"`
	Publishing bool                 `protobuf:"varint,7,opt,name=publishing,proto3" json:"publishing,omitempty"`
}

func (x *UserData) Reset() {
	*x = UserData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserData) ProtoMessage() {}

func (x *UserData) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[26]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UserData.ProtoReflect.Descriptor instead.
func (*UserData) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{26}
}

func (x *UserData) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *UserData) GetCreated() *timestamp.Timestamp {
	if x != nil {
		return x.Created
	}
	return nil
}

func (x *UserData) GetLastUpdate() *timestamp.Timestamp {
	if x != nil {
		return x.LastUpdate
	}
	return nil
}

func (x *UserData) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *UserData) GetOptions() *UserOptions {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *UserData) GetPublishing() bool {
	if x != nil {
		return x.Publishing
	}
	return false
}

type UserOptions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Debug           int32  `protobuf:"varint,1,opt,name=debug,proto3" json:"debug,omitempty"`
	Title           string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	MaxAgeSeconds   int32  `protobuf:"varint,3,opt,name=maxAgeSeconds,proto3" json:"maxAgeSeconds,omitempty"`
	KeyExpiryFactor int32  `protobuf:"varint,4,opt,name=keyExpiryFactor,proto3" json:"keyExpiryFactor,omitempty"`
}

func (x *UserOptions) Reset() {
	*x = UserOptions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserOptions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserOptions) ProtoMessage() {}

func (x *UserOptions) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[27]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UserOptions.ProtoReflect.Descriptor instead.
func (*UserOptions) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{27}
}

func (x *UserOptions) GetDebug() int32 {
	if x != nil {
		return x.Debug
	}
	return 0
}

func (x *UserOptions) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *UserOptions) GetMaxAgeSeconds() int32 {
	if x != nil {
		return x.MaxAgeSeconds
	}
	return 0
}

func (x *UserOptions) GetKeyExpiryFactor() int32 {
	if x != nil {
		return x.KeyExpiryFactor
	}
	return 0
}

type JobData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id         string               `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Handler    string               `protobuf:"bytes,2,opt,name=handler,proto3" json:"handler,omitempty"`
	Status     JobData_JobStatus    `protobuf:"varint,3,opt,name=status,proto3,enum=noir.JobData_JobStatus" json:"status,omitempty"`
	Created    *timestamp.Timestamp `protobuf:"bytes,4,opt,name=created,proto3" json:"created,omitempty"`
	LastUpdate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=lastUpdate,proto3" json:"lastUpdate,omitempty"`
	NodeID     string               `protobuf:"bytes,6,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
}

func (x *JobData) Reset() {
	*x = JobData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *JobData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*JobData) ProtoMessage() {}

func (x *JobData) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[28]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use JobData.ProtoReflect.Descriptor instead.
func (*JobData) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{28}
}

func (x *JobData) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *JobData) GetHandler() string {
	if x != nil {
		return x.Handler
	}
	return ""
}

func (x *JobData) GetStatus() JobData_JobStatus {
	if x != nil {
		return x.Status
	}
	return JobData_CREATED
}

func (x *JobData) GetCreated() *timestamp.Timestamp {
	if x != nil {
		return x.Created
	}
	return nil
}

func (x *JobData) GetLastUpdate() *timestamp.Timestamp {
	if x != nil {
		return x.LastUpdate
	}
	return nil
}

func (x *JobData) GetNodeID() string {
	if x != nil {
		return x.NodeID
	}
	return ""
}

type PeerJobData struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RoomID          string   `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	UserID          string   `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"`
	PublishTracks   []string `protobuf:"bytes,3,rep,name=publishTracks,proto3" json:"publishTracks,omitempty"`
	SubscribeTracks []string `protobuf:"bytes,4,rep,name=subscribeTracks,proto3" json:"subscribeTracks,omitempty"`
}

func (x *PeerJobData) Reset() {
	*x = PeerJobData{}
	if protoimpl.UnsafeEnabled {
		mi := &file_pkg_proto_noir_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PeerJobData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PeerJobData) ProtoMessage() {}

func (x *PeerJobData) ProtoReflect() protoreflect.Message {
	mi := &file_pkg_proto_noir_proto_msgTypes[29]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PeerJobData.ProtoReflect.Descriptor instead.
func (*PeerJobData) Descriptor() ([]byte, []int) {
	return file_pkg_proto_noir_proto_rawDescGZIP(), []int{29}
}

func (x *PeerJobData) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *PeerJobData) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *PeerJobData) GetPublishTracks() []string {
	if x != nil {
		return x.PublishTracks
	}
	return nil
}

func (x *PeerJobData) GetSubscribeTracks() []string {
	if x != nil {
		return x.SubscribeTracks
	}
	return nil
}

var File_pkg_proto_noir_proto protoreflect.FileDescriptor

var file_pkg_proto_noir_proto_rawDesc = []byte{
	0x0a, 0x14, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x6e, 0x6f, 0x69, 0x72,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x6e, 0x6f, 0x69, 0x72, 0x1a, 0x1f, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x29, 0x0a,
	0x0b, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x07, 0x0a, 0x05, 0x45, 0x6d, 0x70, 0x74,
	0x79, 0x22, 0xc5, 0x01, 0x0a, 0x0b, 0x4e, 0x6f, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x61,
	0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6e, 0x6f, 0x69, 0x72,
	0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00,
	0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x2a, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69,
	0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x41,
	0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x05, 0x61,
	0x64, 0x6d, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x44, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x44, 0x42, 0x09,
	0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x09, 0x4e, 0x6f,
	0x69, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x61, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x06, 0x73, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e,
	0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x16,
	0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e,
	0x64, 0x22, 0xbe, 0x01, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f,
	0x6d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52,
	0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x72, 0x6f,
	0x6f, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
	0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x33, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f, 0x6d,
	0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x72,
	0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f,
	0x61, 0x64, 0x22, 0xce, 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c,
	0x79, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x09, 0x72, 0x6f, 0x6f,
	0x6d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6e,
	0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70,
	0x6c, 0x79, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12,
	0x34, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x09, 0x72, 0x6f, 0x6f, 0x6d,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73,
	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52,
	0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x08,
	0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c,
	0x6f, 0x61, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x28, 0x0a, 0x0e, 0x52, 0x6f, 0x6f, 0x6d, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x22, 0x35, 0x0a, 0x0d, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x52, 0x0a, 0x0d, 0x52,
	0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x14, 0x0a, 0x05,
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75,
	0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x4c, 0x69,
	0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
	0xa1, 0x01, 0x0a, 0x10, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x39, 0x0a, 0x0a,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x17, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f,
	0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x4a,
	0x6f, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e,
	0x52, 0x6f, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00,
	0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x42, 0x08, 0x0a, 0x06, 0x6d, 0x65, 0x74,
	0x68, 0x6f, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x0e, 0x52, 0x6f, 0x6f, 0x6d, 0x41, 0x64, 0x6d, 0x69,
	0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x16,
	0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x37, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6e, 0x6f, 0x69,
	0x72, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c,
	0x79, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12,
	0x2e, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x42,
	0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x40, 0x0a, 0x11, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x2b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3e, 0x0a, 0x0f,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12,
	0x2b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x56, 0x0a, 0x0e,
	0x52, 0x6f, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18,
	0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x22, 0x6c, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x52,
	0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x10,
	0x0a, 0x03, 0x70, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x69, 0x64,
	0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x22, 0xd6, 0x01, 0x0a, 0x0d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x6f, 0x69, 0x6e, 0x12, 0x22, 0x0a,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x29, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c,
	0x65, 0x48, 0x00, 0x52, 0x07, 0x74, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x04,
	0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x6b, 0x69,
	0x6c, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64,
	0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x9c, 0x02, 0x0a, 0x0b,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x6a,
	0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6e, 0x6f, 0x69, 0x72,
	0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x48, 0x00, 0x52, 0x04, 0x6a, 0x6f,
	0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x63, 0x6b, 0x6c,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x54,
	0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x48, 0x00, 0x52, 0x07, 0x74, 0x72, 0x69, 0x63, 0x6b, 0x6c,
	0x65, 0x12, 0x30, 0x0a, 0x12, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
	0x12, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x04, 0x6b,
	0x69, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x04, 0x6b, 0x69, 0x6c,
	0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x42,
	0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x41, 0x0a, 0x0b, 0x4a, 0x6f,
	0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64,
	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
	0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2d, 0x0a,
	0x09, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x74, 0x0a, 0x07,
	0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
	0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x54,
	0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74,
	0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x22, 0x27, 0x0a, 0x06, 0x54, 0x61, 0x72,
	0x67, 0x65, 0x74, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x52,
	0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x52,
	0x10, 0x01, 0x22, 0x86, 0x01, 0x0a, 0x0a, 0x4e, 0x6f, 0x69, 0x72, 0x4f, 0x62, 0x6a, 0x65, 0x63,
	0x74, 0x12, 0x24, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x0e, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48,
	0x00, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52, 0x6f, 0x6f,
	0x6d, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x24, 0x0a,
	0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6e, 0x6f,
	0x69, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x04, 0x75,
	0x73, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x72, 0x0a, 0x08, 0x4e,
	0x6f, 0x64, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18,
	0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x22,
	0xef, 0x01, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x07,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x52,
	0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65,
	0x72, 0x22, 0x91, 0x02, 0x0a, 0x0b, 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x24, 0x0a,
	0x0d, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x53, 0x65, 0x63, 0x6f,
	0x6e, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79,
	0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6b, 0x65,
	0x79, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x22, 0x0a,
	0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72,
	0x64, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x50, 0x61, 0x73, 0x73,
	0x77, 0x6f, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x75, 0x62, 0x6c,
	0x69, 0x73, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
	0x61, 0x78, 0x50, 0x65, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d,
	0x61, 0x78, 0x50, 0x65, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x43, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x43, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0xf1, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61,
	0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x69, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
	0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x2b, 0x0a, 0x07,
	0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x75, 0x62,
	0x6c, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x70,
	0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x22, 0x89, 0x01, 0x0a, 0x0b, 0x55, 0x73,
	0x65, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x62,
	0x75, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, 0x12,
	0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x53,
	0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x61,
	0x78, 0x41, 0x67, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6b,
	0x65, 0x79, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6b, 0x65, 0x79, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x46,
	0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xad, 0x02, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x44, 0x61, 0x74,
	0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x73,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6e, 0x6f,
	0x69, 0x72, 0x2e, 0x4a, 0x6f, 0x62, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4a, 0x6f, 0x62, 0x53, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x07,
	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x64, 0x12, 0x3a, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
	0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16,
	0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x22, 0x3d, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x00,
	0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a,
	0x07, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52,
	0x52, 0x4f, 0x52, 0x10, 0x03, 0x22, 0x8d, 0x01, 0x0a, 0x0b, 0x50, 0x65, 0x65, 0x72, 0x4a, 0x6f,
	0x62, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a,
	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68,
	0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x75,
	0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x04,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54,
	0x72, 0x61, 0x63, 0x6b, 0x73, 0x32, 0xca, 0x01, 0x0a, 0x04, 0x4e, 0x6f, 0x69, 0x72, 0x12, 0x31,
	0x0a, 0x09, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x11, 0x2e, 0x6e, 0x6f,
	0x69, 0x72, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x0f,
	0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x4e, 0x6f, 0x69, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x30,
	0x01, 0x12, 0x26, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x11, 0x2e, 0x6e, 0x6f, 0x69, 0x72,
	0x2e, 0x4e, 0x6f, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0b, 0x2e, 0x6e,
	0x6f, 0x69, 0x72, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x41, 0x64, 0x6d,
	0x69, 0x6e, 0x12, 0x11, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x4e, 0x6f, 0x69, 0x72, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0f, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x4e, 0x6f, 0x69,
	0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x28, 0x01, 0x30, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x12, 0x13, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x53, 0x69, 0x67, 0x6e,
	0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x6e, 0x6f, 0x69, 0x72,
	0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x28, 0x01,
	0x30, 0x01, 0x32, 0x3d, 0x0a, 0x03, 0x53, 0x46, 0x55, 0x12, 0x36, 0x0a, 0x06, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x12, 0x13, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x6e, 0x6f, 0x69, 0x72, 0x2e,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x28, 0x01, 0x30,
	0x01, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
	0x6e, 0x65, 0x74, 0x2d, 0x70, 0x72, 0x6f, 0x70, 0x68, 0x65, 0x74, 0x2f, 0x6e, 0x6f, 0x69, 0x72,
	0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
}

var (
	file_pkg_proto_noir_proto_rawDescOnce sync.Once
	file_pkg_proto_noir_proto_rawDescData = file_pkg_proto_noir_proto_rawDesc
)

func file_pkg_proto_noir_proto_rawDescGZIP() []byte {
	file_pkg_proto_noir_proto_rawDescOnce.Do(func() {
		file_pkg_proto_noir_proto_rawDescData = protoimpl.X.CompressGZIP(file_pkg_proto_noir_proto_rawDescData)
	})
	return file_pkg_proto_noir_proto_rawDescData
}

var file_pkg_proto_noir_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_pkg_proto_noir_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
var file_pkg_proto_noir_proto_goTypes = []interface{}{
	(Trickle_Target)(0),         // 0: noir.Trickle.Target
	(JobData_JobStatus)(0),      // 1: noir.JobData.JobStatus
	(*AdminClient)(nil),         // 2: noir.AdminClient
	(*Empty)(nil),               // 3: noir.Empty
	(*NoirRequest)(nil),         // 4: noir.NoirRequest
	(*NoirReply)(nil),           // 5: noir.NoirReply
	(*AdminRequest)(nil),        // 6: noir.AdminRequest
	(*AdminReply)(nil),          // 7: noir.AdminReply
	(*RoomCountRequest)(nil),    // 8: noir.RoomCountRequest
	(*RoomCountReply)(nil),      // 9: noir.RoomCountReply
	(*RoomListRequest)(nil),     // 10: noir.RoomListRequest
	(*RoomListEntry)(nil),       // 11: noir.RoomListEntry
	(*RoomListReply)(nil),       // 12: noir.RoomListReply
	(*RoomAdminRequest)(nil),    // 13: noir.RoomAdminRequest
	(*RoomAdminReply)(nil),      // 14: noir.RoomAdminReply
	(*CreateRoomRequest)(nil),   // 15: noir.CreateRoomRequest
	(*CreateRoomReply)(nil),     // 16: noir.CreateRoomReply
	(*RoomJobRequest)(nil),      // 17: noir.RoomJobRequest
	(*RoomJobReply)(nil),        // 18: noir.RoomJobReply
	(*SignalRequest)(nil),       // 19: noir.SignalRequest
	(*SignalReply)(nil),         // 20: noir.SignalReply
	(*JoinRequest)(nil),         // 21: noir.JoinRequest
	(*JoinReply)(nil),           // 22: noir.JoinReply
	(*Trickle)(nil),             // 23: noir.Trickle
	(*NoirObject)(nil),          // 24: noir.NoirObject
	(*NodeData)(nil),            // 25: noir.NodeData
	(*RoomData)(nil),            // 26: noir.RoomData
	(*RoomOptions)(nil),         // 27: noir.RoomOptions
	(*UserData)(nil),            // 28: noir.UserData
	(*UserOptions)(nil),         // 29: noir.UserOptions
	(*JobData)(nil),             // 30: noir.JobData
	(*PeerJobData)(nil),         // 31: noir.PeerJobData
	(*timestamp.Timestamp)(nil), // 32: google.protobuf.Timestamp
}
var file_pkg_proto_noir_proto_depIdxs = []int32{
	19, // 0: noir.NoirRequest.signal:type_name -> noir.SignalRequest
	6,  // 1: noir.NoirRequest.admin:type_name -> noir.AdminRequest
	20, // 2: noir.NoirReply.signal:type_name -> noir.SignalReply
	7,  // 3: noir.NoirReply.admin:type_name -> noir.AdminReply
	13, // 4: noir.AdminRequest.roomAdmin:type_name -> noir.RoomAdminRequest
	8,  // 5: noir.AdminRequest.roomCount:type_name -> noir.RoomCountRequest
	10, // 6: noir.AdminRequest.roomList:type_name -> noir.RoomListRequest
	14, // 7: noir.AdminReply.roomAdmin:type_name -> noir.RoomAdminReply
	9,  // 8: noir.AdminReply.roomCount:type_name -> noir.RoomCountReply
	12, // 9: noir.AdminReply.roomList:type_name -> noir.RoomListReply
	11, // 10: noir.RoomListReply.result:type_name -> noir.RoomListEntry
	15, // 11: noir.RoomAdminRequest.createRoom:type_name -> noir.CreateRoomRequest
	17, // 12: noir.RoomAdminRequest.roomJob:type_name -> noir.RoomJobRequest
	16, // 13: noir.RoomAdminReply.createRoom:type_name -> noir.CreateRoomReply
	18, // 14: noir.RoomAdminReply.roomJob:type_name -> noir.RoomJobReply
	27, // 15: noir.CreateRoomRequest.options:type_name -> noir.RoomOptions
	27, // 16: noir.CreateRoomReply.options:type_name -> noir.RoomOptions
	21, // 17: noir.SignalRequest.join:type_name -> noir.JoinRequest
	23, // 18: noir.SignalRequest.trickle:type_name -> noir.Trickle
	22, // 19: noir.SignalReply.join:type_name -> noir.JoinReply
	23, // 20: noir.SignalReply.trickle:type_name -> noir.Trickle
	0,  // 21: noir.Trickle.target:type_name -> noir.Trickle.Target
	25, // 22: noir.NoirObject.node:type_name -> noir.NodeData
	26, // 23: noir.NoirObject.room:type_name -> noir.RoomData
	28, // 24: noir.NoirObject.user:type_name -> noir.UserData
	32, // 25: noir.NodeData.lastUpdate:type_name -> google.protobuf.Timestamp
	32, // 26: noir.RoomData.created:type_name -> google.protobuf.Timestamp
	32, // 27: noir.RoomData.lastUpdate:type_name -> google.protobuf.Timestamp
	27, // 28: noir.RoomData.options:type_name -> noir.RoomOptions
	32, // 29: noir.UserData.created:type_name -> google.protobuf.Timestamp
	32, // 30: noir.UserData.lastUpdate:type_name -> google.protobuf.Timestamp
	29, // 31: noir.UserData.options:type_name -> noir.UserOptions
	1,  // 32: noir.JobData.status:type_name -> noir.JobData.JobStatus
	32, // 33: noir.JobData.created:type_name -> google.protobuf.Timestamp
	32, // 34: noir.JobData.lastUpdate:type_name -> google.protobuf.Timestamp
	2,  // 35: noir.Noir.Subscribe:input_type -> noir.AdminClient
	4,  // 36: noir.Noir.Send:input_type -> noir.NoirRequest
	4,  // 37: noir.Noir.Admin:input_type -> noir.NoirRequest
	19, // 38: noir.Noir.Signal:input_type -> noir.SignalRequest
	19, // 39: noir.SFU.Signal:input_type -> noir.SignalRequest
	5,  // 40: noir.Noir.Subscribe:output_type -> noir.NoirReply
	3,  // 41: noir.Noir.Send:output_type -> noir.Empty
	5,  // 42: noir.Noir.Admin:output_type -> noir.NoirReply
	20, // 43: noir.Noir.Signal:output_type -> noir.SignalReply
	20, // 44: noir.SFU.Signal:output_type -> noir.SignalReply
	40, // [40:45] is the sub-list for method output_type
	35, // [35:40] is the sub-list for method input_type
	35, // [35:35] is the sub-list for extension type_name
	35, // [35:35] is the sub-list for extension extendee
	0,  // [0:35] is the sub-list for field type_name
}

func init() { file_pkg_proto_noir_proto_init() }
func file_pkg_proto_noir_proto_init() {
	if File_pkg_proto_noir_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_pkg_proto_noir_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AdminClient); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Empty); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NoirRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NoirReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AdminRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AdminReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomCountReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomListEntry); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomListReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomAdminRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomAdminReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateRoomRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateRoomReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomJobRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomJobReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SignalReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*JoinRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*JoinReply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Trickle); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NoirObject); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*NodeData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RoomOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserOptions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*JobData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_pkg_proto_noir_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PeerJobData); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_pkg_proto_noir_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*NoirRequest_Signal)(nil),
		(*NoirRequest_Admin)(nil),
	}
	file_pkg_proto_noir_proto_msgTypes[3].OneofWrappers = []interface{}{
		(*NoirReply_Signal)(nil),
		(*NoirReply_Admin)(nil),
		(*NoirReply_Error)(nil),
	}
	file_pkg_proto_noir_proto_msgTypes[4].OneofWrappers = []interface{}{
		(*AdminRequest_RoomAdmin)(nil),
		(*AdminRequest_RoomCount)(nil),
		(*AdminRequest_RoomList)(nil),
	}
	file_pkg_proto_noir_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*AdminReply_Error)(nil),
		(*AdminReply_RoomAdmin)(nil),
		(*AdminReply_RoomCount)(nil),
		(*AdminReply_RoomList)(nil),
	}
	file_pkg_proto_noir_proto_msgTypes[11].OneofWrappers = []interface{}{
		(*RoomAdminRequest_CreateRoom)(nil),
		(*RoomAdminRequest_RoomJob)(nil),
	}
	file_pkg_proto_noir_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*RoomAdminReply_Error)(nil),
		(*RoomAdminReply_CreateRoom)(nil),
		(*RoomAdminReply_RoomJob)(nil),
	}
	file_pkg_proto_noir_proto_msgTypes[17].OneofWrappers = []interface{}{
		(*SignalRequest_Join)(nil),
		(*SignalRequest_Description)(nil),
		(*SignalRequest_Trickle)(nil),
		(*SignalRequest_Kill)(nil),
	}
	file_pkg_proto_noir_proto_msgTypes[18].OneofWrappers = []interface{}{
		(*SignalReply_Join)(nil),
		(*SignalReply_Description)(nil),
		(*SignalReply_Trickle)(nil),
		(*SignalReply_IceConnectionState)(nil),
		(*SignalReply_Error)(nil),
		(*SignalReply_Kill)(nil),
	}
	file_pkg_proto_noir_proto_msgTypes[22].OneofWrappers = []interface{}{
		(*NoirObject_Node)(nil),
		(*NoirObject_Room)(nil),
		(*NoirObject_User)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_pkg_proto_noir_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   30,
			NumExtensions: 0,
			NumServices:   2,
		},
		GoTypes:           file_pkg_proto_noir_proto_goTypes,
		DependencyIndexes: file_pkg_proto_noir_proto_depIdxs,
		EnumInfos:         file_pkg_proto_noir_proto_enumTypes,
		MessageInfos:      file_pkg_proto_noir_proto_msgTypes,
	}.Build()
	File_pkg_proto_noir_proto = out.File
	file_pkg_proto_noir_proto_rawDesc = nil
	file_pkg_proto_noir_proto_goTypes = nil
	file_pkg_proto_noir_proto_depIdxs = nil
}
