// Copyright AGNTCY Contributors (https://github.com/agntcy)
// SPDX-License-Identifier: Apache-2.0

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.35.2
// 	protoc        v5.29.0
// source: controller/v1/controller.proto

package controllerv1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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 ConnectionType int32

const (
	ConnectionType_CONNECTION_TYPE_LOCAL  ConnectionType = 0
	ConnectionType_CONNECTION_TYPE_REMOTE ConnectionType = 1
)

// Enum value maps for ConnectionType.
var (
	ConnectionType_name = map[int32]string{
		0: "CONNECTION_TYPE_LOCAL",
		1: "CONNECTION_TYPE_REMOTE",
	}
	ConnectionType_value = map[string]int32{
		"CONNECTION_TYPE_LOCAL":  0,
		"CONNECTION_TYPE_REMOTE": 1,
	}
)

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

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

func (ConnectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_controller_v1_controller_proto_enumTypes[0].Descriptor()
}

func (ConnectionType) Type() protoreflect.EnumType {
	return &file_controller_v1_controller_proto_enumTypes[0]
}

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

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

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

	MessageId string `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	// Types that are assignable to Payload:
	//
	//	*ControlMessage_ConfigCommand
	//	*ControlMessage_Ack
	//	*ControlMessage_SubscriptionListRequest
	//	*ControlMessage_SubscriptionListResponse
	//	*ControlMessage_ConnectionListRequest
	//	*ControlMessage_ConnectionListResponse
	//	*ControlMessage_RegisterNodeRequest
	//	*ControlMessage_RegisterNodeResponse
	//	*ControlMessage_DeregisterNodeRequest
	//	*ControlMessage_DeregisterNodeResponse
	//	*ControlMessage_CreateChannelRequest
	//	*ControlMessage_DeleteChannelRequest
	//	*ControlMessage_AddParticipantRequest
	//	*ControlMessage_DeleteParticipantRequest
	//	*ControlMessage_ListChannelRequest
	//	*ControlMessage_ListChannelResponse
	//	*ControlMessage_ListParticipantsRequest
	//	*ControlMessage_ListParticipantsResponse
	Payload isControlMessage_Payload `protobuf_oneof:"payload"`
}

func (x *ControlMessage) Reset() {
	*x = ControlMessage{}
	mi := &file_controller_v1_controller_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ControlMessage) ProtoMessage() {}

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

// Deprecated: Use ControlMessage.ProtoReflect.Descriptor instead.
func (*ControlMessage) Descriptor() ([]byte, []int) {
	return file_controller_v1_controller_proto_rawDescGZIP(), []int{0}
}

func (x *ControlMessage) GetMessageId() string {
	if x != nil {
		return x.MessageId
	}
	return ""
}

func (m *ControlMessage) GetPayload() isControlMessage_Payload {
	if m != nil {
		return m.Payload
	}
	return nil
}

func (x *ControlMessage) GetConfigCommand() *ConfigurationCommand {
	if x, ok := x.GetPayload().(*ControlMessage_ConfigCommand); ok {
		return x.ConfigCommand
	}
	return nil
}

func (x *ControlMessage) GetAck() *Ack {
	if x, ok := x.GetPayload().(*ControlMessage_Ack); ok {
		return x.Ack
	}
	return nil
}

func (x *ControlMessage) GetSubscriptionListRequest() *SubscriptionListRequest {
	if x, ok := x.GetPayload().(*ControlMessage_SubscriptionListRequest); ok {
		return x.SubscriptionListRequest
	}
	return nil
}

func (x *ControlMessage) GetSubscriptionListResponse() *SubscriptionListResponse {
	if x, ok := x.GetPayload().(*ControlMessage_SubscriptionListResponse); ok {
		return x.SubscriptionListResponse
	}
	return nil
}

func (x *ControlMessage) GetConnectionListRequest() *ConnectionListRequest {
	if x, ok := x.GetPayload().(*ControlMessage_ConnectionListRequest); ok {
		return x.ConnectionListRequest
	}
	return nil
}

func (x *ControlMessage) GetConnectionListResponse() *ConnectionListResponse {
	if x, ok := x.GetPayload().(*ControlMessage_ConnectionListResponse); ok {
		return x.ConnectionListResponse
	}
	return nil
}

func (x *ControlMessage) GetRegisterNodeRequest() *RegisterNodeRequest {
	if x, ok := x.GetPayload().(*ControlMessage_RegisterNodeRequest); ok {
		return x.RegisterNodeRequest
	}
	return nil
}

func (x *ControlMessage) GetRegisterNodeResponse() *RegisterNodeResponse {
	if x, ok := x.GetPayload().(*ControlMessage_RegisterNodeResponse); ok {
		return x.RegisterNodeResponse
	}
	return nil
}

func (x *ControlMessage) GetDeregisterNodeRequest() *DeregisterNodeRequest {
	if x, ok := x.GetPayload().(*ControlMessage_DeregisterNodeRequest); ok {
		return x.DeregisterNodeRequest
	}
	return nil
}

func (x *ControlMessage) GetDeregisterNodeResponse() *DeregisterNodeResponse {
	if x, ok := x.GetPayload().(*ControlMessage_DeregisterNodeResponse); ok {
		return x.DeregisterNodeResponse
	}
	return nil
}

func (x *ControlMessage) GetCreateChannelRequest() *CreateChannelRequest {
	if x, ok := x.GetPayload().(*ControlMessage_CreateChannelRequest); ok {
		return x.CreateChannelRequest
	}
	return nil
}

func (x *ControlMessage) GetDeleteChannelRequest() *DeleteChannelRequest {
	if x, ok := x.GetPayload().(*ControlMessage_DeleteChannelRequest); ok {
		return x.DeleteChannelRequest
	}
	return nil
}

func (x *ControlMessage) GetAddParticipantRequest() *AddParticipantRequest {
	if x, ok := x.GetPayload().(*ControlMessage_AddParticipantRequest); ok {
		return x.AddParticipantRequest
	}
	return nil
}

func (x *ControlMessage) GetDeleteParticipantRequest() *DeleteParticipantRequest {
	if x, ok := x.GetPayload().(*ControlMessage_DeleteParticipantRequest); ok {
		return x.DeleteParticipantRequest
	}
	return nil
}

func (x *ControlMessage) GetListChannelRequest() *ListChannelsRequest {
	if x, ok := x.GetPayload().(*ControlMessage_ListChannelRequest); ok {
		return x.ListChannelRequest
	}
	return nil
}

func (x *ControlMessage) GetListChannelResponse() *ListChannelsResponse {
	if x, ok := x.GetPayload().(*ControlMessage_ListChannelResponse); ok {
		return x.ListChannelResponse
	}
	return nil
}

func (x *ControlMessage) GetListParticipantsRequest() *ListParticipantsRequest {
	if x, ok := x.GetPayload().(*ControlMessage_ListParticipantsRequest); ok {
		return x.ListParticipantsRequest
	}
	return nil
}

func (x *ControlMessage) GetListParticipantsResponse() *ListParticipantsResponse {
	if x, ok := x.GetPayload().(*ControlMessage_ListParticipantsResponse); ok {
		return x.ListParticipantsResponse
	}
	return nil
}

type isControlMessage_Payload interface {
	isControlMessage_Payload()
}

type ControlMessage_ConfigCommand struct {
	ConfigCommand *ConfigurationCommand `protobuf:"bytes,2,opt,name=config_command,json=configCommand,proto3,oneof"`
}

type ControlMessage_Ack struct {
	Ack *Ack `protobuf:"bytes,3,opt,name=ack,proto3,oneof"`
}

type ControlMessage_SubscriptionListRequest struct {
	SubscriptionListRequest *SubscriptionListRequest `protobuf:"bytes,4,opt,name=subscription_list_request,json=subscriptionListRequest,proto3,oneof"`
}

type ControlMessage_SubscriptionListResponse struct {
	SubscriptionListResponse *SubscriptionListResponse `protobuf:"bytes,5,opt,name=subscription_list_response,json=subscriptionListResponse,proto3,oneof"`
}

type ControlMessage_ConnectionListRequest struct {
	ConnectionListRequest *ConnectionListRequest `protobuf:"bytes,6,opt,name=connection_list_request,json=connectionListRequest,proto3,oneof"`
}

type ControlMessage_ConnectionListResponse struct {
	ConnectionListResponse *ConnectionListResponse `protobuf:"bytes,7,opt,name=connection_list_response,json=connectionListResponse,proto3,oneof"`
}

type ControlMessage_RegisterNodeRequest struct {
	RegisterNodeRequest *RegisterNodeRequest `protobuf:"bytes,8,opt,name=register_node_request,json=registerNodeRequest,proto3,oneof"`
}

type ControlMessage_RegisterNodeResponse struct {
	RegisterNodeResponse *RegisterNodeResponse `protobuf:"bytes,9,opt,name=register_node_response,json=registerNodeResponse,proto3,oneof"`
}

type ControlMessage_DeregisterNodeRequest struct {
	DeregisterNodeRequest *DeregisterNodeRequest `protobuf:"bytes,10,opt,name=deregister_node_request,json=deregisterNodeRequest,proto3,oneof"`
}

type ControlMessage_DeregisterNodeResponse struct {
	DeregisterNodeResponse *DeregisterNodeResponse `protobuf:"bytes,11,opt,name=deregister_node_response,json=deregisterNodeResponse,proto3,oneof"`
}

type ControlMessage_CreateChannelRequest struct {
	CreateChannelRequest *CreateChannelRequest `protobuf:"bytes,12,opt,name=create_channel_request,json=createChannelRequest,proto3,oneof"`
}

type ControlMessage_DeleteChannelRequest struct {
	DeleteChannelRequest *DeleteChannelRequest `protobuf:"bytes,13,opt,name=delete_channel_request,json=deleteChannelRequest,proto3,oneof"`
}

type ControlMessage_AddParticipantRequest struct {
	AddParticipantRequest *AddParticipantRequest `protobuf:"bytes,14,opt,name=add_participant_request,json=addParticipantRequest,proto3,oneof"`
}

type ControlMessage_DeleteParticipantRequest struct {
	DeleteParticipantRequest *DeleteParticipantRequest `protobuf:"bytes,15,opt,name=delete_participant_request,json=deleteParticipantRequest,proto3,oneof"`
}

type ControlMessage_ListChannelRequest struct {
	ListChannelRequest *ListChannelsRequest `protobuf:"bytes,16,opt,name=list_channel_request,json=listChannelRequest,proto3,oneof"`
}

type ControlMessage_ListChannelResponse struct {
	ListChannelResponse *ListChannelsResponse `protobuf:"bytes,17,opt,name=list_channel_response,json=listChannelResponse,proto3,oneof"`
}

type ControlMessage_ListParticipantsRequest struct {
	ListParticipantsRequest *ListParticipantsRequest `protobuf:"bytes,18,opt,name=list_participants_request,json=listParticipantsRequest,proto3,oneof"`
}

type ControlMessage_ListParticipantsResponse struct {
	ListParticipantsResponse *ListParticipantsResponse `protobuf:"bytes,19,opt,name=list_participants_response,json=listParticipantsResponse,proto3,oneof"`
}

func (*ControlMessage_ConfigCommand) isControlMessage_Payload() {}

func (*ControlMessage_Ack) isControlMessage_Payload() {}

func (*ControlMessage_SubscriptionListRequest) isControlMessage_Payload() {}

func (*ControlMessage_SubscriptionListResponse) isControlMessage_Payload() {}

func (*ControlMessage_ConnectionListRequest) isControlMessage_Payload() {}

func (*ControlMessage_ConnectionListResponse) isControlMessage_Payload() {}

func (*ControlMessage_RegisterNodeRequest) isControlMessage_Payload() {}

func (*ControlMessage_RegisterNodeResponse) isControlMessage_Payload() {}

func (*ControlMessage_DeregisterNodeRequest) isControlMessage_Payload() {}

func (*ControlMessage_DeregisterNodeResponse) isControlMessage_Payload() {}

func (*ControlMessage_CreateChannelRequest) isControlMessage_Payload() {}

func (*ControlMessage_DeleteChannelRequest) isControlMessage_Payload() {}

func (*ControlMessage_AddParticipantRequest) isControlMessage_Payload() {}

func (*ControlMessage_DeleteParticipantRequest) isControlMessage_Payload() {}

func (*ControlMessage_ListChannelRequest) isControlMessage_Payload() {}

func (*ControlMessage_ListChannelResponse) isControlMessage_Payload() {}

func (*ControlMessage_ListParticipantsRequest) isControlMessage_Payload() {}

func (*ControlMessage_ListParticipantsResponse) isControlMessage_Payload() {}

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

	ConnectionId string `protobuf:"bytes,1,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
	ConfigData   string `protobuf:"bytes,2,opt,name=config_data,json=configData,proto3" json:"config_data,omitempty"`
}

func (x *Connection) Reset() {
	*x = Connection{}
	mi := &file_controller_v1_controller_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Connection) ProtoMessage() {}

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

// Deprecated: Use Connection.ProtoReflect.Descriptor instead.
func (*Connection) Descriptor() ([]byte, []int) {
	return file_controller_v1_controller_proto_rawDescGZIP(), []int{1}
}

func (x *Connection) GetConnectionId() string {
	if x != nil {
		return x.ConnectionId
	}
	return ""
}

func (x *Connection) GetConfigData() string {
	if x != nil {
		return x.ConfigData
	}
	return ""
}

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

	Component_0  string                  `protobuf:"bytes,1,opt,name=component_0,json=component0,proto3" json:"component_0,omitempty"`
	Component_1  string                  `protobuf:"bytes,2,opt,name=component_1,json=component1,proto3" json:"component_1,omitempty"`
	Component_2  string                  `protobuf:"bytes,3,opt,name=component_2,json=component2,proto3" json:"component_2,omitempty"`
	Id           *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"`
	ConnectionId string                  `protobuf:"bytes,5,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
}

func (x *Subscription) Reset() {
	*x = Subscription{}
	mi := &file_controller_v1_controller_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Subscription) ProtoMessage() {}

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

// Deprecated: Use Subscription.ProtoReflect.Descriptor instead.
func (*Subscription) Descriptor() ([]byte, []int) {
	return file_controller_v1_controller_proto_rawDescGZIP(), []int{2}
}

func (x *Subscription) GetComponent_0() string {
	if x != nil {
		return x.Component_0
	}
	return ""
}

func (x *Subscription) GetComponent_1() string {
	if x != nil {
		return x.Component_1
	}
	return ""
}

func (x *Subscription) GetComponent_2() string {
	if x != nil {
		return x.Component_2
	}
	return ""
}

func (x *Subscription) GetId() *wrapperspb.UInt64Value {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *Subscription) GetConnectionId() string {
	if x != nil {
		return x.ConnectionId
	}
	return ""
}

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

	ConnectionsToCreate   []*Connection   `protobuf:"bytes,1,rep,name=connections_to_create,json=connectionsToCreate,proto3" json:"connections_to_create,omitempty"`
	SubscriptionsToSet    []*Subscription `protobuf:"bytes,2,rep,name=subscriptions_to_set,json=subscriptionsToSet,proto3" json:"subscriptions_to_set,omitempty"`
	SubscriptionsToDelete []*Subscription `protobuf:"bytes,3,rep,name=subscriptions_to_delete,json=subscriptionsToDelete,proto3" json:"subscriptions_to_delete,omitempty"`
}

func (x *ConfigurationCommand) Reset() {
	*x = ConfigurationCommand{}
	mi := &file_controller_v1_controller_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ConfigurationCommand) ProtoMessage() {}

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

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

func (x *ConfigurationCommand) GetConnectionsToCreate() []*Connection {
	if x != nil {
		return x.ConnectionsToCreate
	}
	return nil
}

func (x *ConfigurationCommand) GetSubscriptionsToSet() []*Subscription {
	if x != nil {
		return x.SubscriptionsToSet
	}
	return nil
}

func (x *ConfigurationCommand) GetSubscriptionsToDelete() []*Subscription {
	if x != nil {
		return x.SubscriptionsToDelete
	}
	return nil
}

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

	OriginalMessageId string   `protobuf:"bytes,1,opt,name=original_message_id,json=originalMessageId,proto3" json:"original_message_id,omitempty"`
	Success           bool     `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"`
	Messages          []string `protobuf:"bytes,3,rep,name=messages,proto3" json:"messages,omitempty"`
}

func (x *Ack) Reset() {
	*x = Ack{}
	mi := &file_controller_v1_controller_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Ack) ProtoMessage() {}

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

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

func (x *Ack) GetOriginalMessageId() string {
	if x != nil {
		return x.OriginalMessageId
	}
	return ""
}

func (x *Ack) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

func (x *Ack) GetMessages() []string {
	if x != nil {
		return x.Messages
	}
	return nil
}

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

func (x *SubscriptionListRequest) Reset() {
	*x = SubscriptionListRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SubscriptionListRequest) ProtoMessage() {}

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

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

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

	Entries []*SubscriptionEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
}

func (x *SubscriptionListResponse) Reset() {
	*x = SubscriptionListResponse{}
	mi := &file_controller_v1_controller_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SubscriptionListResponse) ProtoMessage() {}

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

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

func (x *SubscriptionListResponse) GetEntries() []*SubscriptionEntry {
	if x != nil {
		return x.Entries
	}
	return nil
}

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

	Component_0       string                  `protobuf:"bytes,1,opt,name=component_0,json=component0,proto3" json:"component_0,omitempty"`
	Component_1       string                  `protobuf:"bytes,2,opt,name=component_1,json=component1,proto3" json:"component_1,omitempty"`
	Component_2       string                  `protobuf:"bytes,3,opt,name=component_2,json=component2,proto3" json:"component_2,omitempty"`
	Id                *wrapperspb.UInt64Value `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"`
	LocalConnections  []*ConnectionEntry      `protobuf:"bytes,5,rep,name=local_connections,json=localConnections,proto3" json:"local_connections,omitempty"`
	RemoteConnections []*ConnectionEntry      `protobuf:"bytes,6,rep,name=remote_connections,json=remoteConnections,proto3" json:"remote_connections,omitempty"`
}

func (x *SubscriptionEntry) Reset() {
	*x = SubscriptionEntry{}
	mi := &file_controller_v1_controller_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*SubscriptionEntry) ProtoMessage() {}

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

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

func (x *SubscriptionEntry) GetComponent_0() string {
	if x != nil {
		return x.Component_0
	}
	return ""
}

func (x *SubscriptionEntry) GetComponent_1() string {
	if x != nil {
		return x.Component_1
	}
	return ""
}

func (x *SubscriptionEntry) GetComponent_2() string {
	if x != nil {
		return x.Component_2
	}
	return ""
}

func (x *SubscriptionEntry) GetId() *wrapperspb.UInt64Value {
	if x != nil {
		return x.Id
	}
	return nil
}

func (x *SubscriptionEntry) GetLocalConnections() []*ConnectionEntry {
	if x != nil {
		return x.LocalConnections
	}
	return nil
}

func (x *SubscriptionEntry) GetRemoteConnections() []*ConnectionEntry {
	if x != nil {
		return x.RemoteConnections
	}
	return nil
}

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

	Id             uint64         `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	ConnectionType ConnectionType `protobuf:"varint,2,opt,name=connection_type,json=connectionType,proto3,enum=controller.proto.v1.ConnectionType" json:"connection_type,omitempty"`
	ConfigData     string         `protobuf:"bytes,3,opt,name=config_data,json=configData,proto3" json:"config_data,omitempty"`
}

func (x *ConnectionEntry) Reset() {
	*x = ConnectionEntry{}
	mi := &file_controller_v1_controller_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ConnectionEntry) ProtoMessage() {}

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

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

func (x *ConnectionEntry) GetId() uint64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *ConnectionEntry) GetConnectionType() ConnectionType {
	if x != nil {
		return x.ConnectionType
	}
	return ConnectionType_CONNECTION_TYPE_LOCAL
}

func (x *ConnectionEntry) GetConfigData() string {
	if x != nil {
		return x.ConfigData
	}
	return ""
}

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

func (x *ConnectionListRequest) Reset() {
	*x = ConnectionListRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ConnectionListRequest) ProtoMessage() {}

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

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

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

	Entries []*ConnectionEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
}

func (x *ConnectionListResponse) Reset() {
	*x = ConnectionListResponse{}
	mi := &file_controller_v1_controller_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ConnectionListResponse) ProtoMessage() {}

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

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

func (x *ConnectionListResponse) GetEntries() []*ConnectionEntry {
	if x != nil {
		return x.Entries
	}
	return nil
}

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

	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *Node) Reset() {
	*x = Node{}
	mi := &file_controller_v1_controller_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Node) ProtoMessage() {}

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

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

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

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

	Endpoint         string  `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	MtlsRequired     bool    `protobuf:"varint,2,opt,name=mtls_required,json=mtlsRequired,proto3" json:"mtls_required,omitempty"`
	LocalEndpoint    *string `protobuf:"bytes,3,opt,name=local_endpoint,json=localEndpoint,proto3,oneof" json:"local_endpoint,omitempty"`
	ExternalEndpoint *string `protobuf:"bytes,4,opt,name=external_endpoint,json=externalEndpoint,proto3,oneof" json:"external_endpoint,omitempty"`
	GroupName        *string `protobuf:"bytes,5,opt,name=group_name,json=groupName,proto3,oneof" json:"group_name,omitempty"`
}

func (x *ConnectionDetails) Reset() {
	*x = ConnectionDetails{}
	mi := &file_controller_v1_controller_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ConnectionDetails) ProtoMessage() {}

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

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

func (x *ConnectionDetails) GetEndpoint() string {
	if x != nil {
		return x.Endpoint
	}
	return ""
}

func (x *ConnectionDetails) GetMtlsRequired() bool {
	if x != nil {
		return x.MtlsRequired
	}
	return false
}

func (x *ConnectionDetails) GetLocalEndpoint() string {
	if x != nil && x.LocalEndpoint != nil {
		return *x.LocalEndpoint
	}
	return ""
}

func (x *ConnectionDetails) GetExternalEndpoint() string {
	if x != nil && x.ExternalEndpoint != nil {
		return *x.ExternalEndpoint
	}
	return ""
}

func (x *ConnectionDetails) GetGroupName() string {
	if x != nil && x.GroupName != nil {
		return *x.GroupName
	}
	return ""
}

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

	NodeId            string               `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"`
	ConnectionDetails []*ConnectionDetails `protobuf:"bytes,2,rep,name=connection_details,json=connectionDetails,proto3" json:"connection_details,omitempty"`
	GroupName         *string              `protobuf:"bytes,3,opt,name=group_name,json=groupName,proto3,oneof" json:"group_name,omitempty"`
}

func (x *RegisterNodeRequest) Reset() {
	*x = RegisterNodeRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RegisterNodeRequest) ProtoMessage() {}

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

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

func (x *RegisterNodeRequest) GetNodeId() string {
	if x != nil {
		return x.NodeId
	}
	return ""
}

func (x *RegisterNodeRequest) GetConnectionDetails() []*ConnectionDetails {
	if x != nil {
		return x.ConnectionDetails
	}
	return nil
}

func (x *RegisterNodeRequest) GetGroupName() string {
	if x != nil && x.GroupName != nil {
		return *x.GroupName
	}
	return ""
}

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

	Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
}

func (x *RegisterNodeResponse) Reset() {
	*x = RegisterNodeResponse{}
	mi := &file_controller_v1_controller_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*RegisterNodeResponse) ProtoMessage() {}

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

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

func (x *RegisterNodeResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

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

	Node *Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
}

func (x *DeregisterNodeRequest) Reset() {
	*x = DeregisterNodeRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DeregisterNodeRequest) ProtoMessage() {}

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

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

func (x *DeregisterNodeRequest) GetNode() *Node {
	if x != nil {
		return x.Node
	}
	return nil
}

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

	Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
}

func (x *DeregisterNodeResponse) Reset() {
	*x = DeregisterNodeResponse{}
	mi := &file_controller_v1_controller_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DeregisterNodeResponse) ProtoMessage() {}

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

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

func (x *DeregisterNodeResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

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

	// list of moderators for the channel
	Moderators []string `protobuf:"bytes,1,rep,name=moderators,proto3" json:"moderators,omitempty"`
	// The channel name in the form organization/namespace/channel_name
	ChannelName string `protobuf:"bytes,2,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
}

func (x *CreateChannelRequest) Reset() {
	*x = CreateChannelRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*CreateChannelRequest) ProtoMessage() {}

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

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

func (x *CreateChannelRequest) GetModerators() []string {
	if x != nil {
		return x.Moderators
	}
	return nil
}

func (x *CreateChannelRequest) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

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

	// The channel name in the form organization/namespace/channel_name
	ChannelName string `protobuf:"bytes,1,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
	// list of moderators for the channel
	Moderators []string `protobuf:"bytes,2,rep,name=moderators,proto3" json:"moderators,omitempty"`
}

func (x *DeleteChannelRequest) Reset() {
	*x = DeleteChannelRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DeleteChannelRequest) ProtoMessage() {}

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

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

func (x *DeleteChannelRequest) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

func (x *DeleteChannelRequest) GetModerators() []string {
	if x != nil {
		return x.Moderators
	}
	return nil
}

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

	// The channel name in the form organization/namespace/channel_name
	ChannelName string `protobuf:"bytes,1,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
	// Name of the participant
	ParticipantName string `protobuf:"bytes,2,opt,name=participant_name,json=participantName,proto3" json:"participant_name,omitempty"`
	// list of moderators for the channel
	Moderators []string `protobuf:"bytes,3,rep,name=moderators,proto3" json:"moderators,omitempty"`
}

func (x *AddParticipantRequest) Reset() {
	*x = AddParticipantRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AddParticipantRequest) ProtoMessage() {}

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

// Deprecated: Use AddParticipantRequest.ProtoReflect.Descriptor instead.
func (*AddParticipantRequest) Descriptor() ([]byte, []int) {
	return file_controller_v1_controller_proto_rawDescGZIP(), []int{19}
}

func (x *AddParticipantRequest) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

func (x *AddParticipantRequest) GetParticipantName() string {
	if x != nil {
		return x.ParticipantName
	}
	return ""
}

func (x *AddParticipantRequest) GetModerators() []string {
	if x != nil {
		return x.Moderators
	}
	return nil
}

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

	// The channel name in the form organization/namespace/channel_name
	ChannelName string `protobuf:"bytes,1,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
	// ID of participant
	ParticipantName string `protobuf:"bytes,2,opt,name=participant_name,json=participantName,proto3" json:"participant_name,omitempty"`
	// list of moderators for the channel
	Moderators []string `protobuf:"bytes,3,rep,name=moderators,proto3" json:"moderators,omitempty"`
}

func (x *DeleteParticipantRequest) Reset() {
	*x = DeleteParticipantRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DeleteParticipantRequest) ProtoMessage() {}

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

// Deprecated: Use DeleteParticipantRequest.ProtoReflect.Descriptor instead.
func (*DeleteParticipantRequest) Descriptor() ([]byte, []int) {
	return file_controller_v1_controller_proto_rawDescGZIP(), []int{20}
}

func (x *DeleteParticipantRequest) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

func (x *DeleteParticipantRequest) GetParticipantName() string {
	if x != nil {
		return x.ParticipantName
	}
	return ""
}

func (x *DeleteParticipantRequest) GetModerators() []string {
	if x != nil {
		return x.Moderators
	}
	return nil
}

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

func (x *ListChannelsRequest) Reset() {
	*x = ListChannelsRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListChannelsRequest) ProtoMessage() {}

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

// Deprecated: Use ListChannelsRequest.ProtoReflect.Descriptor instead.
func (*ListChannelsRequest) Descriptor() ([]byte, []int) {
	return file_controller_v1_controller_proto_rawDescGZIP(), []int{21}
}

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

	// IDs of the channels available in the control plane
	ChannelName []string `protobuf:"bytes,1,rep,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
}

func (x *ListChannelsResponse) Reset() {
	*x = ListChannelsResponse{}
	mi := &file_controller_v1_controller_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListChannelsResponse) ProtoMessage() {}

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

// Deprecated: Use ListChannelsResponse.ProtoReflect.Descriptor instead.
func (*ListChannelsResponse) Descriptor() ([]byte, []int) {
	return file_controller_v1_controller_proto_rawDescGZIP(), []int{22}
}

func (x *ListChannelsResponse) GetChannelName() []string {
	if x != nil {
		return x.ChannelName
	}
	return nil
}

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

	// name of the channel
	ChannelName string `protobuf:"bytes,1,opt,name=channel_name,json=channelName,proto3" json:"channel_name,omitempty"`
}

func (x *ListParticipantsRequest) Reset() {
	*x = ListParticipantsRequest{}
	mi := &file_controller_v1_controller_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListParticipantsRequest) ProtoMessage() {}

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

// Deprecated: Use ListParticipantsRequest.ProtoReflect.Descriptor instead.
func (*ListParticipantsRequest) Descriptor() ([]byte, []int) {
	return file_controller_v1_controller_proto_rawDescGZIP(), []int{23}
}

func (x *ListParticipantsRequest) GetChannelName() string {
	if x != nil {
		return x.ChannelName
	}
	return ""
}

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

	// list of participants in the channel
	ParticipantName []string `protobuf:"bytes,1,rep,name=participant_name,json=participantName,proto3" json:"participant_name,omitempty"`
}

func (x *ListParticipantsResponse) Reset() {
	*x = ListParticipantsResponse{}
	mi := &file_controller_v1_controller_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*ListParticipantsResponse) ProtoMessage() {}

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

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

func (x *ListParticipantsResponse) GetParticipantName() []string {
	if x != nil {
		return x.ParticipantName
	}
	return nil
}

var File_controller_v1_controller_proto protoreflect.FileDescriptor

var file_controller_v1_controller_proto_rawDesc = []byte{
	0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x12, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xad, 0x0e, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
	0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2c, 0x0a, 0x03, 0x61,
	0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72,
	0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x41,
	0x63, 0x6b, 0x48, 0x00, 0x52, 0x03, 0x61, 0x63, 0x6b, 0x12, 0x6a, 0x0a, 0x19, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63,
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x17, 0x73, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x1a, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x74,
	0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x18, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c,
	0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x6e,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x00, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x67, 0x0a, 0x18, 0x63, 0x6f,
	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x72, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63,
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x63, 0x6f, 0x6e,
	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x15, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f,
	0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x13,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x16, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f,
	0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74,
	0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00,
	0x52, 0x14, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x17, 0x64, 0x65, 0x72, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
	0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65,
	0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x15, 0x64, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65,
	0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x67, 0x0a, 0x18,
	0x64, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f,
	0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e,
	0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x64,
	0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x16, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f,
	0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c,
	0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x48, 0x00, 0x52, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x16, 0x64, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72,
	0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x68, 0x61,
	0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x64, 0x0a, 0x17, 0x61,
	0x64, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x72,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63,
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x15, 0x61, 0x64, 0x64, 0x50,
	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x6d, 0x0a, 0x1a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c,
	0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x18, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61,
	0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x5c, 0x0a, 0x14, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28,
	0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x6c, 0x69, 0x73, 0x74,
	0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5f,
	0x0a, 0x15, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x72,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e,
	0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x13, 0x6c, 0x69, 0x73, 0x74,
	0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x6a, 0x0a, 0x19, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
	0x61, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x12, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72,
	0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x48, 0x00, 0x52, 0x17, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
	0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x6d, 0x0a, 0x1a, 0x6c,
	0x69, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73,
	0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00,
	0x52, 0x18, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61,
	0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x52, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0xc4, 0x01, 0x0a, 0x0c, 0x53, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x30, 0x12, 0x1f, 0x0a, 0x0b, 0x63,
	0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x31, 0x12, 0x1f, 0x0a, 0x0b,
	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x32, 0x12, 0x2c, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74,
	0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x63,
	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64,
	0x22, 0x9b, 0x02, 0x0a, 0x14, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x53, 0x0a, 0x15, 0x63, 0x6f, 0x6e,
	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72,
	0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43,
	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x53,
	0x0a, 0x14, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f,
	0x74, 0x6f, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63,
	0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
	0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x12, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f,
	0x53, 0x65, 0x74, 0x12, 0x59, 0x0a, 0x17, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x03,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65,
	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x22, 0x6b,
	0x0a, 0x03, 0x41, 0x63, 0x6b, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61,
	0x6c, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12,
	0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x53,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5c, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74,
	0x72, 0x69, 0x65, 0x73, 0x22, 0xcc, 0x02, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x30, 0x12, 0x1f, 0x0a, 0x0b, 0x63,
	0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x31, 0x12, 0x1f, 0x0a, 0x0b,
	0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x32, 0x12, 0x2c, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74,
	0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x12, 0x51, 0x0a, 0x11, 0x6c,
	0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
	0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e,
	0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6c, 0x6f,
	0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x53,
	0x0a, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e,
	0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f,
	0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x17, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
	0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
	0x58, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x65, 0x6e, 0x74,
	0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e,
	0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31,
	0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x16, 0x0a, 0x04, 0x4e, 0x6f, 0x64,
	0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
	0x64, 0x22, 0x8e, 0x02, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x74, 0x6c, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75,
	0x69, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x74, 0x6c, 0x73,
	0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61,
	0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x48, 0x00, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e,
	0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
	0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48,
	0x01, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x09, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c,
	0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x14, 0x0a,
	0x12, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f,
	0x69, 0x6e, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e,
	0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f,
	0x64, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64,
	0x65, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x26, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
	0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0d,
	0x0a, 0x0b, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x30, 0x0a,
	0x14, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22,
	0x46, 0x0a, 0x15, 0x44, 0x65, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c,
	0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64,
	0x65, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x22, 0x32, 0x0a, 0x16, 0x44, 0x65, 0x72, 0x65, 0x67,
	0x69, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x59, 0x0a, 0x14, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74,
	0x6f, 0x72, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21,
	0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18,
	0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72,
	0x73, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69,
	0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63,
	0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29,
	0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64,
	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d,
	0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0x88, 0x01, 0x0a, 0x18, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65,
	0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68,
	0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72,
	0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61,
	0x74, 0x6f, 0x72, 0x73, 0x22, 0x15, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e,
	0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x39, 0x0a, 0x14, 0x4c,
	0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e,
	0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3c, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61,
	0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c,
	0x4e, 0x61, 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x2a, 0x47, 0x0a, 0x0e, 0x43,
	0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a,
	0x15, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x4f, 0x4e, 0x4e,
	0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f,
	0x54, 0x45, 0x10, 0x01, 0x32, 0x79, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c,
	0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x64, 0x0a, 0x12, 0x4f, 0x70, 0x65,
	0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12,
	0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x1a, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65,
	0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72,
	0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x42,
	0x4e, 0x5a, 0x4c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x67,
	0x6e, 0x74, 0x63, 0x79, 0x2f, 0x73, 0x6c, 0x69, 0x6d, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f,
	0x6c, 0x2d, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2f,
	0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x76, 0x31, 0x62,
	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_controller_v1_controller_proto_rawDescOnce sync.Once
	file_controller_v1_controller_proto_rawDescData = file_controller_v1_controller_proto_rawDesc
)

func file_controller_v1_controller_proto_rawDescGZIP() []byte {
	file_controller_v1_controller_proto_rawDescOnce.Do(func() {
		file_controller_v1_controller_proto_rawDescData = protoimpl.X.CompressGZIP(file_controller_v1_controller_proto_rawDescData)
	})
	return file_controller_v1_controller_proto_rawDescData
}

var file_controller_v1_controller_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_controller_v1_controller_proto_msgTypes = make([]protoimpl.MessageInfo, 25)
var file_controller_v1_controller_proto_goTypes = []any{
	(ConnectionType)(0),              // 0: controller.proto.v1.ConnectionType
	(*ControlMessage)(nil),           // 1: controller.proto.v1.ControlMessage
	(*Connection)(nil),               // 2: controller.proto.v1.Connection
	(*Subscription)(nil),             // 3: controller.proto.v1.Subscription
	(*ConfigurationCommand)(nil),     // 4: controller.proto.v1.ConfigurationCommand
	(*Ack)(nil),                      // 5: controller.proto.v1.Ack
	(*SubscriptionListRequest)(nil),  // 6: controller.proto.v1.SubscriptionListRequest
	(*SubscriptionListResponse)(nil), // 7: controller.proto.v1.SubscriptionListResponse
	(*SubscriptionEntry)(nil),        // 8: controller.proto.v1.SubscriptionEntry
	(*ConnectionEntry)(nil),          // 9: controller.proto.v1.ConnectionEntry
	(*ConnectionListRequest)(nil),    // 10: controller.proto.v1.ConnectionListRequest
	(*ConnectionListResponse)(nil),   // 11: controller.proto.v1.ConnectionListResponse
	(*Node)(nil),                     // 12: controller.proto.v1.Node
	(*ConnectionDetails)(nil),        // 13: controller.proto.v1.ConnectionDetails
	(*RegisterNodeRequest)(nil),      // 14: controller.proto.v1.RegisterNodeRequest
	(*RegisterNodeResponse)(nil),     // 15: controller.proto.v1.RegisterNodeResponse
	(*DeregisterNodeRequest)(nil),    // 16: controller.proto.v1.DeregisterNodeRequest
	(*DeregisterNodeResponse)(nil),   // 17: controller.proto.v1.DeregisterNodeResponse
	(*CreateChannelRequest)(nil),     // 18: controller.proto.v1.CreateChannelRequest
	(*DeleteChannelRequest)(nil),     // 19: controller.proto.v1.DeleteChannelRequest
	(*AddParticipantRequest)(nil),    // 20: controller.proto.v1.AddParticipantRequest
	(*DeleteParticipantRequest)(nil), // 21: controller.proto.v1.DeleteParticipantRequest
	(*ListChannelsRequest)(nil),      // 22: controller.proto.v1.ListChannelsRequest
	(*ListChannelsResponse)(nil),     // 23: controller.proto.v1.ListChannelsResponse
	(*ListParticipantsRequest)(nil),  // 24: controller.proto.v1.ListParticipantsRequest
	(*ListParticipantsResponse)(nil), // 25: controller.proto.v1.ListParticipantsResponse
	(*wrapperspb.UInt64Value)(nil),   // 26: google.protobuf.UInt64Value
}
var file_controller_v1_controller_proto_depIdxs = []int32{
	4,  // 0: controller.proto.v1.ControlMessage.config_command:type_name -> controller.proto.v1.ConfigurationCommand
	5,  // 1: controller.proto.v1.ControlMessage.ack:type_name -> controller.proto.v1.Ack
	6,  // 2: controller.proto.v1.ControlMessage.subscription_list_request:type_name -> controller.proto.v1.SubscriptionListRequest
	7,  // 3: controller.proto.v1.ControlMessage.subscription_list_response:type_name -> controller.proto.v1.SubscriptionListResponse
	10, // 4: controller.proto.v1.ControlMessage.connection_list_request:type_name -> controller.proto.v1.ConnectionListRequest
	11, // 5: controller.proto.v1.ControlMessage.connection_list_response:type_name -> controller.proto.v1.ConnectionListResponse
	14, // 6: controller.proto.v1.ControlMessage.register_node_request:type_name -> controller.proto.v1.RegisterNodeRequest
	15, // 7: controller.proto.v1.ControlMessage.register_node_response:type_name -> controller.proto.v1.RegisterNodeResponse
	16, // 8: controller.proto.v1.ControlMessage.deregister_node_request:type_name -> controller.proto.v1.DeregisterNodeRequest
	17, // 9: controller.proto.v1.ControlMessage.deregister_node_response:type_name -> controller.proto.v1.DeregisterNodeResponse
	18, // 10: controller.proto.v1.ControlMessage.create_channel_request:type_name -> controller.proto.v1.CreateChannelRequest
	19, // 11: controller.proto.v1.ControlMessage.delete_channel_request:type_name -> controller.proto.v1.DeleteChannelRequest
	20, // 12: controller.proto.v1.ControlMessage.add_participant_request:type_name -> controller.proto.v1.AddParticipantRequest
	21, // 13: controller.proto.v1.ControlMessage.delete_participant_request:type_name -> controller.proto.v1.DeleteParticipantRequest
	22, // 14: controller.proto.v1.ControlMessage.list_channel_request:type_name -> controller.proto.v1.ListChannelsRequest
	23, // 15: controller.proto.v1.ControlMessage.list_channel_response:type_name -> controller.proto.v1.ListChannelsResponse
	24, // 16: controller.proto.v1.ControlMessage.list_participants_request:type_name -> controller.proto.v1.ListParticipantsRequest
	25, // 17: controller.proto.v1.ControlMessage.list_participants_response:type_name -> controller.proto.v1.ListParticipantsResponse
	26, // 18: controller.proto.v1.Subscription.id:type_name -> google.protobuf.UInt64Value
	2,  // 19: controller.proto.v1.ConfigurationCommand.connections_to_create:type_name -> controller.proto.v1.Connection
	3,  // 20: controller.proto.v1.ConfigurationCommand.subscriptions_to_set:type_name -> controller.proto.v1.Subscription
	3,  // 21: controller.proto.v1.ConfigurationCommand.subscriptions_to_delete:type_name -> controller.proto.v1.Subscription
	8,  // 22: controller.proto.v1.SubscriptionListResponse.entries:type_name -> controller.proto.v1.SubscriptionEntry
	26, // 23: controller.proto.v1.SubscriptionEntry.id:type_name -> google.protobuf.UInt64Value
	9,  // 24: controller.proto.v1.SubscriptionEntry.local_connections:type_name -> controller.proto.v1.ConnectionEntry
	9,  // 25: controller.proto.v1.SubscriptionEntry.remote_connections:type_name -> controller.proto.v1.ConnectionEntry
	0,  // 26: controller.proto.v1.ConnectionEntry.connection_type:type_name -> controller.proto.v1.ConnectionType
	9,  // 27: controller.proto.v1.ConnectionListResponse.entries:type_name -> controller.proto.v1.ConnectionEntry
	13, // 28: controller.proto.v1.RegisterNodeRequest.connection_details:type_name -> controller.proto.v1.ConnectionDetails
	12, // 29: controller.proto.v1.DeregisterNodeRequest.node:type_name -> controller.proto.v1.Node
	1,  // 30: controller.proto.v1.ControllerService.OpenControlChannel:input_type -> controller.proto.v1.ControlMessage
	1,  // 31: controller.proto.v1.ControllerService.OpenControlChannel:output_type -> controller.proto.v1.ControlMessage
	31, // [31:32] is the sub-list for method output_type
	30, // [30:31] is the sub-list for method input_type
	30, // [30:30] is the sub-list for extension type_name
	30, // [30:30] is the sub-list for extension extendee
	0,  // [0:30] is the sub-list for field type_name
}

func init() { file_controller_v1_controller_proto_init() }
func file_controller_v1_controller_proto_init() {
	if File_controller_v1_controller_proto != nil {
		return
	}
	file_controller_v1_controller_proto_msgTypes[0].OneofWrappers = []any{
		(*ControlMessage_ConfigCommand)(nil),
		(*ControlMessage_Ack)(nil),
		(*ControlMessage_SubscriptionListRequest)(nil),
		(*ControlMessage_SubscriptionListResponse)(nil),
		(*ControlMessage_ConnectionListRequest)(nil),
		(*ControlMessage_ConnectionListResponse)(nil),
		(*ControlMessage_RegisterNodeRequest)(nil),
		(*ControlMessage_RegisterNodeResponse)(nil),
		(*ControlMessage_DeregisterNodeRequest)(nil),
		(*ControlMessage_DeregisterNodeResponse)(nil),
		(*ControlMessage_CreateChannelRequest)(nil),
		(*ControlMessage_DeleteChannelRequest)(nil),
		(*ControlMessage_AddParticipantRequest)(nil),
		(*ControlMessage_DeleteParticipantRequest)(nil),
		(*ControlMessage_ListChannelRequest)(nil),
		(*ControlMessage_ListChannelResponse)(nil),
		(*ControlMessage_ListParticipantsRequest)(nil),
		(*ControlMessage_ListParticipantsResponse)(nil),
	}
	file_controller_v1_controller_proto_msgTypes[12].OneofWrappers = []any{}
	file_controller_v1_controller_proto_msgTypes[13].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_controller_v1_controller_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   25,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_controller_v1_controller_proto_goTypes,
		DependencyIndexes: file_controller_v1_controller_proto_depIdxs,
		EnumInfos:         file_controller_v1_controller_proto_enumTypes,
		MessageInfos:      file_controller_v1_controller_proto_msgTypes,
	}.Build()
	File_controller_v1_controller_proto = out.File
	file_controller_v1_controller_proto_rawDesc = nil
	file_controller_v1_controller_proto_goTypes = nil
	file_controller_v1_controller_proto_depIdxs = nil
}
