// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.2
// source: google/cloud/dialogflow/cx/v3/validation_message.proto

package cxpb

import (
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"

	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
)

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)
)

// Resource types.
type ValidationMessage_ResourceType int32

const (
	// Unspecified.
	ValidationMessage_RESOURCE_TYPE_UNSPECIFIED ValidationMessage_ResourceType = 0
	// Agent.
	ValidationMessage_AGENT ValidationMessage_ResourceType = 1
	// Intent.
	ValidationMessage_INTENT ValidationMessage_ResourceType = 2
	// Intent training phrase.
	ValidationMessage_INTENT_TRAINING_PHRASE ValidationMessage_ResourceType = 8
	// Intent parameter.
	ValidationMessage_INTENT_PARAMETER ValidationMessage_ResourceType = 9
	// Multiple intents.
	ValidationMessage_INTENTS ValidationMessage_ResourceType = 10
	// Multiple training phrases.
	ValidationMessage_INTENT_TRAINING_PHRASES ValidationMessage_ResourceType = 11
	// Entity type.
	ValidationMessage_ENTITY_TYPE ValidationMessage_ResourceType = 3
	// Multiple entity types.
	ValidationMessage_ENTITY_TYPES ValidationMessage_ResourceType = 12
	// Webhook.
	ValidationMessage_WEBHOOK ValidationMessage_ResourceType = 4
	// Flow.
	ValidationMessage_FLOW ValidationMessage_ResourceType = 5
	// Page.
	ValidationMessage_PAGE ValidationMessage_ResourceType = 6
	// Multiple pages.
	ValidationMessage_PAGES ValidationMessage_ResourceType = 13
	// Transition route group.
	ValidationMessage_TRANSITION_ROUTE_GROUP ValidationMessage_ResourceType = 7
	// Agent transition route group.
	ValidationMessage_AGENT_TRANSITION_ROUTE_GROUP ValidationMessage_ResourceType = 14
)

// Enum value maps for ValidationMessage_ResourceType.
var (
	ValidationMessage_ResourceType_name = map[int32]string{
		0:  "RESOURCE_TYPE_UNSPECIFIED",
		1:  "AGENT",
		2:  "INTENT",
		8:  "INTENT_TRAINING_PHRASE",
		9:  "INTENT_PARAMETER",
		10: "INTENTS",
		11: "INTENT_TRAINING_PHRASES",
		3:  "ENTITY_TYPE",
		12: "ENTITY_TYPES",
		4:  "WEBHOOK",
		5:  "FLOW",
		6:  "PAGE",
		13: "PAGES",
		7:  "TRANSITION_ROUTE_GROUP",
		14: "AGENT_TRANSITION_ROUTE_GROUP",
	}
	ValidationMessage_ResourceType_value = map[string]int32{
		"RESOURCE_TYPE_UNSPECIFIED":    0,
		"AGENT":                        1,
		"INTENT":                       2,
		"INTENT_TRAINING_PHRASE":       8,
		"INTENT_PARAMETER":             9,
		"INTENTS":                      10,
		"INTENT_TRAINING_PHRASES":      11,
		"ENTITY_TYPE":                  3,
		"ENTITY_TYPES":                 12,
		"WEBHOOK":                      4,
		"FLOW":                         5,
		"PAGE":                         6,
		"PAGES":                        13,
		"TRANSITION_ROUTE_GROUP":       7,
		"AGENT_TRANSITION_ROUTE_GROUP": 14,
	}
)

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

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

func (ValidationMessage_ResourceType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_dialogflow_cx_v3_validation_message_proto_enumTypes[0].Descriptor()
}

func (ValidationMessage_ResourceType) Type() protoreflect.EnumType {
	return &file_google_cloud_dialogflow_cx_v3_validation_message_proto_enumTypes[0]
}

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

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

// Severity level.
type ValidationMessage_Severity int32

const (
	// Unspecified.
	ValidationMessage_SEVERITY_UNSPECIFIED ValidationMessage_Severity = 0
	// The agent doesn't follow Dialogflow best practices.
	ValidationMessage_INFO ValidationMessage_Severity = 1
	// The agent may not behave as expected.
	ValidationMessage_WARNING ValidationMessage_Severity = 2
	// The agent may experience failures.
	ValidationMessage_ERROR ValidationMessage_Severity = 3
)

// Enum value maps for ValidationMessage_Severity.
var (
	ValidationMessage_Severity_name = map[int32]string{
		0: "SEVERITY_UNSPECIFIED",
		1: "INFO",
		2: "WARNING",
		3: "ERROR",
	}
	ValidationMessage_Severity_value = map[string]int32{
		"SEVERITY_UNSPECIFIED": 0,
		"INFO":                 1,
		"WARNING":              2,
		"ERROR":                3,
	}
)

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

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

func (ValidationMessage_Severity) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_dialogflow_cx_v3_validation_message_proto_enumTypes[1].Descriptor()
}

func (ValidationMessage_Severity) Type() protoreflect.EnumType {
	return &file_google_cloud_dialogflow_cx_v3_validation_message_proto_enumTypes[1]
}

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

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

// Agent/flow validation message.
type ValidationMessage struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The type of the resources where the message is found.
	ResourceType ValidationMessage_ResourceType `protobuf:"varint,1,opt,name=resource_type,json=resourceType,proto3,enum=google.cloud.dialogflow.cx.v3.ValidationMessage_ResourceType" json:"resource_type,omitempty"`
	// The names of the resources where the message is found.
	//
	// Deprecated: Marked as deprecated in google/cloud/dialogflow/cx/v3/validation_message.proto.
	Resources []string `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"`
	// The resource names of the resources where the message is found.
	ResourceNames []*ResourceName `protobuf:"bytes,6,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"`
	// Indicates the severity of the message.
	Severity ValidationMessage_Severity `protobuf:"varint,3,opt,name=severity,proto3,enum=google.cloud.dialogflow.cx.v3.ValidationMessage_Severity" json:"severity,omitempty"`
	// The message detail.
	Detail        string `protobuf:"bytes,4,opt,name=detail,proto3" json:"detail,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ValidationMessage) ProtoMessage() {}

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

func (x *ValidationMessage) GetResourceType() ValidationMessage_ResourceType {
	if x != nil {
		return x.ResourceType
	}
	return ValidationMessage_RESOURCE_TYPE_UNSPECIFIED
}

// Deprecated: Marked as deprecated in google/cloud/dialogflow/cx/v3/validation_message.proto.
func (x *ValidationMessage) GetResources() []string {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *ValidationMessage) GetResourceNames() []*ResourceName {
	if x != nil {
		return x.ResourceNames
	}
	return nil
}

func (x *ValidationMessage) GetSeverity() ValidationMessage_Severity {
	if x != nil {
		return x.Severity
	}
	return ValidationMessage_SEVERITY_UNSPECIFIED
}

func (x *ValidationMessage) GetDetail() string {
	if x != nil {
		return x.Detail
	}
	return ""
}

// Resource name and display name.
type ResourceName struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Name.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Display name.
	DisplayName   string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResourceName) ProtoMessage() {}

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

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

func (x *ResourceName) GetDisplayName() string {
	if x != nil {
		return x.DisplayName
	}
	return ""
}

var File_google_cloud_dialogflow_cx_v3_validation_message_proto protoreflect.FileDescriptor

const file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDesc = "" +
	"\n" +
	"6google/cloud/dialogflow/cx/v3/validation_message.proto\x12\x1dgoogle.cloud.dialogflow.cx.v3\"\xd4\x05\n" +
	"\x11ValidationMessage\x12b\n" +
	"\rresource_type\x18\x01 \x01(\x0e2=.google.cloud.dialogflow.cx.v3.ValidationMessage.ResourceTypeR\fresourceType\x12 \n" +
	"\tresources\x18\x02 \x03(\tB\x02\x18\x01R\tresources\x12R\n" +
	"\x0eresource_names\x18\x06 \x03(\v2+.google.cloud.dialogflow.cx.v3.ResourceNameR\rresourceNames\x12U\n" +
	"\bseverity\x18\x03 \x01(\x0e29.google.cloud.dialogflow.cx.v3.ValidationMessage.SeverityR\bseverity\x12\x16\n" +
	"\x06detail\x18\x04 \x01(\tR\x06detail\"\xad\x02\n" +
	"\fResourceType\x12\x1d\n" +
	"\x19RESOURCE_TYPE_UNSPECIFIED\x10\x00\x12\t\n" +
	"\x05AGENT\x10\x01\x12\n" +
	"\n" +
	"\x06INTENT\x10\x02\x12\x1a\n" +
	"\x16INTENT_TRAINING_PHRASE\x10\b\x12\x14\n" +
	"\x10INTENT_PARAMETER\x10\t\x12\v\n" +
	"\aINTENTS\x10\n" +
	"\x12\x1b\n" +
	"\x17INTENT_TRAINING_PHRASES\x10\v\x12\x0f\n" +
	"\vENTITY_TYPE\x10\x03\x12\x10\n" +
	"\fENTITY_TYPES\x10\f\x12\v\n" +
	"\aWEBHOOK\x10\x04\x12\b\n" +
	"\x04FLOW\x10\x05\x12\b\n" +
	"\x04PAGE\x10\x06\x12\t\n" +
	"\x05PAGES\x10\r\x12\x1a\n" +
	"\x16TRANSITION_ROUTE_GROUP\x10\a\x12 \n" +
	"\x1cAGENT_TRANSITION_ROUTE_GROUP\x10\x0e\"F\n" +
	"\bSeverity\x12\x18\n" +
	"\x14SEVERITY_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04INFO\x10\x01\x12\v\n" +
	"\aWARNING\x10\x02\x12\t\n" +
	"\x05ERROR\x10\x03\"E\n" +
	"\fResourceName\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12!\n" +
	"\fdisplay_name\x18\x02 \x01(\tR\vdisplayNameB\xb9\x01\n" +
	"!com.google.cloud.dialogflow.cx.v3B\x16ValidationMessageProtoP\x01Z1cloud.google.com/go/dialogflow/cx/apiv3/cxpb;cxpb\xa2\x02\x02DF\xaa\x02\x1dGoogle.Cloud.Dialogflow.Cx.V3\xea\x02!Google::Cloud::Dialogflow::CX::V3b\x06proto3"

var (
	file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDescOnce sync.Once
	file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDescData []byte
)

func file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDescGZIP() []byte {
	file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDescOnce.Do(func() {
		file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDesc), len(file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDesc)))
	})
	return file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDescData
}

var file_google_cloud_dialogflow_cx_v3_validation_message_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_google_cloud_dialogflow_cx_v3_validation_message_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_google_cloud_dialogflow_cx_v3_validation_message_proto_goTypes = []any{
	(ValidationMessage_ResourceType)(0), // 0: google.cloud.dialogflow.cx.v3.ValidationMessage.ResourceType
	(ValidationMessage_Severity)(0),     // 1: google.cloud.dialogflow.cx.v3.ValidationMessage.Severity
	(*ValidationMessage)(nil),           // 2: google.cloud.dialogflow.cx.v3.ValidationMessage
	(*ResourceName)(nil),                // 3: google.cloud.dialogflow.cx.v3.ResourceName
}
var file_google_cloud_dialogflow_cx_v3_validation_message_proto_depIdxs = []int32{
	0, // 0: google.cloud.dialogflow.cx.v3.ValidationMessage.resource_type:type_name -> google.cloud.dialogflow.cx.v3.ValidationMessage.ResourceType
	3, // 1: google.cloud.dialogflow.cx.v3.ValidationMessage.resource_names:type_name -> google.cloud.dialogflow.cx.v3.ResourceName
	1, // 2: google.cloud.dialogflow.cx.v3.ValidationMessage.severity:type_name -> google.cloud.dialogflow.cx.v3.ValidationMessage.Severity
	3, // [3:3] is the sub-list for method output_type
	3, // [3:3] is the sub-list for method input_type
	3, // [3:3] is the sub-list for extension type_name
	3, // [3:3] is the sub-list for extension extendee
	0, // [0:3] is the sub-list for field type_name
}

func init() { file_google_cloud_dialogflow_cx_v3_validation_message_proto_init() }
func file_google_cloud_dialogflow_cx_v3_validation_message_proto_init() {
	if File_google_cloud_dialogflow_cx_v3_validation_message_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDesc), len(file_google_cloud_dialogflow_cx_v3_validation_message_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   2,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_google_cloud_dialogflow_cx_v3_validation_message_proto_goTypes,
		DependencyIndexes: file_google_cloud_dialogflow_cx_v3_validation_message_proto_depIdxs,
		EnumInfos:         file_google_cloud_dialogflow_cx_v3_validation_message_proto_enumTypes,
		MessageInfos:      file_google_cloud_dialogflow_cx_v3_validation_message_proto_msgTypes,
	}.Build()
	File_google_cloud_dialogflow_cx_v3_validation_message_proto = out.File
	file_google_cloud_dialogflow_cx_v3_validation_message_proto_goTypes = nil
	file_google_cloud_dialogflow_cx_v3_validation_message_proto_depIdxs = nil
}
