// Copyright IBM Corp. 2020, 2026
// SPDX-License-Identifier: BUSL-1.1

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        (unknown)
// source: controller/servers/services/v1/server_coordination_service.proto

package services

import (
	servers "github.com/hashicorp/boundary/internal/gen/controller/servers"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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 CONNECTIONSTATUS int32

const (
	CONNECTIONSTATUS_CONNECTIONSTATUS_UNSPECIFIED CONNECTIONSTATUS = 0
	CONNECTIONSTATUS_CONNECTIONSTATUS_AUTHORIZED  CONNECTIONSTATUS = 1
	CONNECTIONSTATUS_CONNECTIONSTATUS_CONNECTED   CONNECTIONSTATUS = 2
	CONNECTIONSTATUS_CONNECTIONSTATUS_CLOSED      CONNECTIONSTATUS = 3
)

// Enum value maps for CONNECTIONSTATUS.
var (
	CONNECTIONSTATUS_name = map[int32]string{
		0: "CONNECTIONSTATUS_UNSPECIFIED",
		1: "CONNECTIONSTATUS_AUTHORIZED",
		2: "CONNECTIONSTATUS_CONNECTED",
		3: "CONNECTIONSTATUS_CLOSED",
	}
	CONNECTIONSTATUS_value = map[string]int32{
		"CONNECTIONSTATUS_UNSPECIFIED": 0,
		"CONNECTIONSTATUS_AUTHORIZED":  1,
		"CONNECTIONSTATUS_CONNECTED":   2,
		"CONNECTIONSTATUS_CLOSED":      3,
	}
)

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

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

func (CONNECTIONSTATUS) Descriptor() protoreflect.EnumDescriptor {
	return file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[0].Descriptor()
}

func (CONNECTIONSTATUS) Type() protoreflect.EnumType {
	return &file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[0]
}

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

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

type SESSIONSTATUS int32

const (
	SESSIONSTATUS_SESSIONSTATUS_UNSPECIFIED SESSIONSTATUS = 0
	SESSIONSTATUS_SESSIONSTATUS_PENDING     SESSIONSTATUS = 1
	SESSIONSTATUS_SESSIONSTATUS_ACTIVE      SESSIONSTATUS = 2
	SESSIONSTATUS_SESSIONSTATUS_CANCELING   SESSIONSTATUS = 3
	SESSIONSTATUS_SESSIONSTATUS_TERMINATED  SESSIONSTATUS = 4
)

// Enum value maps for SESSIONSTATUS.
var (
	SESSIONSTATUS_name = map[int32]string{
		0: "SESSIONSTATUS_UNSPECIFIED",
		1: "SESSIONSTATUS_PENDING",
		2: "SESSIONSTATUS_ACTIVE",
		3: "SESSIONSTATUS_CANCELING",
		4: "SESSIONSTATUS_TERMINATED",
	}
	SESSIONSTATUS_value = map[string]int32{
		"SESSIONSTATUS_UNSPECIFIED": 0,
		"SESSIONSTATUS_PENDING":     1,
		"SESSIONSTATUS_ACTIVE":      2,
		"SESSIONSTATUS_CANCELING":   3,
		"SESSIONSTATUS_TERMINATED":  4,
	}
)

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

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

func (SESSIONSTATUS) Descriptor() protoreflect.EnumDescriptor {
	return file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[1].Descriptor()
}

func (SESSIONSTATUS) Type() protoreflect.EnumType {
	return &file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[1]
}

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

// Deprecated: Use SESSIONSTATUS.Descriptor instead.
func (SESSIONSTATUS) EnumDescriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{1}
}

// This enum is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type SessionProcessingError int32

const (
	SessionProcessingError_SESSION_PROCESSING_ERROR_UNSPECIFIED  SessionProcessingError = 0
	SessionProcessingError_SESSION_PROCESSING_ERROR_UNRECOGNIZED SessionProcessingError = 1
)

// Enum value maps for SessionProcessingError.
var (
	SessionProcessingError_name = map[int32]string{
		0: "SESSION_PROCESSING_ERROR_UNSPECIFIED",
		1: "SESSION_PROCESSING_ERROR_UNRECOGNIZED",
	}
	SessionProcessingError_value = map[string]int32{
		"SESSION_PROCESSING_ERROR_UNSPECIFIED":  0,
		"SESSION_PROCESSING_ERROR_UNRECOGNIZED": 1,
	}
)

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

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

func (SessionProcessingError) Descriptor() protoreflect.EnumDescriptor {
	return file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[2].Descriptor()
}

func (SessionProcessingError) Type() protoreflect.EnumType {
	return &file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[2]
}

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

// Deprecated: Use SessionProcessingError.Descriptor instead.
func (SessionProcessingError) EnumDescriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{2}
}

// This enum is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type JOBTYPE int32

const (
	JOBTYPE_JOBTYPE_UNSPECIFIED     JOBTYPE = 0
	JOBTYPE_JOBTYPE_SESSION         JOBTYPE = 1
	JOBTYPE_JOBTYPE_MONITOR_SESSION JOBTYPE = 2
)

// Enum value maps for JOBTYPE.
var (
	JOBTYPE_name = map[int32]string{
		0: "JOBTYPE_UNSPECIFIED",
		1: "JOBTYPE_SESSION",
		2: "JOBTYPE_MONITOR_SESSION",
	}
	JOBTYPE_value = map[string]int32{
		"JOBTYPE_UNSPECIFIED":     0,
		"JOBTYPE_SESSION":         1,
		"JOBTYPE_MONITOR_SESSION": 2,
	}
)

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

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

func (JOBTYPE) Descriptor() protoreflect.EnumDescriptor {
	return file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[3].Descriptor()
}

func (JOBTYPE) Type() protoreflect.EnumType {
	return &file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[3]
}

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

// Deprecated: Use JOBTYPE.Descriptor instead.
func (JOBTYPE) EnumDescriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{3}
}

// This message is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type CHANGETYPE int32

const (
	CHANGETYPE_CHANGETYPE_UNSPECIFIED CHANGETYPE = 0
	// Indicates to the worker to update its knowledge of the state, which may
	// cause action to be taken.
	CHANGETYPE_CHANGETYPE_UPDATE_STATE CHANGETYPE = 1
)

// Enum value maps for CHANGETYPE.
var (
	CHANGETYPE_name = map[int32]string{
		0: "CHANGETYPE_UNSPECIFIED",
		1: "CHANGETYPE_UPDATE_STATE",
	}
	CHANGETYPE_value = map[string]int32{
		"CHANGETYPE_UNSPECIFIED":  0,
		"CHANGETYPE_UPDATE_STATE": 1,
	}
)

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

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

func (CHANGETYPE) Descriptor() protoreflect.EnumDescriptor {
	return file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[4].Descriptor()
}

func (CHANGETYPE) Type() protoreflect.EnumType {
	return &file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[4]
}

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

// Deprecated: Use CHANGETYPE.Descriptor instead.
func (CHANGETYPE) EnumDescriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{4}
}

// Session type represents how the worker is processing a session.
type SessionType int32

const (
	SessionType_SESSION_TYPE_UNSPECIFIED SessionType = 0
	// A session where the worker is the ingress worker.
	SessionType_SESSION_TYPE_INGRESSED SessionType = 1
	// A session where the worker is doing the recording of the session.
	SessionType_SESSION_TYPE_RECORDED SessionType = 2
)

// Enum value maps for SessionType.
var (
	SessionType_name = map[int32]string{
		0: "SESSION_TYPE_UNSPECIFIED",
		1: "SESSION_TYPE_INGRESSED",
		2: "SESSION_TYPE_RECORDED",
	}
	SessionType_value = map[string]int32{
		"SESSION_TYPE_UNSPECIFIED": 0,
		"SESSION_TYPE_INGRESSED":   1,
		"SESSION_TYPE_RECORDED":    2,
	}
)

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

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

func (SessionType) Descriptor() protoreflect.EnumDescriptor {
	return file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[5].Descriptor()
}

func (SessionType) Type() protoreflect.EnumType {
	return &file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[5]
}

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

// Deprecated: Use SessionType.Descriptor instead.
func (SessionType) EnumDescriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{5}
}

type UpstreamServer_TYPE int32

const (
	UpstreamServer_TYPE_UNSPECIFIED UpstreamServer_TYPE = 0
	UpstreamServer_TYPE_CONTROLLER  UpstreamServer_TYPE = 1
	UpstreamServer_TYPE_WORKER      UpstreamServer_TYPE = 2
)

// Enum value maps for UpstreamServer_TYPE.
var (
	UpstreamServer_TYPE_name = map[int32]string{
		0: "TYPE_UNSPECIFIED",
		1: "TYPE_CONTROLLER",
		2: "TYPE_WORKER",
	}
	UpstreamServer_TYPE_value = map[string]int32{
		"TYPE_UNSPECIFIED": 0,
		"TYPE_CONTROLLER":  1,
		"TYPE_WORKER":      2,
	}
)

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

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

func (UpstreamServer_TYPE) Descriptor() protoreflect.EnumDescriptor {
	return file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[6].Descriptor()
}

func (UpstreamServer_TYPE) Type() protoreflect.EnumType {
	return &file_controller_servers_services_v1_server_coordination_service_proto_enumTypes[6]
}

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

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

type Connection struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ConnectionId  string                 `protobuf:"bytes,1,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty" class:"public" eventstream:"observation"` // @gotags: `class:"public" eventstream:"observation"`
	Status        CONNECTIONSTATUS       `protobuf:"varint,2,opt,name=status,proto3,enum=controller.servers.services.v1.CONNECTIONSTATUS" json:"status,omitempty"`
	BytesUp       int64                  `protobuf:"varint,3,opt,name=bytes_up,json=bytesUp,proto3" json:"bytes_up,omitempty" class:"public"`       // @gotags: `class:"public"`
	BytesDown     int64                  `protobuf:"varint,4,opt,name=bytes_down,json=bytesDown,proto3" json:"bytes_down,omitempty" class:"public"` // @gotags: `class:"public"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Connection) Reset() {
	*x = Connection{}
	mi := &file_controller_servers_services_v1_server_coordination_service_proto_msgTypes[0]
	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_servers_services_v1_server_coordination_service_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 Connection.ProtoReflect.Descriptor instead.
func (*Connection) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{0}
}

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

func (x *Connection) GetStatus() CONNECTIONSTATUS {
	if x != nil {
		return x.Status
	}
	return CONNECTIONSTATUS_CONNECTIONSTATUS_UNSPECIFIED
}

func (x *Connection) GetBytesUp() int64 {
	if x != nil {
		return x.BytesUp
	}
	return 0
}

func (x *Connection) GetBytesDown() int64 {
	if x != nil {
		return x.BytesDown
	}
	return 0
}

// This message is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type SessionJobInfo struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	SessionId       string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty" class:"public" eventstream:"observation"` // @gotags: `class:"public" eventstream:"observation"`
	Status          SESSIONSTATUS          `protobuf:"varint,2,opt,name=status,proto3,enum=controller.servers.services.v1.SESSIONSTATUS" json:"status,omitempty"`
	Connections     []*Connection          `protobuf:"bytes,3,rep,name=connections,proto3" json:"connections,omitempty"`
	ProcessingError SessionProcessingError `protobuf:"varint,4,opt,name=processing_error,json=processingError,proto3,enum=controller.servers.services.v1.SessionProcessingError" json:"processing_error,omitempty" class:"public"` // @gotags: `class:"public"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*SessionJobInfo) ProtoMessage() {}

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

func (x *SessionJobInfo) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *SessionJobInfo) GetStatus() SESSIONSTATUS {
	if x != nil {
		return x.Status
	}
	return SESSIONSTATUS_SESSIONSTATUS_UNSPECIFIED
}

func (x *SessionJobInfo) GetConnections() []*Connection {
	if x != nil {
		return x.Connections
	}
	return nil
}

func (x *SessionJobInfo) GetProcessingError() SessionProcessingError {
	if x != nil {
		return x.ProcessingError
	}
	return SessionProcessingError_SESSION_PROCESSING_ERROR_UNSPECIFIED
}

// This message is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type MonitorSessionJobInfo struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	SessionId       string                 `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty" class:"public" eventstream:"observation"`                                                                               // @gotags: `class:"public" eventstream:"observation"`
	Status          SESSIONSTATUS          `protobuf:"varint,2,opt,name=status,proto3,enum=controller.servers.services.v1.SESSIONSTATUS" json:"status,omitempty" class:"public"`                                                   // @gotags: `class:"public"`
	ProcessingError SessionProcessingError `protobuf:"varint,3,opt,name=processing_error,json=processingError,proto3,enum=controller.servers.services.v1.SessionProcessingError" json:"processing_error,omitempty" class:"public"` // @gotags: `class:"public"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*MonitorSessionJobInfo) ProtoMessage() {}

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

func (x *MonitorSessionJobInfo) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *MonitorSessionJobInfo) GetStatus() SESSIONSTATUS {
	if x != nil {
		return x.Status
	}
	return SESSIONSTATUS_SESSIONSTATUS_UNSPECIFIED
}

func (x *MonitorSessionJobInfo) GetProcessingError() SessionProcessingError {
	if x != nil {
		return x.ProcessingError
	}
	return SessionProcessingError_SESSION_PROCESSING_ERROR_UNSPECIFIED
}

// This message is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type Job struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Type  JOBTYPE                `protobuf:"varint,1,opt,name=type,proto3,enum=controller.servers.services.v1.JOBTYPE" json:"type,omitempty"`
	// Types that are valid to be assigned to JobInfo:
	//
	//	*Job_SessionInfo
	//	*Job_MonitorSessionInfo
	JobInfo       isJob_JobInfo `protobuf_oneof:"job_info"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Job) ProtoMessage() {}

func (x *Job) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 Job.ProtoReflect.Descriptor instead.
func (*Job) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{3}
}

func (x *Job) GetType() JOBTYPE {
	if x != nil {
		return x.Type
	}
	return JOBTYPE_JOBTYPE_UNSPECIFIED
}

func (x *Job) GetJobInfo() isJob_JobInfo {
	if x != nil {
		return x.JobInfo
	}
	return nil
}

func (x *Job) GetSessionInfo() *SessionJobInfo {
	if x != nil {
		if x, ok := x.JobInfo.(*Job_SessionInfo); ok {
			return x.SessionInfo
		}
	}
	return nil
}

func (x *Job) GetMonitorSessionInfo() *MonitorSessionJobInfo {
	if x != nil {
		if x, ok := x.JobInfo.(*Job_MonitorSessionInfo); ok {
			return x.MonitorSessionInfo
		}
	}
	return nil
}

type isJob_JobInfo interface {
	isJob_JobInfo()
}

type Job_SessionInfo struct {
	// This value is specified when type is JOBTYPE_SESSION.
	SessionInfo *SessionJobInfo `protobuf:"bytes,2,opt,name=session_info,json=sessionInfo,proto3,oneof"`
}

type Job_MonitorSessionInfo struct {
	MonitorSessionInfo *MonitorSessionJobInfo `protobuf:"bytes,3,opt,name=monitor_session_info,json=monitorSessionInfo,proto3,oneof"`
}

func (*Job_SessionInfo) isJob_JobInfo() {}

func (*Job_MonitorSessionInfo) isJob_JobInfo() {}

// This message is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type JobStatus struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Job           *Job                   `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*JobStatus) ProtoMessage() {}

func (x *JobStatus) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 JobStatus.ProtoReflect.Descriptor instead.
func (*JobStatus) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{4}
}

func (x *JobStatus) GetJob() *Job {
	if x != nil {
		return x.Job
	}
	return nil
}

// UpstreamServer returns the controller address in the StatusResponse but may be used in the future to return
// worker address.
// This message is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type UpstreamServer struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// type specifies between controller or worker.
	Type UpstreamServer_TYPE `protobuf:"varint,10,opt,name=type,proto3,enum=controller.servers.services.v1.UpstreamServer_TYPE" json:"type,omitempty"`
	// Address of the daemon
	Address       string `protobuf:"bytes,20,opt,name=address,proto3" json:"address,omitempty" class:"public"` // @gotags: `class:"public"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*UpstreamServer) ProtoMessage() {}

func (x *UpstreamServer) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 UpstreamServer.ProtoReflect.Descriptor instead.
func (*UpstreamServer) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{5}
}

func (x *UpstreamServer) GetType() UpstreamServer_TYPE {
	if x != nil {
		return x.Type
	}
	return UpstreamServer_TYPE_UNSPECIFIED
}

func (x *UpstreamServer) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

// This message is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type StatusRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Jobs which this worker wants to report the status.
	Jobs []*JobStatus `protobuf:"bytes,20,rep,name=jobs,proto3" json:"jobs,omitempty"`
	// Whether to update tags from the Server block on this RPC. We only need to
	// do this at startup or (at some point) SIGHUP, so specifying when it's
	// changed allows us to avoid constant database operations for something that
	// won't change very often, if ever.
	UpdateTags bool `protobuf:"varint,30,opt,name=update_tags,json=updateTags,proto3" json:"update_tags,omitempty"`
	// Replaces the old worker field:
	// The worker info. We could use information from the TLS connection but this
	// is easier and going the other route doesn't provide much benefit -- if you
	// get access to the key and spoof the connection, you're already compromised.
	WorkerStatus *servers.ServerWorkerStatus `protobuf:"bytes,40,opt,name=worker_status,json=workerStatus,proto3" json:"worker_status,omitempty"`
	// The worker key identifiers for downstream workers for which there
	// is not a known worker id mapping for them yet.
	ConnectedUnmappedWorkerKeyIdentifiers []string `protobuf:"bytes,51,rep,name=connected_unmapped_worker_key_identifiers,json=connectedUnmappedWorkerKeyIdentifiers,proto3" json:"connected_unmapped_worker_key_identifiers,omitempty"`
	// The worker public ids of all downstreams connected to this worker if known.
	// While there may be workers with key ids in the connected_worker_key_identifiers
	// list and their public ids in this list, once the requesting worker is aware
	// of the association, it should only populate this field.
	ConnectedWorkerPublicIds []string `protobuf:"bytes,55,rep,name=connected_worker_public_ids,json=connectedWorkerPublicIds,proto3" json:"connected_worker_public_ids,omitempty"`
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

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

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

func (*StatusRequest) ProtoMessage() {}

func (x *StatusRequest) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 StatusRequest.ProtoReflect.Descriptor instead.
func (*StatusRequest) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{6}
}

func (x *StatusRequest) GetJobs() []*JobStatus {
	if x != nil {
		return x.Jobs
	}
	return nil
}

func (x *StatusRequest) GetUpdateTags() bool {
	if x != nil {
		return x.UpdateTags
	}
	return false
}

func (x *StatusRequest) GetWorkerStatus() *servers.ServerWorkerStatus {
	if x != nil {
		return x.WorkerStatus
	}
	return nil
}

func (x *StatusRequest) GetConnectedUnmappedWorkerKeyIdentifiers() []string {
	if x != nil {
		return x.ConnectedUnmappedWorkerKeyIdentifiers
	}
	return nil
}

func (x *StatusRequest) GetConnectedWorkerPublicIds() []string {
	if x != nil {
		return x.ConnectedWorkerPublicIds
	}
	return nil
}

// This message is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type JobChangeRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Job           *Job                   `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
	RequestType   CHANGETYPE             `protobuf:"varint,2,opt,name=request_type,json=requestType,proto3,enum=controller.servers.services.v1.CHANGETYPE" json:"request_type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*JobChangeRequest) ProtoMessage() {}

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

func (x *JobChangeRequest) GetJob() *Job {
	if x != nil {
		return x.Job
	}
	return nil
}

func (x *JobChangeRequest) GetRequestType() CHANGETYPE {
	if x != nil {
		return x.RequestType
	}
	return CHANGETYPE_CHANGETYPE_UNSPECIFIED
}

type AuthorizedDownstreamWorkerList struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// the key id of authorized workers which do not have a worker id known yet
	// to the requester.
	UnmappedWorkerKeyIdentifiers []string `protobuf:"bytes,1,rep,name=unmapped_worker_key_identifiers,json=unmappedWorkerKeyIdentifiers,proto3" json:"unmapped_worker_key_identifiers,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// the public id of workers that were reported as being connected and which
	// are known by the controller.
	WorkerPublicIds []string `protobuf:"bytes,2,rep,name=worker_public_ids,json=workerPublicIds,proto3" json:"worker_public_ids,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*AuthorizedDownstreamWorkerList) ProtoMessage() {}

func (x *AuthorizedDownstreamWorkerList) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 AuthorizedDownstreamWorkerList.ProtoReflect.Descriptor instead.
func (*AuthorizedDownstreamWorkerList) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{8}
}

func (x *AuthorizedDownstreamWorkerList) GetUnmappedWorkerKeyIdentifiers() []string {
	if x != nil {
		return x.UnmappedWorkerKeyIdentifiers
	}
	return nil
}

func (x *AuthorizedDownstreamWorkerList) GetWorkerPublicIds() []string {
	if x != nil {
		return x.WorkerPublicIds
	}
	return nil
}

// This message is deprecated and is safe to remove after the release of Boundary v0.20.0.
//
// Deprecated: Marked as deprecated in controller/servers/services/v1/server_coordination_service.proto.
type StatusResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of jobs and the expected state changes.  For example, this will
	// include jobs witch change type of canceled for jobs which are active on a
	// worker but should be canceled. This could also contain a request to start a
	// job such as a worker -> worker proxy for establishing a session through an
	// enclave.
	JobsRequests []*JobChangeRequest `protobuf:"bytes,20,rep,name=jobs_requests,json=jobsRequests,proto3" json:"jobs_requests,omitempty"`
	// UpstreamServer currently returns the controller address in the StatusResponse.
	CalculatedUpstreams []*UpstreamServer `protobuf:"bytes,30,rep,name=calculated_upstreams,json=calculatedUpstreams,proto3" json:"calculated_upstreams,omitempty"`
	// The ID of the worker which made the request. The worker can send this value in subsequent requests so the
	// controller does not need to do a database lookup for the id using the name field.
	WorkerId string `protobuf:"bytes,40,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty" class:"public" eventstream:"observation"` // @gotags: `class:"public" eventstream:"observation"`
	// Of the downstream workers in the request, these are the ones
	// which are authorized to remain connected.
	AuthorizedDownstreamWorkers *AuthorizedDownstreamWorkerList `protobuf:"bytes,51,opt,name=authorized_downstream_workers,json=authorizedDownstreamWorkers,proto3" json:"authorized_downstream_workers,omitempty"`
	unknownFields               protoimpl.UnknownFields
	sizeCache                   protoimpl.SizeCache
}

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

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

func (*StatusResponse) ProtoMessage() {}

func (x *StatusResponse) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 StatusResponse.ProtoReflect.Descriptor instead.
func (*StatusResponse) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{9}
}

func (x *StatusResponse) GetJobsRequests() []*JobChangeRequest {
	if x != nil {
		return x.JobsRequests
	}
	return nil
}

func (x *StatusResponse) GetCalculatedUpstreams() []*UpstreamServer {
	if x != nil {
		return x.CalculatedUpstreams
	}
	return nil
}

func (x *StatusResponse) GetWorkerId() string {
	if x != nil {
		return x.WorkerId
	}
	return ""
}

func (x *StatusResponse) GetAuthorizedDownstreamWorkers() *AuthorizedDownstreamWorkerList {
	if x != nil {
		return x.AuthorizedDownstreamWorkers
	}
	return nil
}

// WorkerInfo contains information about workers for the HcpbWorkerResponse message
type WorkerInfo struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The id of the worker
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The public address of the worker
	Address       string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*WorkerInfo) ProtoMessage() {}

func (x *WorkerInfo) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 WorkerInfo.ProtoReflect.Descriptor instead.
func (*WorkerInfo) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{10}
}

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

func (x *WorkerInfo) GetAddress() string {
	if x != nil {
		return x.Address
	}
	return ""
}

// A HCP Boundary workers request. Empty for now.
type ListHcpbWorkersRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListHcpbWorkersRequest) ProtoMessage() {}

func (x *ListHcpbWorkersRequest) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 ListHcpbWorkersRequest.ProtoReflect.Descriptor instead.
func (*ListHcpbWorkersRequest) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{11}
}

// A response containing worker information
type ListHcpbWorkersResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Workers       []*WorkerInfo          `protobuf:"bytes,1,rep,name=workers,proto3" json:"workers,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ListHcpbWorkersResponse) ProtoMessage() {}

func (x *ListHcpbWorkersResponse) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 ListHcpbWorkersResponse.ProtoReflect.Descriptor instead.
func (*ListHcpbWorkersResponse) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{12}
}

func (x *ListHcpbWorkersResponse) GetWorkers() []*WorkerInfo {
	if x != nil {
		return x.Workers
	}
	return nil
}

// SessionStatistics contains statistics about a session and its connections.
type SessionStatistics struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Session ID holds the ID of the session which the statistics belong to.
	SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// Connections contains statistics about all the existing connections for the given session.
	Connections   []*Connection `protobuf:"bytes,2,rep,name=connections,proto3" json:"connections,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SessionStatistics) ProtoMessage() {}

func (x *SessionStatistics) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 SessionStatistics.ProtoReflect.Descriptor instead.
func (*SessionStatistics) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{13}
}

func (x *SessionStatistics) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *SessionStatistics) GetConnections() []*Connection {
	if x != nil {
		return x.Connections
	}
	return nil
}

// StatisticsRequest contains a worker statistics request. This request
// reports on information that is not important either to maintain existing
// sessions or create new ones.
type StatisticsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the worker making the request.
	WorkerId string `protobuf:"bytes,10,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// The statistics of the sessions managed by this worker
	Sessions      []*SessionStatistics `protobuf:"bytes,20,rep,name=sessions,proto3" json:"sessions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StatisticsRequest) ProtoMessage() {}

func (x *StatisticsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 StatisticsRequest.ProtoReflect.Descriptor instead.
func (*StatisticsRequest) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{14}
}

func (x *StatisticsRequest) GetWorkerId() string {
	if x != nil {
		return x.WorkerId
	}
	return ""
}

func (x *StatisticsRequest) GetSessions() []*SessionStatistics {
	if x != nil {
		return x.Sessions
	}
	return nil
}

// StatisticsResponse contains a controller statistics response. Empty for now.
type StatisticsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*StatisticsResponse) ProtoMessage() {}

func (x *StatisticsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 StatisticsResponse.ProtoReflect.Descriptor instead.
func (*StatisticsResponse) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{15}
}

// RoutingIinfoRequest is the request message for the RoutingInfo RPC.
type RoutingInfoRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The worker status of the worker making the request.
	WorkerStatus *servers.ServerWorkerStatus `protobuf:"bytes,1,opt,name=worker_status,json=workerStatus,proto3" json:"worker_status,omitempty"`
	// Whether the tags should be updated or not.
	UpdateTags bool `protobuf:"varint,2,opt,name=update_tags,json=updateTags,proto3" json:"update_tags,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// The worker key identifiers for downstream workers for which there
	// is not a known worker id.
	ConnectedUnmappedWorkerKeyIdentifiers []string `protobuf:"bytes,3,rep,name=connected_unmapped_worker_key_identifiers,json=connectedUnmappedWorkerKeyIdentifiers,proto3" json:"connected_unmapped_worker_key_identifiers,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// The worker public ids of all downstreams connected to this worker.
	ConnectedWorkerPublicIds []string `protobuf:"bytes,4,rep,name=connected_worker_public_ids,json=connectedWorkerPublicIds,proto3" json:"connected_worker_public_ids,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	unknownFields            protoimpl.UnknownFields
	sizeCache                protoimpl.SizeCache
}

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

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

func (*RoutingInfoRequest) ProtoMessage() {}

func (x *RoutingInfoRequest) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 RoutingInfoRequest.ProtoReflect.Descriptor instead.
func (*RoutingInfoRequest) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{16}
}

func (x *RoutingInfoRequest) GetWorkerStatus() *servers.ServerWorkerStatus {
	if x != nil {
		return x.WorkerStatus
	}
	return nil
}

func (x *RoutingInfoRequest) GetUpdateTags() bool {
	if x != nil {
		return x.UpdateTags
	}
	return false
}

func (x *RoutingInfoRequest) GetConnectedUnmappedWorkerKeyIdentifiers() []string {
	if x != nil {
		return x.ConnectedUnmappedWorkerKeyIdentifiers
	}
	return nil
}

func (x *RoutingInfoRequest) GetConnectedWorkerPublicIds() []string {
	if x != nil {
		return x.ConnectedWorkerPublicIds
	}
	return nil
}

// RoutingInfoResponse is the response message for the RoutingInfo RPC.
type RoutingInfoResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The controller-assigned ID of the worker which made the request.
	WorkerId string `protobuf:"bytes,1,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// The calculated upstream addresses for the controller cluster.
	CalculatedUpstreamAddresses []string `protobuf:"bytes,2,rep,name=calculated_upstream_addresses,json=calculatedUpstreamAddresses,proto3" json:"calculated_upstream_addresses,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// Of the downstream workers in the request, these are the ones
	// which are authorized to remain connected.
	AuthorizedDownstreamWorkers *AuthorizedDownstreamWorkerList `protobuf:"bytes,3,opt,name=authorized_downstream_workers,json=authorizedDownstreamWorkers,proto3" json:"authorized_downstream_workers,omitempty"`
	unknownFields               protoimpl.UnknownFields
	sizeCache                   protoimpl.SizeCache
}

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

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

func (*RoutingInfoResponse) ProtoMessage() {}

func (x *RoutingInfoResponse) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 RoutingInfoResponse.ProtoReflect.Descriptor instead.
func (*RoutingInfoResponse) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{17}
}

func (x *RoutingInfoResponse) GetWorkerId() string {
	if x != nil {
		return x.WorkerId
	}
	return ""
}

func (x *RoutingInfoResponse) GetCalculatedUpstreamAddresses() []string {
	if x != nil {
		return x.CalculatedUpstreamAddresses
	}
	return nil
}

func (x *RoutingInfoResponse) GetAuthorizedDownstreamWorkers() *AuthorizedDownstreamWorkerList {
	if x != nil {
		return x.AuthorizedDownstreamWorkers
	}
	return nil
}

// Session contains information about a worker managed session
type Session struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the session.
	SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// The status of the session.
	SessionStatus SESSIONSTATUS `protobuf:"varint,2,opt,name=session_status,json=sessionStatus,proto3,enum=controller.servers.services.v1.SESSIONSTATUS" json:"session_status,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// Represents how the worker is processing the session.
	SessionType SessionType `protobuf:"varint,3,opt,name=session_type,json=sessionType,proto3,enum=controller.servers.services.v1.SessionType" json:"session_type,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// Connections contains information about the connections managed by the session
	Connections   []*Connection `protobuf:"bytes,4,rep,name=connections,proto3" json:"connections,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Session) ProtoMessage() {}

func (x *Session) ProtoReflect() protoreflect.Message {
	mi := &file_controller_servers_services_v1_server_coordination_service_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 Session.ProtoReflect.Descriptor instead.
func (*Session) Descriptor() ([]byte, []int) {
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP(), []int{18}
}

func (x *Session) GetSessionId() string {
	if x != nil {
		return x.SessionId
	}
	return ""
}

func (x *Session) GetSessionStatus() SESSIONSTATUS {
	if x != nil {
		return x.SessionStatus
	}
	return SESSIONSTATUS_SESSIONSTATUS_UNSPECIFIED
}

func (x *Session) GetSessionType() SessionType {
	if x != nil {
		return x.SessionType
	}
	return SessionType_SESSION_TYPE_UNSPECIFIED
}

func (x *Session) GetConnections() []*Connection {
	if x != nil {
		return x.Connections
	}
	return nil
}

// SessionInfoRequest contains a worker session information request. This request
// reports on currently managed sessions on the worker. This includes all ingressed
// and recorded sessions.
type SessionInfoRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the worker making the request.
	WorkerId string `protobuf:"bytes,1,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty" class:"public" eventstream:"observation"` // @gotags: class:"public" eventstream:"observation"
	// The sessions which this worker wants to report the status of.
	// Includes both ingressed sessions and recorded sessions.
	Sessions      []*Session `protobuf:"bytes,2,rep,name=sessions,proto3" json:"sessions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SessionInfoRequest) ProtoMessage() {}

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

func (x *SessionInfoRequest) GetWorkerId() string {
	if x != nil {
		return x.WorkerId
	}
	return ""
}

func (x *SessionInfoRequest) GetSessions() []*Session {
	if x != nil {
		return x.Sessions
	}
	return nil
}

// SessionInfoResponse contains a controller session information response. This
// response indicates what, if any, changes should be made to the sessions.
// This also includes any sessions the worker is monitoring but not managing directly.
type SessionInfoResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of sessions that are no longer active and whose status should be updated.
	NonActiveSessions []*Session `protobuf:"bytes,1,rep,name=non_active_sessions,json=nonActiveSessions,proto3" json:"non_active_sessions,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*SessionInfoResponse) ProtoMessage() {}

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

func (x *SessionInfoResponse) GetNonActiveSessions() []*Session {
	if x != nil {
		return x.NonActiveSessions
	}
	return nil
}

var File_controller_servers_services_v1_server_coordination_service_proto protoreflect.FileDescriptor

const file_controller_servers_services_v1_server_coordination_service_proto_rawDesc = "" +
	"\n" +
	"@controller/servers/services/v1/server_coordination_service.proto\x12\x1econtroller.servers.services.v1\x1a#controller/servers/v1/servers.proto\"\xb5\x01\n" +
	"\n" +
	"Connection\x12#\n" +
	"\rconnection_id\x18\x01 \x01(\tR\fconnectionId\x12H\n" +
	"\x06status\x18\x02 \x01(\x0e20.controller.servers.services.v1.CONNECTIONSTATUSR\x06status\x12\x19\n" +
	"\bbytes_up\x18\x03 \x01(\x03R\abytesUp\x12\x1d\n" +
	"\n" +
	"bytes_down\x18\x04 \x01(\x03R\tbytesDown\"\xab\x02\n" +
	"\x0eSessionJobInfo\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12E\n" +
	"\x06status\x18\x02 \x01(\x0e2-.controller.servers.services.v1.SESSIONSTATUSR\x06status\x12L\n" +
	"\vconnections\x18\x03 \x03(\v2*.controller.servers.services.v1.ConnectionR\vconnections\x12a\n" +
	"\x10processing_error\x18\x04 \x01(\x0e26.controller.servers.services.v1.SessionProcessingErrorR\x0fprocessingError:\x02\x18\x01\"\xe4\x01\n" +
	"\x15MonitorSessionJobInfo\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12E\n" +
	"\x06status\x18\x02 \x01(\x0e2-.controller.servers.services.v1.SESSIONSTATUSR\x06status\x12a\n" +
	"\x10processing_error\x18\x03 \x01(\x0e26.controller.servers.services.v1.SessionProcessingErrorR\x0fprocessingError:\x02\x18\x01\"\x92\x02\n" +
	"\x03Job\x12;\n" +
	"\x04type\x18\x01 \x01(\x0e2'.controller.servers.services.v1.JOBTYPER\x04type\x12S\n" +
	"\fsession_info\x18\x02 \x01(\v2..controller.servers.services.v1.SessionJobInfoH\x00R\vsessionInfo\x12i\n" +
	"\x14monitor_session_info\x18\x03 \x01(\v25.controller.servers.services.v1.MonitorSessionJobInfoH\x00R\x12monitorSessionInfo:\x02\x18\x01B\n" +
	"\n" +
	"\bjob_info\"F\n" +
	"\tJobStatus\x125\n" +
	"\x03job\x18\x01 \x01(\v2#.controller.servers.services.v1.JobR\x03job:\x02\x18\x01\"\xbb\x01\n" +
	"\x0eUpstreamServer\x12G\n" +
	"\x04type\x18\n" +
	" \x01(\x0e23.controller.servers.services.v1.UpstreamServer.TYPER\x04type\x12\x18\n" +
	"\aaddress\x18\x14 \x01(\tR\aaddress\"B\n" +
	"\x04TYPE\x12\x14\n" +
	"\x10TYPE_UNSPECIFIED\x10\x00\x12\x13\n" +
	"\x0fTYPE_CONTROLLER\x10\x01\x12\x0f\n" +
	"\vTYPE_WORKER\x10\x02:\x02\x18\x01\"\x92\x03\n" +
	"\rStatusRequest\x12=\n" +
	"\x04jobs\x18\x14 \x03(\v2).controller.servers.services.v1.JobStatusR\x04jobs\x12\x1f\n" +
	"\vupdate_tags\x18\x1e \x01(\bR\n" +
	"updateTags\x12N\n" +
	"\rworker_status\x18( \x01(\v2).controller.servers.v1.ServerWorkerStatusR\fworkerStatus\x12X\n" +
	")connected_unmapped_worker_key_identifiers\x183 \x03(\tR%connectedUnmappedWorkerKeyIdentifiers\x12=\n" +
	"\x1bconnected_worker_public_ids\x187 \x03(\tR\x18connectedWorkerPublicIds:\x02\x18\x01J\x04\b\n" +
	"\x10\vJ\x04\b2\x103R\x06workerR connected_worker_key_identifiers\"\x9c\x01\n" +
	"\x10JobChangeRequest\x125\n" +
	"\x03job\x18\x01 \x01(\v2#.controller.servers.services.v1.JobR\x03job\x12M\n" +
	"\frequest_type\x18\x02 \x01(\x0e2*.controller.servers.services.v1.CHANGETYPER\vrequestType:\x02\x18\x01\"\x93\x01\n" +
	"\x1eAuthorizedDownstreamWorkerList\x12E\n" +
	"\x1funmapped_worker_key_identifiers\x18\x01 \x03(\tR\x1cunmappedWorkerKeyIdentifiers\x12*\n" +
	"\x11worker_public_ids\x18\x02 \x03(\tR\x0fworkerPublicIds\"\x9d\x03\n" +
	"\x0eStatusResponse\x12U\n" +
	"\rjobs_requests\x18\x14 \x03(\v20.controller.servers.services.v1.JobChangeRequestR\fjobsRequests\x12a\n" +
	"\x14calculated_upstreams\x18\x1e \x03(\v2..controller.servers.services.v1.UpstreamServerR\x13calculatedUpstreams\x12\x1b\n" +
	"\tworker_id\x18( \x01(\tR\bworkerId\x12\x82\x01\n" +
	"\x1dauthorized_downstream_workers\x183 \x01(\v2>.controller.servers.services.v1.AuthorizedDownstreamWorkerListR\x1bauthorizedDownstreamWorkers:\x02\x18\x01J\x04\b\n" +
	"\x10\vJ\x04\b2\x103R\vcontrollersR\x12authorized_workers\"6\n" +
	"\n" +
	"WorkerInfo\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n" +
	"\aaddress\x18\x02 \x01(\tR\aaddress\"\x18\n" +
	"\x16ListHcpbWorkersRequest\"_\n" +
	"\x17ListHcpbWorkersResponse\x12D\n" +
	"\aworkers\x18\x01 \x03(\v2*.controller.servers.services.v1.WorkerInfoR\aworkers\"\x80\x01\n" +
	"\x11SessionStatistics\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12L\n" +
	"\vconnections\x18\x02 \x03(\v2*.controller.servers.services.v1.ConnectionR\vconnections\"\x7f\n" +
	"\x11StatisticsRequest\x12\x1b\n" +
	"\tworker_id\x18\n" +
	" \x01(\tR\bworkerId\x12M\n" +
	"\bsessions\x18\x14 \x03(\v21.controller.servers.services.v1.SessionStatisticsR\bsessions\"\x14\n" +
	"\x12StatisticsResponse\"\x9e\x02\n" +
	"\x12RoutingInfoRequest\x12N\n" +
	"\rworker_status\x18\x01 \x01(\v2).controller.servers.v1.ServerWorkerStatusR\fworkerStatus\x12\x1f\n" +
	"\vupdate_tags\x18\x02 \x01(\bR\n" +
	"updateTags\x12X\n" +
	")connected_unmapped_worker_key_identifiers\x18\x03 \x03(\tR%connectedUnmappedWorkerKeyIdentifiers\x12=\n" +
	"\x1bconnected_worker_public_ids\x18\x04 \x03(\tR\x18connectedWorkerPublicIds\"\xfb\x01\n" +
	"\x13RoutingInfoResponse\x12\x1b\n" +
	"\tworker_id\x18\x01 \x01(\tR\bworkerId\x12B\n" +
	"\x1dcalculated_upstream_addresses\x18\x02 \x03(\tR\x1bcalculatedUpstreamAddresses\x12\x82\x01\n" +
	"\x1dauthorized_downstream_workers\x18\x03 \x01(\v2>.controller.servers.services.v1.AuthorizedDownstreamWorkerListR\x1bauthorizedDownstreamWorkers\"\x9c\x02\n" +
	"\aSession\x12\x1d\n" +
	"\n" +
	"session_id\x18\x01 \x01(\tR\tsessionId\x12T\n" +
	"\x0esession_status\x18\x02 \x01(\x0e2-.controller.servers.services.v1.SESSIONSTATUSR\rsessionStatus\x12N\n" +
	"\fsession_type\x18\x03 \x01(\x0e2+.controller.servers.services.v1.SessionTypeR\vsessionType\x12L\n" +
	"\vconnections\x18\x04 \x03(\v2*.controller.servers.services.v1.ConnectionR\vconnections\"v\n" +
	"\x12SessionInfoRequest\x12\x1b\n" +
	"\tworker_id\x18\x01 \x01(\tR\bworkerId\x12C\n" +
	"\bsessions\x18\x02 \x03(\v2'.controller.servers.services.v1.SessionR\bsessions\"n\n" +
	"\x13SessionInfoResponse\x12W\n" +
	"\x13non_active_sessions\x18\x01 \x03(\v2'.controller.servers.services.v1.SessionR\x11nonActiveSessions*\x92\x01\n" +
	"\x10CONNECTIONSTATUS\x12 \n" +
	"\x1cCONNECTIONSTATUS_UNSPECIFIED\x10\x00\x12\x1f\n" +
	"\x1bCONNECTIONSTATUS_AUTHORIZED\x10\x01\x12\x1e\n" +
	"\x1aCONNECTIONSTATUS_CONNECTED\x10\x02\x12\x1b\n" +
	"\x17CONNECTIONSTATUS_CLOSED\x10\x03*\x9e\x01\n" +
	"\rSESSIONSTATUS\x12\x1d\n" +
	"\x19SESSIONSTATUS_UNSPECIFIED\x10\x00\x12\x19\n" +
	"\x15SESSIONSTATUS_PENDING\x10\x01\x12\x18\n" +
	"\x14SESSIONSTATUS_ACTIVE\x10\x02\x12\x1b\n" +
	"\x17SESSIONSTATUS_CANCELING\x10\x03\x12\x1c\n" +
	"\x18SESSIONSTATUS_TERMINATED\x10\x04*q\n" +
	"\x16SessionProcessingError\x12(\n" +
	"$SESSION_PROCESSING_ERROR_UNSPECIFIED\x10\x00\x12)\n" +
	"%SESSION_PROCESSING_ERROR_UNRECOGNIZED\x10\x01\x1a\x02\x18\x01*X\n" +
	"\aJOBTYPE\x12\x17\n" +
	"\x13JOBTYPE_UNSPECIFIED\x10\x00\x12\x13\n" +
	"\x0fJOBTYPE_SESSION\x10\x01\x12\x1b\n" +
	"\x17JOBTYPE_MONITOR_SESSION\x10\x02\x1a\x02\x18\x01*I\n" +
	"\n" +
	"CHANGETYPE\x12\x1a\n" +
	"\x16CHANGETYPE_UNSPECIFIED\x10\x00\x12\x1b\n" +
	"\x17CHANGETYPE_UPDATE_STATE\x10\x01\x1a\x02\x18\x01*b\n" +
	"\vSessionType\x12\x1c\n" +
	"\x18SESSION_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n" +
	"\x16SESSION_TYPE_INGRESSED\x10\x01\x12\x19\n" +
	"\x15SESSION_TYPE_RECORDED\x10\x022\xfb\x04\n" +
	"\x19ServerCoordinationService\x12l\n" +
	"\x06Status\x12-.controller.servers.services.v1.StatusRequest\x1a..controller.servers.services.v1.StatusResponse\"\x03\x88\x02\x01\x12\x84\x01\n" +
	"\x0fListHcpbWorkers\x126.controller.servers.services.v1.ListHcpbWorkersRequest\x1a7.controller.servers.services.v1.ListHcpbWorkersResponse\"\x00\x12u\n" +
	"\n" +
	"Statistics\x121.controller.servers.services.v1.StatisticsRequest\x1a2.controller.servers.services.v1.StatisticsResponse\"\x00\x12x\n" +
	"\vRoutingInfo\x122.controller.servers.services.v1.RoutingInfoRequest\x1a3.controller.servers.services.v1.RoutingInfoResponse\"\x00\x12x\n" +
	"\vSessionInfo\x122.controller.servers.services.v1.SessionInfoRequest\x1a3.controller.servers.services.v1.SessionInfoResponse\"\x00BQZOgithub.com/hashicorp/boundary/internal/gen/controller/servers/services;servicesb\x06proto3"

var (
	file_controller_servers_services_v1_server_coordination_service_proto_rawDescOnce sync.Once
	file_controller_servers_services_v1_server_coordination_service_proto_rawDescData []byte
)

func file_controller_servers_services_v1_server_coordination_service_proto_rawDescGZIP() []byte {
	file_controller_servers_services_v1_server_coordination_service_proto_rawDescOnce.Do(func() {
		file_controller_servers_services_v1_server_coordination_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_controller_servers_services_v1_server_coordination_service_proto_rawDesc), len(file_controller_servers_services_v1_server_coordination_service_proto_rawDesc)))
	})
	return file_controller_servers_services_v1_server_coordination_service_proto_rawDescData
}

var file_controller_servers_services_v1_server_coordination_service_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
var file_controller_servers_services_v1_server_coordination_service_proto_msgTypes = make([]protoimpl.MessageInfo, 21)
var file_controller_servers_services_v1_server_coordination_service_proto_goTypes = []any{
	(CONNECTIONSTATUS)(0),                  // 0: controller.servers.services.v1.CONNECTIONSTATUS
	(SESSIONSTATUS)(0),                     // 1: controller.servers.services.v1.SESSIONSTATUS
	(SessionProcessingError)(0),            // 2: controller.servers.services.v1.SessionProcessingError
	(JOBTYPE)(0),                           // 3: controller.servers.services.v1.JOBTYPE
	(CHANGETYPE)(0),                        // 4: controller.servers.services.v1.CHANGETYPE
	(SessionType)(0),                       // 5: controller.servers.services.v1.SessionType
	(UpstreamServer_TYPE)(0),               // 6: controller.servers.services.v1.UpstreamServer.TYPE
	(*Connection)(nil),                     // 7: controller.servers.services.v1.Connection
	(*SessionJobInfo)(nil),                 // 8: controller.servers.services.v1.SessionJobInfo
	(*MonitorSessionJobInfo)(nil),          // 9: controller.servers.services.v1.MonitorSessionJobInfo
	(*Job)(nil),                            // 10: controller.servers.services.v1.Job
	(*JobStatus)(nil),                      // 11: controller.servers.services.v1.JobStatus
	(*UpstreamServer)(nil),                 // 12: controller.servers.services.v1.UpstreamServer
	(*StatusRequest)(nil),                  // 13: controller.servers.services.v1.StatusRequest
	(*JobChangeRequest)(nil),               // 14: controller.servers.services.v1.JobChangeRequest
	(*AuthorizedDownstreamWorkerList)(nil), // 15: controller.servers.services.v1.AuthorizedDownstreamWorkerList
	(*StatusResponse)(nil),                 // 16: controller.servers.services.v1.StatusResponse
	(*WorkerInfo)(nil),                     // 17: controller.servers.services.v1.WorkerInfo
	(*ListHcpbWorkersRequest)(nil),         // 18: controller.servers.services.v1.ListHcpbWorkersRequest
	(*ListHcpbWorkersResponse)(nil),        // 19: controller.servers.services.v1.ListHcpbWorkersResponse
	(*SessionStatistics)(nil),              // 20: controller.servers.services.v1.SessionStatistics
	(*StatisticsRequest)(nil),              // 21: controller.servers.services.v1.StatisticsRequest
	(*StatisticsResponse)(nil),             // 22: controller.servers.services.v1.StatisticsResponse
	(*RoutingInfoRequest)(nil),             // 23: controller.servers.services.v1.RoutingInfoRequest
	(*RoutingInfoResponse)(nil),            // 24: controller.servers.services.v1.RoutingInfoResponse
	(*Session)(nil),                        // 25: controller.servers.services.v1.Session
	(*SessionInfoRequest)(nil),             // 26: controller.servers.services.v1.SessionInfoRequest
	(*SessionInfoResponse)(nil),            // 27: controller.servers.services.v1.SessionInfoResponse
	(*servers.ServerWorkerStatus)(nil),     // 28: controller.servers.v1.ServerWorkerStatus
}
var file_controller_servers_services_v1_server_coordination_service_proto_depIdxs = []int32{
	0,  // 0: controller.servers.services.v1.Connection.status:type_name -> controller.servers.services.v1.CONNECTIONSTATUS
	1,  // 1: controller.servers.services.v1.SessionJobInfo.status:type_name -> controller.servers.services.v1.SESSIONSTATUS
	7,  // 2: controller.servers.services.v1.SessionJobInfo.connections:type_name -> controller.servers.services.v1.Connection
	2,  // 3: controller.servers.services.v1.SessionJobInfo.processing_error:type_name -> controller.servers.services.v1.SessionProcessingError
	1,  // 4: controller.servers.services.v1.MonitorSessionJobInfo.status:type_name -> controller.servers.services.v1.SESSIONSTATUS
	2,  // 5: controller.servers.services.v1.MonitorSessionJobInfo.processing_error:type_name -> controller.servers.services.v1.SessionProcessingError
	3,  // 6: controller.servers.services.v1.Job.type:type_name -> controller.servers.services.v1.JOBTYPE
	8,  // 7: controller.servers.services.v1.Job.session_info:type_name -> controller.servers.services.v1.SessionJobInfo
	9,  // 8: controller.servers.services.v1.Job.monitor_session_info:type_name -> controller.servers.services.v1.MonitorSessionJobInfo
	10, // 9: controller.servers.services.v1.JobStatus.job:type_name -> controller.servers.services.v1.Job
	6,  // 10: controller.servers.services.v1.UpstreamServer.type:type_name -> controller.servers.services.v1.UpstreamServer.TYPE
	11, // 11: controller.servers.services.v1.StatusRequest.jobs:type_name -> controller.servers.services.v1.JobStatus
	28, // 12: controller.servers.services.v1.StatusRequest.worker_status:type_name -> controller.servers.v1.ServerWorkerStatus
	10, // 13: controller.servers.services.v1.JobChangeRequest.job:type_name -> controller.servers.services.v1.Job
	4,  // 14: controller.servers.services.v1.JobChangeRequest.request_type:type_name -> controller.servers.services.v1.CHANGETYPE
	14, // 15: controller.servers.services.v1.StatusResponse.jobs_requests:type_name -> controller.servers.services.v1.JobChangeRequest
	12, // 16: controller.servers.services.v1.StatusResponse.calculated_upstreams:type_name -> controller.servers.services.v1.UpstreamServer
	15, // 17: controller.servers.services.v1.StatusResponse.authorized_downstream_workers:type_name -> controller.servers.services.v1.AuthorizedDownstreamWorkerList
	17, // 18: controller.servers.services.v1.ListHcpbWorkersResponse.workers:type_name -> controller.servers.services.v1.WorkerInfo
	7,  // 19: controller.servers.services.v1.SessionStatistics.connections:type_name -> controller.servers.services.v1.Connection
	20, // 20: controller.servers.services.v1.StatisticsRequest.sessions:type_name -> controller.servers.services.v1.SessionStatistics
	28, // 21: controller.servers.services.v1.RoutingInfoRequest.worker_status:type_name -> controller.servers.v1.ServerWorkerStatus
	15, // 22: controller.servers.services.v1.RoutingInfoResponse.authorized_downstream_workers:type_name -> controller.servers.services.v1.AuthorizedDownstreamWorkerList
	1,  // 23: controller.servers.services.v1.Session.session_status:type_name -> controller.servers.services.v1.SESSIONSTATUS
	5,  // 24: controller.servers.services.v1.Session.session_type:type_name -> controller.servers.services.v1.SessionType
	7,  // 25: controller.servers.services.v1.Session.connections:type_name -> controller.servers.services.v1.Connection
	25, // 26: controller.servers.services.v1.SessionInfoRequest.sessions:type_name -> controller.servers.services.v1.Session
	25, // 27: controller.servers.services.v1.SessionInfoResponse.non_active_sessions:type_name -> controller.servers.services.v1.Session
	13, // 28: controller.servers.services.v1.ServerCoordinationService.Status:input_type -> controller.servers.services.v1.StatusRequest
	18, // 29: controller.servers.services.v1.ServerCoordinationService.ListHcpbWorkers:input_type -> controller.servers.services.v1.ListHcpbWorkersRequest
	21, // 30: controller.servers.services.v1.ServerCoordinationService.Statistics:input_type -> controller.servers.services.v1.StatisticsRequest
	23, // 31: controller.servers.services.v1.ServerCoordinationService.RoutingInfo:input_type -> controller.servers.services.v1.RoutingInfoRequest
	26, // 32: controller.servers.services.v1.ServerCoordinationService.SessionInfo:input_type -> controller.servers.services.v1.SessionInfoRequest
	16, // 33: controller.servers.services.v1.ServerCoordinationService.Status:output_type -> controller.servers.services.v1.StatusResponse
	19, // 34: controller.servers.services.v1.ServerCoordinationService.ListHcpbWorkers:output_type -> controller.servers.services.v1.ListHcpbWorkersResponse
	22, // 35: controller.servers.services.v1.ServerCoordinationService.Statistics:output_type -> controller.servers.services.v1.StatisticsResponse
	24, // 36: controller.servers.services.v1.ServerCoordinationService.RoutingInfo:output_type -> controller.servers.services.v1.RoutingInfoResponse
	27, // 37: controller.servers.services.v1.ServerCoordinationService.SessionInfo:output_type -> controller.servers.services.v1.SessionInfoResponse
	33, // [33:38] is the sub-list for method output_type
	28, // [28:33] is the sub-list for method input_type
	28, // [28:28] is the sub-list for extension type_name
	28, // [28:28] is the sub-list for extension extendee
	0,  // [0:28] is the sub-list for field type_name
}

func init() { file_controller_servers_services_v1_server_coordination_service_proto_init() }
func file_controller_servers_services_v1_server_coordination_service_proto_init() {
	if File_controller_servers_services_v1_server_coordination_service_proto != nil {
		return
	}
	file_controller_servers_services_v1_server_coordination_service_proto_msgTypes[3].OneofWrappers = []any{
		(*Job_SessionInfo)(nil),
		(*Job_MonitorSessionInfo)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_controller_servers_services_v1_server_coordination_service_proto_rawDesc), len(file_controller_servers_services_v1_server_coordination_service_proto_rawDesc)),
			NumEnums:      7,
			NumMessages:   21,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_controller_servers_services_v1_server_coordination_service_proto_goTypes,
		DependencyIndexes: file_controller_servers_services_v1_server_coordination_service_proto_depIdxs,
		EnumInfos:         file_controller_servers_services_v1_server_coordination_service_proto_enumTypes,
		MessageInfos:      file_controller_servers_services_v1_server_coordination_service_proto_msgTypes,
	}.Build()
	File_controller_servers_services_v1_server_coordination_service_proto = out.File
	file_controller_servers_services_v1_server_coordination_service_proto_goTypes = nil
	file_controller_servers_services_v1_server_coordination_service_proto_depIdxs = nil
}
