// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// copy from google3/devtools/cider/services/build/companion/ide_query.proto#1

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v7.35.0
// source: ide_query.proto

package proto

import (
	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 Language int32

const (
	Language_LANGUAGE_UNSPECIFIED Language = 0
	Language_LANGUAGE_JAVA        Language = 1 // also includes Kotlin
	Language_LANGUAGE_CPP         Language = 2
)

// Enum value maps for Language.
var (
	Language_name = map[int32]string{
		0: "LANGUAGE_UNSPECIFIED",
		1: "LANGUAGE_JAVA",
		2: "LANGUAGE_CPP",
	}
	Language_value = map[string]int32{
		"LANGUAGE_UNSPECIFIED": 0,
		"LANGUAGE_JAVA":        1,
		"LANGUAGE_CPP":         2,
	}
)

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

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

func (Language) Descriptor() protoreflect.EnumDescriptor {
	return file_ide_query_proto_enumTypes[0].Descriptor()
}

func (Language) Type() protoreflect.EnumType {
	return &file_ide_query_proto_enumTypes[0]
}

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

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

type Status_Code int32

const (
	Status_OK      Status_Code = 0
	Status_FAILURE Status_Code = 1
)

// Enum value maps for Status_Code.
var (
	Status_Code_name = map[int32]string{
		0: "OK",
		1: "FAILURE",
	}
	Status_Code_value = map[string]int32{
		"OK":      0,
		"FAILURE": 1,
	}
)

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

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

func (Status_Code) Descriptor() protoreflect.EnumDescriptor {
	return file_ide_query_proto_enumTypes[1].Descriptor()
}

func (Status_Code) Type() protoreflect.EnumType {
	return &file_ide_query_proto_enumTypes[1]
}

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

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

type AnalysisResult_Status_Code int32

const (
	AnalysisResult_Status_CODE_UNSPECIFIED  AnalysisResult_Status_Code = 0
	AnalysisResult_Status_CODE_OK           AnalysisResult_Status_Code = 1
	AnalysisResult_Status_CODE_NOT_FOUND    AnalysisResult_Status_Code = 2 // no target or module found for the source file.
	AnalysisResult_Status_CODE_BUILD_FAILED AnalysisResult_Status_Code = 3
)

// Enum value maps for AnalysisResult_Status_Code.
var (
	AnalysisResult_Status_Code_name = map[int32]string{
		0: "CODE_UNSPECIFIED",
		1: "CODE_OK",
		2: "CODE_NOT_FOUND",
		3: "CODE_BUILD_FAILED",
	}
	AnalysisResult_Status_Code_value = map[string]int32{
		"CODE_UNSPECIFIED":  0,
		"CODE_OK":           1,
		"CODE_NOT_FOUND":    2,
		"CODE_BUILD_FAILED": 3,
	}
)

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

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

func (AnalysisResult_Status_Code) Descriptor() protoreflect.EnumDescriptor {
	return file_ide_query_proto_enumTypes[2].Descriptor()
}

func (AnalysisResult_Status_Code) Type() protoreflect.EnumType {
	return &file_ide_query_proto_enumTypes[2]
}

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

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

// Indicates the success/failure for analysis.
//
// Deprecated: Marked as deprecated in ide_query.proto.
type Status struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Code  Status_Code            `protobuf:"varint,1,opt,name=code,proto3,enum=ide_query.Status_Code" json:"code,omitempty"`
	// Details about the status, might be displayed to user.
	Message       *string `protobuf:"bytes,2,opt,name=message,proto3,oneof" json:"message,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Status) ProtoMessage() {}

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

func (x *Status) GetCode() Status_Code {
	if x != nil {
		return x.Code
	}
	return Status_OK
}

func (x *Status) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

type GeneratedFile struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Path to the file relative to build_out_dir.
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// The text of the generated file, if not provided contents will be read
	// from the path above in user's workstation.
	Contents      []byte `protobuf:"bytes,2,opt,name=contents,proto3,oneof" json:"contents,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*GeneratedFile) ProtoMessage() {}

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

func (x *GeneratedFile) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *GeneratedFile) GetContents() []byte {
	if x != nil {
		return x.Contents
	}
	return nil
}

// Deprecated: Marked as deprecated in ide_query.proto.
type SourceFile struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Path to the source file relative to repository root.
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// Working directory used by the build system. All the relative
	// paths in compiler_arguments should be relative to this path.
	// Relative to repository root.
	WorkingDir string `protobuf:"bytes,2,opt,name=working_dir,json=workingDir,proto3" json:"working_dir,omitempty"`
	// Compiler arguments to compile the source file. If multiple variants
	// of the module being compiled are possible, the query script will choose
	// one.
	CompilerArguments []string `protobuf:"bytes,3,rep,name=compiler_arguments,json=compilerArguments,proto3" json:"compiler_arguments,omitempty"`
	// Any generated files that are used in compiling the file.
	Generated []*GeneratedFile `protobuf:"bytes,4,rep,name=generated,proto3" json:"generated,omitempty"`
	// Paths to all of the sources, like build files, code generators,
	// proto files etc. that were used during analysis. Used to figure
	// out when a set of build artifacts are stale and the query tool
	// must be re-run.
	// Relative to repository root.
	Deps []string `protobuf:"bytes,5,rep,name=deps,proto3" json:"deps,omitempty"`
	// Represents analysis status for this particular file. e.g. not part
	// of the build graph.
	Status        *Status `protobuf:"bytes,6,opt,name=status,proto3,oneof" json:"status,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*SourceFile) ProtoMessage() {}

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

func (x *SourceFile) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *SourceFile) GetWorkingDir() string {
	if x != nil {
		return x.WorkingDir
	}
	return ""
}

func (x *SourceFile) GetCompilerArguments() []string {
	if x != nil {
		return x.CompilerArguments
	}
	return nil
}

func (x *SourceFile) GetGenerated() []*GeneratedFile {
	if x != nil {
		return x.Generated
	}
	return nil
}

func (x *SourceFile) GetDeps() []string {
	if x != nil {
		return x.Deps
	}
	return nil
}

func (x *SourceFile) GetStatus() *Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type IdeAnalysis struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Directory that contains build outputs generated by the build system.
	// Relative to repository root.
	BuildOutDir string `protobuf:"bytes,1,opt,name=build_out_dir,json=buildOutDir,proto3" json:"build_out_dir,omitempty"`
	// Working directory used by the build system.
	// Relative to repository root.
	WorkingDir string `protobuf:"bytes,4,opt,name=working_dir,json=workingDir,proto3" json:"working_dir,omitempty"`
	// Only set if the whole query failed.
	Error *AnalysisError `protobuf:"bytes,5,opt,name=error,proto3,oneof" json:"error,omitempty"`
	// List of results, one per queried file.
	Results []*AnalysisResult `protobuf:"bytes,6,rep,name=results,proto3" json:"results,omitempty"`
	// List of buildable units directly or indirectly references by the results.
	Units []*BuildableUnit `protobuf:"bytes,7,rep,name=units,proto3" json:"units,omitempty"`
	// Deprecated: Marked as deprecated in ide_query.proto.
	Sources []*SourceFile `protobuf:"bytes,2,rep,name=sources,proto3" json:"sources,omitempty"`
	// Status representing overall analysis.
	// Should fail only when no analysis can be performed.
	//
	// Deprecated: Marked as deprecated in ide_query.proto.
	Status        *Status `protobuf:"bytes,3,opt,name=status,proto3,oneof" json:"status,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*IdeAnalysis) ProtoMessage() {}

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

func (x *IdeAnalysis) GetBuildOutDir() string {
	if x != nil {
		return x.BuildOutDir
	}
	return ""
}

func (x *IdeAnalysis) GetWorkingDir() string {
	if x != nil {
		return x.WorkingDir
	}
	return ""
}

func (x *IdeAnalysis) GetError() *AnalysisError {
	if x != nil {
		return x.Error
	}
	return nil
}

func (x *IdeAnalysis) GetResults() []*AnalysisResult {
	if x != nil {
		return x.Results
	}
	return nil
}

func (x *IdeAnalysis) GetUnits() []*BuildableUnit {
	if x != nil {
		return x.Units
	}
	return nil
}

// Deprecated: Marked as deprecated in ide_query.proto.
func (x *IdeAnalysis) GetSources() []*SourceFile {
	if x != nil {
		return x.Sources
	}
	return nil
}

// Deprecated: Marked as deprecated in ide_query.proto.
func (x *IdeAnalysis) GetStatus() *Status {
	if x != nil {
		return x.Status
	}
	return nil
}

type AnalysisError struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Human readable error message.
	ErrorMessage  string `protobuf:"bytes,1,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AnalysisError) ProtoMessage() {}

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

func (x *AnalysisError) GetErrorMessage() string {
	if x != nil {
		return x.ErrorMessage
	}
	return ""
}

type AnalysisResult struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Path to the source file that was queried, relative to repository root.
	SourceFilePath string `protobuf:"bytes,1,opt,name=source_file_path,json=sourceFilePath,proto3" json:"source_file_path,omitempty"`
	// Represents status for this result. e.g. not part of the build graph.
	Status *AnalysisResult_Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"`
	// ID of buildable unit that contains the source file.
	// The ide_query script can choose the most relevant unit from multiple
	// options.
	UnitId string `protobuf:"bytes,3,opt,name=unit_id,json=unitId,proto3" json:"unit_id,omitempty"`
	// Invalidation rule to check if the result is still valid.
	Invalidation  *Invalidation `protobuf:"bytes,4,opt,name=invalidation,proto3" json:"invalidation,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AnalysisResult) ProtoMessage() {}

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

func (x *AnalysisResult) GetSourceFilePath() string {
	if x != nil {
		return x.SourceFilePath
	}
	return ""
}

func (x *AnalysisResult) GetStatus() *AnalysisResult_Status {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *AnalysisResult) GetUnitId() string {
	if x != nil {
		return x.UnitId
	}
	return ""
}

func (x *AnalysisResult) GetInvalidation() *Invalidation {
	if x != nil {
		return x.Invalidation
	}
	return nil
}

type BuildableUnit struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique identifier of the buildable unit.
	//
	// Examples:
	//   - Java: module or target name, e.g. "framework-bluetooth" or
	//     "//third_party/hamcrest:hamcrest_java"
	//   - C++: source file, e.g. "path/to/file.cc"
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Language of the unit.
	// Required for buildable units directly referenced by the AnalysisResult,
	// e.g. the unit associated with the compilation stage for the source file.
	Language Language `protobuf:"varint,2,opt,name=language,proto3,enum=ide_query.Language" json:"language,omitempty"`
	// Source files that are part of this unit.
	// Path to the file relative to working_dir.
	SourceFilePaths []string `protobuf:"bytes,3,rep,name=source_file_paths,json=sourceFilePaths,proto3" json:"source_file_paths,omitempty"`
	// Compiler arguments to compile the source files.
	CompilerArguments []string `protobuf:"bytes,4,rep,name=compiler_arguments,json=compilerArguments,proto3" json:"compiler_arguments,omitempty"`
	// List of generated files produced by this unit.
	GeneratedFiles []*GeneratedFile `protobuf:"bytes,5,rep,name=generated_files,json=generatedFiles,proto3" json:"generated_files,omitempty"`
	// List of other BuildableUnits this unit depend on.
	DependencyIds []string `protobuf:"bytes,6,rep,name=dependency_ids,json=dependencyIds,proto3" json:"dependency_ids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*BuildableUnit) ProtoMessage() {}

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

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

func (x *BuildableUnit) GetLanguage() Language {
	if x != nil {
		return x.Language
	}
	return Language_LANGUAGE_UNSPECIFIED
}

func (x *BuildableUnit) GetSourceFilePaths() []string {
	if x != nil {
		return x.SourceFilePaths
	}
	return nil
}

func (x *BuildableUnit) GetCompilerArguments() []string {
	if x != nil {
		return x.CompilerArguments
	}
	return nil
}

func (x *BuildableUnit) GetGeneratedFiles() []*GeneratedFile {
	if x != nil {
		return x.GeneratedFiles
	}
	return nil
}

func (x *BuildableUnit) GetDependencyIds() []string {
	if x != nil {
		return x.DependencyIds
	}
	return nil
}

// Invalidation rule to check if the result is still valid.
// This should contain files/dirs that are not directly part of the build graph
// but still affect the result. For example BUILD files, directory to the
// toolchain or config files etc.
type Invalidation struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// If any of these files change the result may become invalid.
	// Path to the file relative to repository root.
	FilePaths []string `protobuf:"bytes,1,rep,name=file_paths,json=filePaths,proto3" json:"file_paths,omitempty"`
	// If any of these rules match a changed file the result may become invalid.
	Wildcards     []*Invalidation_Wildcard `protobuf:"bytes,4,rep,name=wildcards,proto3" json:"wildcards,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Invalidation) ProtoMessage() {}

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

func (x *Invalidation) GetFilePaths() []string {
	if x != nil {
		return x.FilePaths
	}
	return nil
}

func (x *Invalidation) GetWildcards() []*Invalidation_Wildcard {
	if x != nil {
		return x.Wildcards
	}
	return nil
}

// Indicates the success/failure for the query.
type AnalysisResult_Status struct {
	state protoimpl.MessageState     `protogen:"open.v1"`
	Code  AnalysisResult_Status_Code `protobuf:"varint,1,opt,name=code,proto3,enum=ide_query.AnalysisResult_Status_Code" json:"code,omitempty"`
	// Details about the status, might be displayed to user.
	StatusMessage *string `protobuf:"bytes,2,opt,name=status_message,json=statusMessage,proto3,oneof" json:"status_message,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*AnalysisResult_Status) ProtoMessage() {}

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

func (x *AnalysisResult_Status) GetCode() AnalysisResult_Status_Code {
	if x != nil {
		return x.Code
	}
	return AnalysisResult_Status_CODE_UNSPECIFIED
}

func (x *AnalysisResult_Status) GetStatusMessage() string {
	if x != nil && x.StatusMessage != nil {
		return *x.StatusMessage
	}
	return ""
}

type Invalidation_Wildcard struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Prefix of the file path (e.g. "path/to/")
	Prefix *string `protobuf:"bytes,1,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"`
	// Suffix of the file path (e.g. "Android.bp")
	Suffix *string `protobuf:"bytes,2,opt,name=suffix,proto3,oneof" json:"suffix,omitempty"`
	// If false, the part of the path between the given `prefix` and `suffix`
	// should not contain directory separators ('/').
	CanCrossFolder *bool `protobuf:"varint,3,opt,name=can_cross_folder,json=canCrossFolder,proto3,oneof" json:"can_cross_folder,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*Invalidation_Wildcard) ProtoMessage() {}

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

func (x *Invalidation_Wildcard) GetPrefix() string {
	if x != nil && x.Prefix != nil {
		return *x.Prefix
	}
	return ""
}

func (x *Invalidation_Wildcard) GetSuffix() string {
	if x != nil && x.Suffix != nil {
		return *x.Suffix
	}
	return ""
}

func (x *Invalidation_Wildcard) GetCanCrossFolder() bool {
	if x != nil && x.CanCrossFolder != nil {
		return *x.CanCrossFolder
	}
	return false
}

var File_ide_query_proto protoreflect.FileDescriptor

const file_ide_query_proto_rawDesc = "" +
	"\n" +
	"\x0fide_query.proto\x12\tide_query\"\x80\x01\n" +
	"\x06Status\x12*\n" +
	"\x04code\x18\x01 \x01(\x0e2\x16.ide_query.Status.CodeR\x04code\x12\x1d\n" +
	"\amessage\x18\x02 \x01(\tH\x00R\amessage\x88\x01\x01\"\x1b\n" +
	"\x04Code\x12\x06\n" +
	"\x02OK\x10\x00\x12\v\n" +
	"\aFAILURE\x10\x01:\x02\x18\x01B\n" +
	"\n" +
	"\b_message\"Q\n" +
	"\rGeneratedFile\x12\x12\n" +
	"\x04path\x18\x01 \x01(\tR\x04path\x12\x1f\n" +
	"\bcontents\x18\x02 \x01(\fH\x00R\bcontents\x88\x01\x01B\v\n" +
	"\t_contents\"\xfb\x01\n" +
	"\n" +
	"SourceFile\x12\x12\n" +
	"\x04path\x18\x01 \x01(\tR\x04path\x12\x1f\n" +
	"\vworking_dir\x18\x02 \x01(\tR\n" +
	"workingDir\x12-\n" +
	"\x12compiler_arguments\x18\x03 \x03(\tR\x11compilerArguments\x126\n" +
	"\tgenerated\x18\x04 \x03(\v2\x18.ide_query.GeneratedFileR\tgenerated\x12\x12\n" +
	"\x04deps\x18\x05 \x03(\tR\x04deps\x12.\n" +
	"\x06status\x18\x06 \x01(\v2\x11.ide_query.StatusH\x00R\x06status\x88\x01\x01:\x02\x18\x01B\t\n" +
	"\a_status\"\xea\x02\n" +
	"\vIdeAnalysis\x12\"\n" +
	"\rbuild_out_dir\x18\x01 \x01(\tR\vbuildOutDir\x12\x1f\n" +
	"\vworking_dir\x18\x04 \x01(\tR\n" +
	"workingDir\x123\n" +
	"\x05error\x18\x05 \x01(\v2\x18.ide_query.AnalysisErrorH\x00R\x05error\x88\x01\x01\x123\n" +
	"\aresults\x18\x06 \x03(\v2\x19.ide_query.AnalysisResultR\aresults\x12.\n" +
	"\x05units\x18\a \x03(\v2\x18.ide_query.BuildableUnitR\x05units\x123\n" +
	"\asources\x18\x02 \x03(\v2\x15.ide_query.SourceFileB\x02\x18\x01R\asources\x122\n" +
	"\x06status\x18\x03 \x01(\v2\x11.ide_query.StatusB\x02\x18\x01H\x01R\x06status\x88\x01\x01B\b\n" +
	"\x06_errorB\t\n" +
	"\a_status\"4\n" +
	"\rAnalysisError\x12#\n" +
	"\rerror_message\x18\x01 \x01(\tR\ferrorMessage\"\xa5\x03\n" +
	"\x0eAnalysisResult\x12(\n" +
	"\x10source_file_path\x18\x01 \x01(\tR\x0esourceFilePath\x128\n" +
	"\x06status\x18\x02 \x01(\v2 .ide_query.AnalysisResult.StatusR\x06status\x12\x17\n" +
	"\aunit_id\x18\x03 \x01(\tR\x06unitId\x12;\n" +
	"\finvalidation\x18\x04 \x01(\v2\x17.ide_query.InvalidationR\finvalidation\x1a\xd8\x01\n" +
	"\x06Status\x129\n" +
	"\x04code\x18\x01 \x01(\x0e2%.ide_query.AnalysisResult.Status.CodeR\x04code\x12*\n" +
	"\x0estatus_message\x18\x02 \x01(\tH\x00R\rstatusMessage\x88\x01\x01\"T\n" +
	"\x04Code\x12\x14\n" +
	"\x10CODE_UNSPECIFIED\x10\x00\x12\v\n" +
	"\aCODE_OK\x10\x01\x12\x12\n" +
	"\x0eCODE_NOT_FOUND\x10\x02\x12\x15\n" +
	"\x11CODE_BUILD_FAILED\x10\x03B\x11\n" +
	"\x0f_status_message\"\x95\x02\n" +
	"\rBuildableUnit\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12/\n" +
	"\blanguage\x18\x02 \x01(\x0e2\x13.ide_query.LanguageR\blanguage\x12*\n" +
	"\x11source_file_paths\x18\x03 \x03(\tR\x0fsourceFilePaths\x12-\n" +
	"\x12compiler_arguments\x18\x04 \x03(\tR\x11compilerArguments\x12A\n" +
	"\x0fgenerated_files\x18\x05 \x03(\v2\x18.ide_query.GeneratedFileR\x0egeneratedFiles\x12%\n" +
	"\x0edependency_ids\x18\x06 \x03(\tR\rdependencyIds\"\x8e\x02\n" +
	"\fInvalidation\x12\x1d\n" +
	"\n" +
	"file_paths\x18\x01 \x03(\tR\tfilePaths\x12>\n" +
	"\twildcards\x18\x04 \x03(\v2 .ide_query.Invalidation.WildcardR\twildcards\x1a\x9e\x01\n" +
	"\bWildcard\x12\x1b\n" +
	"\x06prefix\x18\x01 \x01(\tH\x00R\x06prefix\x88\x01\x01\x12\x1b\n" +
	"\x06suffix\x18\x02 \x01(\tH\x01R\x06suffix\x88\x01\x01\x12-\n" +
	"\x10can_cross_folder\x18\x03 \x01(\bH\x02R\x0ecanCrossFolder\x88\x01\x01B\t\n" +
	"\a_prefixB\t\n" +
	"\a_suffixB\x13\n" +
	"\x11_can_cross_folder*I\n" +
	"\bLanguage\x12\x18\n" +
	"\x14LANGUAGE_UNSPECIFIED\x10\x00\x12\x11\n" +
	"\rLANGUAGE_JAVA\x10\x01\x12\x10\n" +
	"\fLANGUAGE_CPP\x10\x02B8Z6go.chromium.org/build/siso/toolsupport/ciderutil/protob\x06proto3"

var (
	file_ide_query_proto_rawDescOnce sync.Once
	file_ide_query_proto_rawDescData []byte
)

func file_ide_query_proto_rawDescGZIP() []byte {
	file_ide_query_proto_rawDescOnce.Do(func() {
		file_ide_query_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ide_query_proto_rawDesc), len(file_ide_query_proto_rawDesc)))
	})
	return file_ide_query_proto_rawDescData
}

var file_ide_query_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_ide_query_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_ide_query_proto_goTypes = []any{
	(Language)(0),                   // 0: ide_query.Language
	(Status_Code)(0),                // 1: ide_query.Status.Code
	(AnalysisResult_Status_Code)(0), // 2: ide_query.AnalysisResult.Status.Code
	(*Status)(nil),                  // 3: ide_query.Status
	(*GeneratedFile)(nil),           // 4: ide_query.GeneratedFile
	(*SourceFile)(nil),              // 5: ide_query.SourceFile
	(*IdeAnalysis)(nil),             // 6: ide_query.IdeAnalysis
	(*AnalysisError)(nil),           // 7: ide_query.AnalysisError
	(*AnalysisResult)(nil),          // 8: ide_query.AnalysisResult
	(*BuildableUnit)(nil),           // 9: ide_query.BuildableUnit
	(*Invalidation)(nil),            // 10: ide_query.Invalidation
	(*AnalysisResult_Status)(nil),   // 11: ide_query.AnalysisResult.Status
	(*Invalidation_Wildcard)(nil),   // 12: ide_query.Invalidation.Wildcard
}
var file_ide_query_proto_depIdxs = []int32{
	1,  // 0: ide_query.Status.code:type_name -> ide_query.Status.Code
	4,  // 1: ide_query.SourceFile.generated:type_name -> ide_query.GeneratedFile
	3,  // 2: ide_query.SourceFile.status:type_name -> ide_query.Status
	7,  // 3: ide_query.IdeAnalysis.error:type_name -> ide_query.AnalysisError
	8,  // 4: ide_query.IdeAnalysis.results:type_name -> ide_query.AnalysisResult
	9,  // 5: ide_query.IdeAnalysis.units:type_name -> ide_query.BuildableUnit
	5,  // 6: ide_query.IdeAnalysis.sources:type_name -> ide_query.SourceFile
	3,  // 7: ide_query.IdeAnalysis.status:type_name -> ide_query.Status
	11, // 8: ide_query.AnalysisResult.status:type_name -> ide_query.AnalysisResult.Status
	10, // 9: ide_query.AnalysisResult.invalidation:type_name -> ide_query.Invalidation
	0,  // 10: ide_query.BuildableUnit.language:type_name -> ide_query.Language
	4,  // 11: ide_query.BuildableUnit.generated_files:type_name -> ide_query.GeneratedFile
	12, // 12: ide_query.Invalidation.wildcards:type_name -> ide_query.Invalidation.Wildcard
	2,  // 13: ide_query.AnalysisResult.Status.code:type_name -> ide_query.AnalysisResult.Status.Code
	14, // [14:14] is the sub-list for method output_type
	14, // [14:14] is the sub-list for method input_type
	14, // [14:14] is the sub-list for extension type_name
	14, // [14:14] is the sub-list for extension extendee
	0,  // [0:14] is the sub-list for field type_name
}

func init() { file_ide_query_proto_init() }
func file_ide_query_proto_init() {
	if File_ide_query_proto != nil {
		return
	}
	file_ide_query_proto_msgTypes[0].OneofWrappers = []any{}
	file_ide_query_proto_msgTypes[1].OneofWrappers = []any{}
	file_ide_query_proto_msgTypes[2].OneofWrappers = []any{}
	file_ide_query_proto_msgTypes[3].OneofWrappers = []any{}
	file_ide_query_proto_msgTypes[8].OneofWrappers = []any{}
	file_ide_query_proto_msgTypes[9].OneofWrappers = []any{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ide_query_proto_rawDesc), len(file_ide_query_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   10,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_ide_query_proto_goTypes,
		DependencyIndexes: file_ide_query_proto_depIdxs,
		EnumInfos:         file_ide_query_proto_enumTypes,
		MessageInfos:      file_ide_query_proto_msgTypes,
	}.Build()
	File_ide_query_proto = out.File
	file_ide_query_proto_goTypes = nil
	file_ide_query_proto_depIdxs = nil
}
