// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        (unknown)
// source: xyz/block/ftl/language/v1/service.proto

package languagepb

import (
	v11 "github.com/block/ftl/backend/protos/xyz/block/ftl/v1"
	v1 "github.com/block/ftl/common/protos/xyz/block/ftl/schema/v1"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	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 Error_ErrorLevel int32

const (
	Error_ERROR_LEVEL_UNSPECIFIED Error_ErrorLevel = 0
	Error_ERROR_LEVEL_INFO        Error_ErrorLevel = 1
	Error_ERROR_LEVEL_WARN        Error_ErrorLevel = 2
	Error_ERROR_LEVEL_ERROR       Error_ErrorLevel = 3
)

// Enum value maps for Error_ErrorLevel.
var (
	Error_ErrorLevel_name = map[int32]string{
		0: "ERROR_LEVEL_UNSPECIFIED",
		1: "ERROR_LEVEL_INFO",
		2: "ERROR_LEVEL_WARN",
		3: "ERROR_LEVEL_ERROR",
	}
	Error_ErrorLevel_value = map[string]int32{
		"ERROR_LEVEL_UNSPECIFIED": 0,
		"ERROR_LEVEL_INFO":        1,
		"ERROR_LEVEL_WARN":        2,
		"ERROR_LEVEL_ERROR":       3,
	}
)

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

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

func (Error_ErrorLevel) Descriptor() protoreflect.EnumDescriptor {
	return file_xyz_block_ftl_language_v1_service_proto_enumTypes[0].Descriptor()
}

func (Error_ErrorLevel) Type() protoreflect.EnumType {
	return &file_xyz_block_ftl_language_v1_service_proto_enumTypes[0]
}

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

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

type Error_ErrorType int32

const (
	Error_ERROR_TYPE_UNSPECIFIED Error_ErrorType = 0
	Error_ERROR_TYPE_FTL         Error_ErrorType = 1
	// Compiler errors are errors that are from the compiler. This is useful to avoid duplicate errors
	// being shown to the user when combining errors from multiple sources (eg: an IDE showing compiler
	// errors and FTL errors via LSP).
	Error_ERROR_TYPE_COMPILER Error_ErrorType = 2
)

// Enum value maps for Error_ErrorType.
var (
	Error_ErrorType_name = map[int32]string{
		0: "ERROR_TYPE_UNSPECIFIED",
		1: "ERROR_TYPE_FTL",
		2: "ERROR_TYPE_COMPILER",
	}
	Error_ErrorType_value = map[string]int32{
		"ERROR_TYPE_UNSPECIFIED": 0,
		"ERROR_TYPE_FTL":         1,
		"ERROR_TYPE_COMPILER":    2,
	}
)

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

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

func (Error_ErrorType) Descriptor() protoreflect.EnumDescriptor {
	return file_xyz_block_ftl_language_v1_service_proto_enumTypes[1].Descriptor()
}

func (Error_ErrorType) Type() protoreflect.EnumType {
	return &file_xyz_block_ftl_language_v1_service_proto_enumTypes[1]
}

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

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

// ModuleConfig contains the configuration for a module, found in the module's ftl.toml file.
type ModuleConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name of the module
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Absolute path to the module's directory
	Dir string `protobuf:"bytes,2,opt,name=dir,proto3" json:"dir,omitempty"`
	// The language of the module
	Language string `protobuf:"bytes,3,opt,name=language,proto3" json:"language,omitempty"`
	// Absolute path to the directory containing all of this module's build artifacts for deployments
	DeployDir string `protobuf:"bytes,4,opt,name=deploy_dir,json=deployDir,proto3" json:"deploy_dir,omitempty"`
	// Build is the command to build the module.
	Build *string `protobuf:"bytes,5,opt,name=build,proto3,oneof" json:"build,omitempty"`
	// DevModeBuild is the command to build the module in dev mode.
	DevModeBuild *string `protobuf:"bytes,6,opt,name=dev_mode_build,json=devModeBuild,proto3,oneof" json:"dev_mode_build,omitempty"`
	// Build lock path to prevent concurrent builds
	BuildLock string `protobuf:"bytes,7,opt,name=build_lock,json=buildLock,proto3" json:"build_lock,omitempty"`
	// Patterns to watch for file changes
	Watch []string `protobuf:"bytes,9,rep,name=watch,proto3" json:"watch,omitempty"`
	// LanguageConfig contains any metadata specific to a specific language.
	// These are stored in the ftl.toml file under the same key as the language (eg: "go", "java")
	LanguageConfig *structpb.Struct `protobuf:"bytes,10,opt,name=language_config,json=languageConfig,proto3" json:"language_config,omitempty"`
	// The root directory containing the SQL files, relative to the module directory.
	SqlRootDir string `protobuf:"bytes,11,opt,name=sql_root_dir,json=sqlRootDir,proto3" json:"sql_root_dir,omitempty"`
	// The realm of the module
	Realm         string `protobuf:"bytes,12,opt,name=realm,proto3" json:"realm,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ModuleConfig) ProtoMessage() {}

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

func (x *ModuleConfig) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ModuleConfig) GetDir() string {
	if x != nil {
		return x.Dir
	}
	return ""
}

func (x *ModuleConfig) GetLanguage() string {
	if x != nil {
		return x.Language
	}
	return ""
}

func (x *ModuleConfig) GetDeployDir() string {
	if x != nil {
		return x.DeployDir
	}
	return ""
}

func (x *ModuleConfig) GetBuild() string {
	if x != nil && x.Build != nil {
		return *x.Build
	}
	return ""
}

func (x *ModuleConfig) GetDevModeBuild() string {
	if x != nil && x.DevModeBuild != nil {
		return *x.DevModeBuild
	}
	return ""
}

func (x *ModuleConfig) GetBuildLock() string {
	if x != nil {
		return x.BuildLock
	}
	return ""
}

func (x *ModuleConfig) GetWatch() []string {
	if x != nil {
		return x.Watch
	}
	return nil
}

func (x *ModuleConfig) GetLanguageConfig() *structpb.Struct {
	if x != nil {
		return x.LanguageConfig
	}
	return nil
}

func (x *ModuleConfig) GetSqlRootDir() string {
	if x != nil {
		return x.SqlRootDir
	}
	return ""
}

func (x *ModuleConfig) GetRealm() string {
	if x != nil {
		return x.Realm
	}
	return ""
}

// ProjectConfig contains the configuration for a project, found in the ftl-project.toml file.
type ProjectConfig struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Dir           string                 `protobuf:"bytes,1,opt,name=dir,proto3" json:"dir,omitempty"`
	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	NoGit         bool                   `protobuf:"varint,3,opt,name=no_git,json=noGit,proto3" json:"no_git,omitempty"`
	Hermit        bool                   `protobuf:"varint,4,opt,name=hermit,proto3" json:"hermit,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ProjectConfig) ProtoMessage() {}

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

func (x *ProjectConfig) GetDir() string {
	if x != nil {
		return x.Dir
	}
	return ""
}

func (x *ProjectConfig) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ProjectConfig) GetNoGit() bool {
	if x != nil {
		return x.NoGit
	}
	return false
}

func (x *ProjectConfig) GetHermit() bool {
	if x != nil {
		return x.Hermit
	}
	return false
}

type GetDependenciesRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ModuleConfig  *ModuleConfig          `protobuf:"bytes,1,opt,name=module_config,json=moduleConfig,proto3" json:"module_config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetDependenciesRequest) ProtoMessage() {}

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

func (x *GetDependenciesRequest) GetModuleConfig() *ModuleConfig {
	if x != nil {
		return x.ModuleConfig
	}
	return nil
}

type GetDependenciesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Modules       []string               `protobuf:"bytes,1,rep,name=modules,proto3" json:"modules,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GetDependenciesResponse) ProtoMessage() {}

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

func (x *GetDependenciesResponse) GetModules() []string {
	if x != nil {
		return x.Modules
	}
	return nil
}

// BuildContext contains contextual information needed to build.
//
// Plugins must include the build context's id when a build succeeds or fails.
// For automatic rebuilds, plugins must use the most recent build context they have received.
type BuildContext struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The configuration for the module
	ModuleConfig *ModuleConfig `protobuf:"bytes,1,opt,name=module_config,json=moduleConfig,proto3" json:"module_config,omitempty"`
	// The FTL schema including all dependencies
	Schema *v1.Schema `protobuf:"bytes,2,opt,name=schema,proto3" json:"schema,omitempty"`
	// The dependencies for the module
	Dependencies []string `protobuf:"bytes,3,rep,name=dependencies,proto3" json:"dependencies,omitempty"`
	// Build environment provides environment variables to be set for the build command
	BuildEnv      []string `protobuf:"bytes,4,rep,name=build_env,json=buildEnv,proto3" json:"build_env,omitempty"`
	Os            string   `protobuf:"bytes,5,opt,name=os,proto3" json:"os,omitempty"`
	Arch          string   `protobuf:"bytes,6,opt,name=arch,proto3" json:"arch,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BuildContext) ProtoMessage() {}

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

func (x *BuildContext) GetModuleConfig() *ModuleConfig {
	if x != nil {
		return x.ModuleConfig
	}
	return nil
}

func (x *BuildContext) GetSchema() *v1.Schema {
	if x != nil {
		return x.Schema
	}
	return nil
}

func (x *BuildContext) GetDependencies() []string {
	if x != nil {
		return x.Dependencies
	}
	return nil
}

func (x *BuildContext) GetBuildEnv() []string {
	if x != nil {
		return x.BuildEnv
	}
	return nil
}

func (x *BuildContext) GetOs() string {
	if x != nil {
		return x.Os
	}
	return ""
}

func (x *BuildContext) GetArch() string {
	if x != nil {
		return x.Arch
	}
	return ""
}

type BuildContextUpdatedRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	BuildContext  *BuildContext          `protobuf:"bytes,1,opt,name=build_context,json=buildContext,proto3" json:"build_context,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BuildContextUpdatedRequest) ProtoMessage() {}

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

func (x *BuildContextUpdatedRequest) GetBuildContext() *BuildContext {
	if x != nil {
		return x.BuildContext
	}
	return nil
}

type BuildContextUpdatedResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BuildContextUpdatedResponse) ProtoMessage() {}

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

// Error contains information about an error that occurred during a build.
// Errors do not always cause a build failure. Use lesser levels to help guide the user.
type Error struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Msg           string                 `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"`
	Level         Error_ErrorLevel       `protobuf:"varint,4,opt,name=level,proto3,enum=xyz.block.ftl.language.v1.Error_ErrorLevel" json:"level,omitempty"`
	Pos           *Position              `protobuf:"bytes,5,opt,name=pos,proto3,oneof" json:"pos,omitempty"`
	Type          Error_ErrorType        `protobuf:"varint,6,opt,name=type,proto3,enum=xyz.block.ftl.language.v1.Error_ErrorType" json:"type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Error) ProtoMessage() {}

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

func (x *Error) GetMsg() string {
	if x != nil {
		return x.Msg
	}
	return ""
}

func (x *Error) GetLevel() Error_ErrorLevel {
	if x != nil {
		return x.Level
	}
	return Error_ERROR_LEVEL_UNSPECIFIED
}

func (x *Error) GetPos() *Position {
	if x != nil {
		return x.Pos
	}
	return nil
}

func (x *Error) GetType() Error_ErrorType {
	if x != nil {
		return x.Type
	}
	return Error_ERROR_TYPE_UNSPECIFIED
}

type Position struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Filename      string                 `protobuf:"bytes,1,opt,name=filename,proto3" json:"filename,omitempty"`
	Line          int64                  `protobuf:"varint,2,opt,name=line,proto3" json:"line,omitempty"`
	StartColumn   int64                  `protobuf:"varint,3,opt,name=start_column,json=startColumn,proto3" json:"start_column,omitempty"`
	EndColumn     int64                  `protobuf:"varint,4,opt,name=end_column,json=endColumn,proto3" json:"end_column,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Position) ProtoMessage() {}

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

func (x *Position) GetFilename() string {
	if x != nil {
		return x.Filename
	}
	return ""
}

func (x *Position) GetLine() int64 {
	if x != nil {
		return x.Line
	}
	return 0
}

func (x *Position) GetStartColumn() int64 {
	if x != nil {
		return x.StartColumn
	}
	return 0
}

func (x *Position) GetEndColumn() int64 {
	if x != nil {
		return x.EndColumn
	}
	return 0
}

type ErrorList struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Errors        []*Error               `protobuf:"bytes,1,rep,name=errors,proto3" json:"errors,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ErrorList) ProtoMessage() {}

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

func (x *ErrorList) GetErrors() []*Error {
	if x != nil {
		return x.Errors
	}
	return nil
}

// Request to build a module.
type BuildRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	ProjectConfig *ProjectConfig         `protobuf:"bytes,1,opt,name=project_config,json=projectConfig,proto3" json:"project_config,omitempty"`
	// The path to the directory containing all module stubs. Each module stub is in a subdirectory.
	StubsRoot string `protobuf:"bytes,2,opt,name=stubs_root,json=stubsRoot,proto3" json:"stubs_root,omitempty"`
	// Indicates whether to watch for file changes and automatically rebuild
	DevModeBuild  bool          `protobuf:"varint,3,opt,name=dev_mode_build,json=devModeBuild,proto3" json:"dev_mode_build,omitempty"`
	BuildContext  *BuildContext `protobuf:"bytes,4,opt,name=build_context,json=buildContext,proto3" json:"build_context,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BuildRequest) ProtoMessage() {}

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

func (x *BuildRequest) GetProjectConfig() *ProjectConfig {
	if x != nil {
		return x.ProjectConfig
	}
	return nil
}

func (x *BuildRequest) GetStubsRoot() string {
	if x != nil {
		return x.StubsRoot
	}
	return ""
}

func (x *BuildRequest) GetDevModeBuild() bool {
	if x != nil {
		return x.DevModeBuild
	}
	return false
}

func (x *BuildRequest) GetBuildContext() *BuildContext {
	if x != nil {
		return x.BuildContext
	}
	return nil
}

// BuildSuccess should be sent when a build succeeds.
//
// FTL may ignore this event if it does not match FTL's current build context and state.
type BuildSuccess struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Module schema for the built module
	Module *v1.Module `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"`
	// Paths for files/directories to be deployed
	Deploy []string `protobuf:"bytes,2,rep,name=deploy,proto3" json:"deploy,omitempty"`
	// Name of the docker image to use for the runner
	DockerImage string `protobuf:"bytes,3,opt,name=docker_image,json=dockerImage,proto3" json:"docker_image,omitempty"`
	// Errors contains any errors that occurred during the build
	// No errors can have a level of ERROR, instead a BuildFailure should be sent
	// Instead this is useful for INFO and WARN level errors.
	Errors *ErrorList `protobuf:"bytes,4,opt,name=errors,proto3" json:"errors,omitempty"`
	// Dev mode endpoint URI. If this is set then rather than trying to deploy the module, FTL will start a runner that
	// connects to this endpoint.
	DevEndpoint *string `protobuf:"bytes,5,opt,name=dev_endpoint,json=devEndpoint,proto3,oneof" json:"dev_endpoint,omitempty"`
	// Dev mode debug port
	DebugPort *int32 `protobuf:"varint,6,opt,name=debug_port,json=debugPort,proto3,oneof" json:"debug_port,omitempty"`
	// Dev mode hot reload endpoint, this is used to allow the runner to communicate info back to the running process
	DevHotReloadEndpoint *string `protobuf:"bytes,7,opt,name=dev_hot_reload_endpoint,json=devHotReloadEndpoint,proto3,oneof" json:"dev_hot_reload_endpoint,omitempty"`
	DevHotReloadVersion  *int64  `protobuf:"varint,8,opt,name=dev_hot_reload_version,json=devHotReloadVersion,proto3,oneof" json:"dev_hot_reload_version,omitempty"`
	// Files modified during the build, relative to the build dir
	ModifiedFiles []string `protobuf:"bytes,9,rep,name=modified_files,json=modifiedFiles,proto3" json:"modified_files,omitempty"`
	// If there have been no structural changes it is possible that no further action is required
	RedeployNotRequired bool `protobuf:"varint,10,opt,name=redeploy_not_required,json=redeployNotRequired,proto3" json:"redeploy_not_required,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*BuildSuccess) ProtoMessage() {}

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

func (x *BuildSuccess) GetModule() *v1.Module {
	if x != nil {
		return x.Module
	}
	return nil
}

func (x *BuildSuccess) GetDeploy() []string {
	if x != nil {
		return x.Deploy
	}
	return nil
}

func (x *BuildSuccess) GetDockerImage() string {
	if x != nil {
		return x.DockerImage
	}
	return ""
}

func (x *BuildSuccess) GetErrors() *ErrorList {
	if x != nil {
		return x.Errors
	}
	return nil
}

func (x *BuildSuccess) GetDevEndpoint() string {
	if x != nil && x.DevEndpoint != nil {
		return *x.DevEndpoint
	}
	return ""
}

func (x *BuildSuccess) GetDebugPort() int32 {
	if x != nil && x.DebugPort != nil {
		return *x.DebugPort
	}
	return 0
}

func (x *BuildSuccess) GetDevHotReloadEndpoint() string {
	if x != nil && x.DevHotReloadEndpoint != nil {
		return *x.DevHotReloadEndpoint
	}
	return ""
}

func (x *BuildSuccess) GetDevHotReloadVersion() int64 {
	if x != nil && x.DevHotReloadVersion != nil {
		return *x.DevHotReloadVersion
	}
	return 0
}

func (x *BuildSuccess) GetModifiedFiles() []string {
	if x != nil {
		return x.ModifiedFiles
	}
	return nil
}

func (x *BuildSuccess) GetRedeployNotRequired() bool {
	if x != nil {
		return x.RedeployNotRequired
	}
	return false
}

// BuildFailure should be sent when a build fails.
//
// FTL may ignore this event if it does not match FTL's current build context and state.
type BuildFailure struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Errors contains any errors that occurred during the build
	Errors *ErrorList `protobuf:"bytes,1,opt,name=errors,proto3" json:"errors,omitempty"`
	// Indicates the plugin determined that the dependencies in the BuildContext are out of date.
	// If a Build stream is being kept open for automatic rebuilds, FTL will call GetDependencies, followed by
	// BuildContextUpdated.
	InvalidateDependencies bool `protobuf:"varint,2,opt,name=invalidate_dependencies,json=invalidateDependencies,proto3" json:"invalidate_dependencies,omitempty"`
	// Files modified during the build, relative to the build dir
	ModifiedFiles []string `protobuf:"bytes,9,rep,name=modified_files,json=modifiedFiles,proto3" json:"modified_files,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BuildFailure) ProtoMessage() {}

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

func (x *BuildFailure) GetErrors() *ErrorList {
	if x != nil {
		return x.Errors
	}
	return nil
}

func (x *BuildFailure) GetInvalidateDependencies() bool {
	if x != nil {
		return x.InvalidateDependencies
	}
	return false
}

func (x *BuildFailure) GetModifiedFiles() []string {
	if x != nil {
		return x.ModifiedFiles
	}
	return nil
}

// Every type of message that can be streamed from the language plugin for a build.
type BuildResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Event:
	//
	//	*BuildResponse_BuildSuccess
	//	*BuildResponse_BuildFailure
	Event         isBuildResponse_Event `protobuf_oneof:"event"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BuildResponse) ProtoMessage() {}

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

func (x *BuildResponse) GetEvent() isBuildResponse_Event {
	if x != nil {
		return x.Event
	}
	return nil
}

func (x *BuildResponse) GetBuildSuccess() *BuildSuccess {
	if x != nil {
		if x, ok := x.Event.(*BuildResponse_BuildSuccess); ok {
			return x.BuildSuccess
		}
	}
	return nil
}

func (x *BuildResponse) GetBuildFailure() *BuildFailure {
	if x != nil {
		if x, ok := x.Event.(*BuildResponse_BuildFailure); ok {
			return x.BuildFailure
		}
	}
	return nil
}

type isBuildResponse_Event interface {
	isBuildResponse_Event()
}

type BuildResponse_BuildSuccess struct {
	BuildSuccess *BuildSuccess `protobuf:"bytes,1,opt,name=build_success,json=buildSuccess,proto3,oneof"`
}

type BuildResponse_BuildFailure struct {
	BuildFailure *BuildFailure `protobuf:"bytes,2,opt,name=build_failure,json=buildFailure,proto3,oneof"`
}

func (*BuildResponse_BuildSuccess) isBuildResponse_Event() {}

func (*BuildResponse_BuildFailure) isBuildResponse_Event() {}

type GenerateStubsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The directory path to generate stubs into
	Dir string `protobuf:"bytes,1,opt,name=dir,proto3" json:"dir,omitempty"`
	// The schema of the module to generate stubs for
	Module *v1.Module `protobuf:"bytes,2,opt,name=module,proto3" json:"module,omitempty"`
	// The module's configuration to generate stubs for
	ModuleConfig *ModuleConfig `protobuf:"bytes,3,opt,name=module_config,json=moduleConfig,proto3" json:"module_config,omitempty"`
	// Native module configuration is the configuration for a module that uses the plugin's language, if
	// the main moduleConfig provided is of a different language. It is provided as a mechanism to derive
	// language specific information. For example, the language version.
	NativeModuleConfig *ModuleConfig `protobuf:"bytes,4,opt,name=native_module_config,json=nativeModuleConfig,proto3,oneof" json:"native_module_config,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*GenerateStubsRequest) ProtoMessage() {}

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

func (x *GenerateStubsRequest) GetDir() string {
	if x != nil {
		return x.Dir
	}
	return ""
}

func (x *GenerateStubsRequest) GetModule() *v1.Module {
	if x != nil {
		return x.Module
	}
	return nil
}

func (x *GenerateStubsRequest) GetModuleConfig() *ModuleConfig {
	if x != nil {
		return x.ModuleConfig
	}
	return nil
}

func (x *GenerateStubsRequest) GetNativeModuleConfig() *ModuleConfig {
	if x != nil {
		return x.NativeModuleConfig
	}
	return nil
}

type GenerateStubsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GenerateStubsResponse) ProtoMessage() {}

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

type SyncStubReferencesRequest struct {
	state        protoimpl.MessageState `protogen:"open.v1"`
	ModuleConfig *ModuleConfig          `protobuf:"bytes,1,opt,name=module_config,json=moduleConfig,proto3" json:"module_config,omitempty"`
	// The path of the directory containing all module stubs. Each module is in a subdirectory
	StubsRoot string `protobuf:"bytes,2,opt,name=stubs_root,json=stubsRoot,proto3" json:"stubs_root,omitempty"`
	// The names of all modules that have had stubs generated
	Modules []string `protobuf:"bytes,3,rep,name=modules,proto3" json:"modules,omitempty"`
	// The complete FTL schema
	Schema        *v1.Schema `protobuf:"bytes,4,opt,name=schema,proto3" json:"schema,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SyncStubReferencesRequest) ProtoMessage() {}

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

func (x *SyncStubReferencesRequest) GetModuleConfig() *ModuleConfig {
	if x != nil {
		return x.ModuleConfig
	}
	return nil
}

func (x *SyncStubReferencesRequest) GetStubsRoot() string {
	if x != nil {
		return x.StubsRoot
	}
	return ""
}

func (x *SyncStubReferencesRequest) GetModules() []string {
	if x != nil {
		return x.Modules
	}
	return nil
}

func (x *SyncStubReferencesRequest) GetSchema() *v1.Schema {
	if x != nil {
		return x.Schema
	}
	return nil
}

type SyncStubReferencesResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SyncStubReferencesResponse) ProtoMessage() {}

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

var File_xyz_block_ftl_language_v1_service_proto protoreflect.FileDescriptor

const file_xyz_block_ftl_language_v1_service_proto_rawDesc = "" +
	"\n" +
	"'xyz/block/ftl/language/v1/service.proto\x12\x19xyz.block.ftl.language.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a$xyz/block/ftl/schema/v1/schema.proto\x1a\x1axyz/block/ftl/v1/ftl.proto\"\x81\x03\n" +
	"\fModuleConfig\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" +
	"\x03dir\x18\x02 \x01(\tR\x03dir\x12\x1a\n" +
	"\blanguage\x18\x03 \x01(\tR\blanguage\x12\x1d\n" +
	"\n" +
	"deploy_dir\x18\x04 \x01(\tR\tdeployDir\x12\x19\n" +
	"\x05build\x18\x05 \x01(\tH\x00R\x05build\x88\x01\x01\x12)\n" +
	"\x0edev_mode_build\x18\x06 \x01(\tH\x01R\fdevModeBuild\x88\x01\x01\x12\x1d\n" +
	"\n" +
	"build_lock\x18\a \x01(\tR\tbuildLock\x12\x14\n" +
	"\x05watch\x18\t \x03(\tR\x05watch\x12@\n" +
	"\x0flanguage_config\x18\n" +
	" \x01(\v2\x17.google.protobuf.StructR\x0elanguageConfig\x12 \n" +
	"\fsql_root_dir\x18\v \x01(\tR\n" +
	"sqlRootDir\x12\x14\n" +
	"\x05realm\x18\f \x01(\tR\x05realmB\b\n" +
	"\x06_buildB\x11\n" +
	"\x0f_dev_mode_build\"d\n" +
	"\rProjectConfig\x12\x10\n" +
	"\x03dir\x18\x01 \x01(\tR\x03dir\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12\x15\n" +
	"\x06no_git\x18\x03 \x01(\bR\x05noGit\x12\x16\n" +
	"\x06hermit\x18\x04 \x01(\bR\x06hermit\"f\n" +
	"\x16GetDependenciesRequest\x12L\n" +
	"\rmodule_config\x18\x01 \x01(\v2'.xyz.block.ftl.language.v1.ModuleConfigR\fmoduleConfig\"3\n" +
	"\x17GetDependenciesResponse\x12\x18\n" +
	"\amodules\x18\x01 \x03(\tR\amodules\"\xfa\x01\n" +
	"\fBuildContext\x12L\n" +
	"\rmodule_config\x18\x01 \x01(\v2'.xyz.block.ftl.language.v1.ModuleConfigR\fmoduleConfig\x127\n" +
	"\x06schema\x18\x02 \x01(\v2\x1f.xyz.block.ftl.schema.v1.SchemaR\x06schema\x12\"\n" +
	"\fdependencies\x18\x03 \x03(\tR\fdependencies\x12\x1b\n" +
	"\tbuild_env\x18\x04 \x03(\tR\bbuildEnv\x12\x0e\n" +
	"\x02os\x18\x05 \x01(\tR\x02os\x12\x12\n" +
	"\x04arch\x18\x06 \x01(\tR\x04arch\"j\n" +
	"\x1aBuildContextUpdatedRequest\x12L\n" +
	"\rbuild_context\x18\x01 \x01(\v2'.xyz.block.ftl.language.v1.BuildContextR\fbuildContext\"\x1d\n" +
	"\x1bBuildContextUpdatedResponse\"\xa4\x03\n" +
	"\x05Error\x12\x10\n" +
	"\x03msg\x18\x01 \x01(\tR\x03msg\x12A\n" +
	"\x05level\x18\x04 \x01(\x0e2+.xyz.block.ftl.language.v1.Error.ErrorLevelR\x05level\x12:\n" +
	"\x03pos\x18\x05 \x01(\v2#.xyz.block.ftl.language.v1.PositionH\x00R\x03pos\x88\x01\x01\x12>\n" +
	"\x04type\x18\x06 \x01(\x0e2*.xyz.block.ftl.language.v1.Error.ErrorTypeR\x04type\"l\n" +
	"\n" +
	"ErrorLevel\x12\x1b\n" +
	"\x17ERROR_LEVEL_UNSPECIFIED\x10\x00\x12\x14\n" +
	"\x10ERROR_LEVEL_INFO\x10\x01\x12\x14\n" +
	"\x10ERROR_LEVEL_WARN\x10\x02\x12\x15\n" +
	"\x11ERROR_LEVEL_ERROR\x10\x03\"T\n" +
	"\tErrorType\x12\x1a\n" +
	"\x16ERROR_TYPE_UNSPECIFIED\x10\x00\x12\x12\n" +
	"\x0eERROR_TYPE_FTL\x10\x01\x12\x17\n" +
	"\x13ERROR_TYPE_COMPILER\x10\x02B\x06\n" +
	"\x04_pos\"|\n" +
	"\bPosition\x12\x1a\n" +
	"\bfilename\x18\x01 \x01(\tR\bfilename\x12\x12\n" +
	"\x04line\x18\x02 \x01(\x03R\x04line\x12!\n" +
	"\fstart_column\x18\x03 \x01(\x03R\vstartColumn\x12\x1d\n" +
	"\n" +
	"end_column\x18\x04 \x01(\x03R\tendColumn\"E\n" +
	"\tErrorList\x128\n" +
	"\x06errors\x18\x01 \x03(\v2 .xyz.block.ftl.language.v1.ErrorR\x06errors\"\xf2\x01\n" +
	"\fBuildRequest\x12O\n" +
	"\x0eproject_config\x18\x01 \x01(\v2(.xyz.block.ftl.language.v1.ProjectConfigR\rprojectConfig\x12\x1d\n" +
	"\n" +
	"stubs_root\x18\x02 \x01(\tR\tstubsRoot\x12$\n" +
	"\x0edev_mode_build\x18\x03 \x01(\bR\fdevModeBuild\x12L\n" +
	"\rbuild_context\x18\x04 \x01(\v2'.xyz.block.ftl.language.v1.BuildContextR\fbuildContext\"\xb4\x04\n" +
	"\fBuildSuccess\x127\n" +
	"\x06module\x18\x01 \x01(\v2\x1f.xyz.block.ftl.schema.v1.ModuleR\x06module\x12\x16\n" +
	"\x06deploy\x18\x02 \x03(\tR\x06deploy\x12!\n" +
	"\fdocker_image\x18\x03 \x01(\tR\vdockerImage\x12<\n" +
	"\x06errors\x18\x04 \x01(\v2$.xyz.block.ftl.language.v1.ErrorListR\x06errors\x12&\n" +
	"\fdev_endpoint\x18\x05 \x01(\tH\x00R\vdevEndpoint\x88\x01\x01\x12\"\n" +
	"\n" +
	"debug_port\x18\x06 \x01(\x05H\x01R\tdebugPort\x88\x01\x01\x12:\n" +
	"\x17dev_hot_reload_endpoint\x18\a \x01(\tH\x02R\x14devHotReloadEndpoint\x88\x01\x01\x128\n" +
	"\x16dev_hot_reload_version\x18\b \x01(\x03H\x03R\x13devHotReloadVersion\x88\x01\x01\x12%\n" +
	"\x0emodified_files\x18\t \x03(\tR\rmodifiedFiles\x122\n" +
	"\x15redeploy_not_required\x18\n" +
	" \x01(\bR\x13redeployNotRequiredB\x0f\n" +
	"\r_dev_endpointB\r\n" +
	"\v_debug_portB\x1a\n" +
	"\x18_dev_hot_reload_endpointB\x19\n" +
	"\x17_dev_hot_reload_version\"\xac\x01\n" +
	"\fBuildFailure\x12<\n" +
	"\x06errors\x18\x01 \x01(\v2$.xyz.block.ftl.language.v1.ErrorListR\x06errors\x127\n" +
	"\x17invalidate_dependencies\x18\x02 \x01(\bR\x16invalidateDependencies\x12%\n" +
	"\x0emodified_files\x18\t \x03(\tR\rmodifiedFiles\"\xb8\x01\n" +
	"\rBuildResponse\x12N\n" +
	"\rbuild_success\x18\x01 \x01(\v2'.xyz.block.ftl.language.v1.BuildSuccessH\x00R\fbuildSuccess\x12N\n" +
	"\rbuild_failure\x18\x02 \x01(\v2'.xyz.block.ftl.language.v1.BuildFailureH\x00R\fbuildFailureB\a\n" +
	"\x05event\"\xa8\x02\n" +
	"\x14GenerateStubsRequest\x12\x10\n" +
	"\x03dir\x18\x01 \x01(\tR\x03dir\x127\n" +
	"\x06module\x18\x02 \x01(\v2\x1f.xyz.block.ftl.schema.v1.ModuleR\x06module\x12L\n" +
	"\rmodule_config\x18\x03 \x01(\v2'.xyz.block.ftl.language.v1.ModuleConfigR\fmoduleConfig\x12^\n" +
	"\x14native_module_config\x18\x04 \x01(\v2'.xyz.block.ftl.language.v1.ModuleConfigH\x00R\x12nativeModuleConfig\x88\x01\x01B\x17\n" +
	"\x15_native_module_config\"\x17\n" +
	"\x15GenerateStubsResponse\"\xdb\x01\n" +
	"\x19SyncStubReferencesRequest\x12L\n" +
	"\rmodule_config\x18\x01 \x01(\v2'.xyz.block.ftl.language.v1.ModuleConfigR\fmoduleConfig\x12\x1d\n" +
	"\n" +
	"stubs_root\x18\x02 \x01(\tR\tstubsRoot\x12\x18\n" +
	"\amodules\x18\x03 \x03(\tR\amodules\x127\n" +
	"\x06schema\x18\x04 \x01(\v2\x1f.xyz.block.ftl.schema.v1.SchemaR\x06schema\"\x1c\n" +
	"\x1aSyncStubReferencesResponse2\xab\x04\n" +
	"\x0fLanguageService\x12J\n" +
	"\x04Ping\x12\x1d.xyz.block.ftl.v1.PingRequest\x1a\x1e.xyz.block.ftl.v1.PingResponse\"\x03\x90\x02\x01\x12x\n" +
	"\x0fGetDependencies\x121.xyz.block.ftl.language.v1.GetDependenciesRequest\x1a2.xyz.block.ftl.language.v1.GetDependenciesResponse\x12Z\n" +
	"\x05Build\x12'.xyz.block.ftl.language.v1.BuildRequest\x1a(.xyz.block.ftl.language.v1.BuildResponse\x12r\n" +
	"\rGenerateStubs\x12/.xyz.block.ftl.language.v1.GenerateStubsRequest\x1a0.xyz.block.ftl.language.v1.GenerateStubsResponse\x12\x81\x01\n" +
	"\x12SyncStubReferences\x124.xyz.block.ftl.language.v1.SyncStubReferencesRequest\x1a5.xyz.block.ftl.language.v1.SyncStubReferencesResponseBLP\x01ZHgithub.com/block/ftl/backend/protos/xyz/block/ftl/language/v1;languagepbb\x06proto3"

var (
	file_xyz_block_ftl_language_v1_service_proto_rawDescOnce sync.Once
	file_xyz_block_ftl_language_v1_service_proto_rawDescData []byte
)

func file_xyz_block_ftl_language_v1_service_proto_rawDescGZIP() []byte {
	file_xyz_block_ftl_language_v1_service_proto_rawDescOnce.Do(func() {
		file_xyz_block_ftl_language_v1_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_xyz_block_ftl_language_v1_service_proto_rawDesc), len(file_xyz_block_ftl_language_v1_service_proto_rawDesc)))
	})
	return file_xyz_block_ftl_language_v1_service_proto_rawDescData
}

var file_xyz_block_ftl_language_v1_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_xyz_block_ftl_language_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_xyz_block_ftl_language_v1_service_proto_goTypes = []any{
	(Error_ErrorLevel)(0),               // 0: xyz.block.ftl.language.v1.Error.ErrorLevel
	(Error_ErrorType)(0),                // 1: xyz.block.ftl.language.v1.Error.ErrorType
	(*ModuleConfig)(nil),                // 2: xyz.block.ftl.language.v1.ModuleConfig
	(*ProjectConfig)(nil),               // 3: xyz.block.ftl.language.v1.ProjectConfig
	(*GetDependenciesRequest)(nil),      // 4: xyz.block.ftl.language.v1.GetDependenciesRequest
	(*GetDependenciesResponse)(nil),     // 5: xyz.block.ftl.language.v1.GetDependenciesResponse
	(*BuildContext)(nil),                // 6: xyz.block.ftl.language.v1.BuildContext
	(*BuildContextUpdatedRequest)(nil),  // 7: xyz.block.ftl.language.v1.BuildContextUpdatedRequest
	(*BuildContextUpdatedResponse)(nil), // 8: xyz.block.ftl.language.v1.BuildContextUpdatedResponse
	(*Error)(nil),                       // 9: xyz.block.ftl.language.v1.Error
	(*Position)(nil),                    // 10: xyz.block.ftl.language.v1.Position
	(*ErrorList)(nil),                   // 11: xyz.block.ftl.language.v1.ErrorList
	(*BuildRequest)(nil),                // 12: xyz.block.ftl.language.v1.BuildRequest
	(*BuildSuccess)(nil),                // 13: xyz.block.ftl.language.v1.BuildSuccess
	(*BuildFailure)(nil),                // 14: xyz.block.ftl.language.v1.BuildFailure
	(*BuildResponse)(nil),               // 15: xyz.block.ftl.language.v1.BuildResponse
	(*GenerateStubsRequest)(nil),        // 16: xyz.block.ftl.language.v1.GenerateStubsRequest
	(*GenerateStubsResponse)(nil),       // 17: xyz.block.ftl.language.v1.GenerateStubsResponse
	(*SyncStubReferencesRequest)(nil),   // 18: xyz.block.ftl.language.v1.SyncStubReferencesRequest
	(*SyncStubReferencesResponse)(nil),  // 19: xyz.block.ftl.language.v1.SyncStubReferencesResponse
	(*structpb.Struct)(nil),             // 20: google.protobuf.Struct
	(*v1.Schema)(nil),                   // 21: xyz.block.ftl.schema.v1.Schema
	(*v1.Module)(nil),                   // 22: xyz.block.ftl.schema.v1.Module
	(*v11.PingRequest)(nil),             // 23: xyz.block.ftl.v1.PingRequest
	(*v11.PingResponse)(nil),            // 24: xyz.block.ftl.v1.PingResponse
}
var file_xyz_block_ftl_language_v1_service_proto_depIdxs = []int32{
	20, // 0: xyz.block.ftl.language.v1.ModuleConfig.language_config:type_name -> google.protobuf.Struct
	2,  // 1: xyz.block.ftl.language.v1.GetDependenciesRequest.module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig
	2,  // 2: xyz.block.ftl.language.v1.BuildContext.module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig
	21, // 3: xyz.block.ftl.language.v1.BuildContext.schema:type_name -> xyz.block.ftl.schema.v1.Schema
	6,  // 4: xyz.block.ftl.language.v1.BuildContextUpdatedRequest.build_context:type_name -> xyz.block.ftl.language.v1.BuildContext
	0,  // 5: xyz.block.ftl.language.v1.Error.level:type_name -> xyz.block.ftl.language.v1.Error.ErrorLevel
	10, // 6: xyz.block.ftl.language.v1.Error.pos:type_name -> xyz.block.ftl.language.v1.Position
	1,  // 7: xyz.block.ftl.language.v1.Error.type:type_name -> xyz.block.ftl.language.v1.Error.ErrorType
	9,  // 8: xyz.block.ftl.language.v1.ErrorList.errors:type_name -> xyz.block.ftl.language.v1.Error
	3,  // 9: xyz.block.ftl.language.v1.BuildRequest.project_config:type_name -> xyz.block.ftl.language.v1.ProjectConfig
	6,  // 10: xyz.block.ftl.language.v1.BuildRequest.build_context:type_name -> xyz.block.ftl.language.v1.BuildContext
	22, // 11: xyz.block.ftl.language.v1.BuildSuccess.module:type_name -> xyz.block.ftl.schema.v1.Module
	11, // 12: xyz.block.ftl.language.v1.BuildSuccess.errors:type_name -> xyz.block.ftl.language.v1.ErrorList
	11, // 13: xyz.block.ftl.language.v1.BuildFailure.errors:type_name -> xyz.block.ftl.language.v1.ErrorList
	13, // 14: xyz.block.ftl.language.v1.BuildResponse.build_success:type_name -> xyz.block.ftl.language.v1.BuildSuccess
	14, // 15: xyz.block.ftl.language.v1.BuildResponse.build_failure:type_name -> xyz.block.ftl.language.v1.BuildFailure
	22, // 16: xyz.block.ftl.language.v1.GenerateStubsRequest.module:type_name -> xyz.block.ftl.schema.v1.Module
	2,  // 17: xyz.block.ftl.language.v1.GenerateStubsRequest.module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig
	2,  // 18: xyz.block.ftl.language.v1.GenerateStubsRequest.native_module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig
	2,  // 19: xyz.block.ftl.language.v1.SyncStubReferencesRequest.module_config:type_name -> xyz.block.ftl.language.v1.ModuleConfig
	21, // 20: xyz.block.ftl.language.v1.SyncStubReferencesRequest.schema:type_name -> xyz.block.ftl.schema.v1.Schema
	23, // 21: xyz.block.ftl.language.v1.LanguageService.Ping:input_type -> xyz.block.ftl.v1.PingRequest
	4,  // 22: xyz.block.ftl.language.v1.LanguageService.GetDependencies:input_type -> xyz.block.ftl.language.v1.GetDependenciesRequest
	12, // 23: xyz.block.ftl.language.v1.LanguageService.Build:input_type -> xyz.block.ftl.language.v1.BuildRequest
	16, // 24: xyz.block.ftl.language.v1.LanguageService.GenerateStubs:input_type -> xyz.block.ftl.language.v1.GenerateStubsRequest
	18, // 25: xyz.block.ftl.language.v1.LanguageService.SyncStubReferences:input_type -> xyz.block.ftl.language.v1.SyncStubReferencesRequest
	24, // 26: xyz.block.ftl.language.v1.LanguageService.Ping:output_type -> xyz.block.ftl.v1.PingResponse
	5,  // 27: xyz.block.ftl.language.v1.LanguageService.GetDependencies:output_type -> xyz.block.ftl.language.v1.GetDependenciesResponse
	15, // 28: xyz.block.ftl.language.v1.LanguageService.Build:output_type -> xyz.block.ftl.language.v1.BuildResponse
	17, // 29: xyz.block.ftl.language.v1.LanguageService.GenerateStubs:output_type -> xyz.block.ftl.language.v1.GenerateStubsResponse
	19, // 30: xyz.block.ftl.language.v1.LanguageService.SyncStubReferences:output_type -> xyz.block.ftl.language.v1.SyncStubReferencesResponse
	26, // [26:31] is the sub-list for method output_type
	21, // [21:26] is the sub-list for method input_type
	21, // [21:21] is the sub-list for extension type_name
	21, // [21:21] is the sub-list for extension extendee
	0,  // [0:21] is the sub-list for field type_name
}

func init() { file_xyz_block_ftl_language_v1_service_proto_init() }
func file_xyz_block_ftl_language_v1_service_proto_init() {
	if File_xyz_block_ftl_language_v1_service_proto != nil {
		return
	}
	file_xyz_block_ftl_language_v1_service_proto_msgTypes[0].OneofWrappers = []any{}
	file_xyz_block_ftl_language_v1_service_proto_msgTypes[7].OneofWrappers = []any{}
	file_xyz_block_ftl_language_v1_service_proto_msgTypes[11].OneofWrappers = []any{}
	file_xyz_block_ftl_language_v1_service_proto_msgTypes[13].OneofWrappers = []any{
		(*BuildResponse_BuildSuccess)(nil),
		(*BuildResponse_BuildFailure)(nil),
	}
	file_xyz_block_ftl_language_v1_service_proto_msgTypes[14].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_xyz_block_ftl_language_v1_service_proto_rawDesc), len(file_xyz_block_ftl_language_v1_service_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   18,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_xyz_block_ftl_language_v1_service_proto_goTypes,
		DependencyIndexes: file_xyz_block_ftl_language_v1_service_proto_depIdxs,
		EnumInfos:         file_xyz_block_ftl_language_v1_service_proto_enumTypes,
		MessageInfos:      file_xyz_block_ftl_language_v1_service_proto_msgTypes,
	}.Build()
	File_xyz_block_ftl_language_v1_service_proto = out.File
	file_xyz_block_ftl_language_v1_service_proto_goTypes = nil
	file_xyz_block_ftl_language_v1_service_proto_depIdxs = nil
}
