// 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/response_message.proto

package cxpb

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

	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
)

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

// Represents different response types.
type ResponseMessage_ResponseType int32

const (
	// Not specified.
	ResponseMessage_RESPONSE_TYPE_UNSPECIFIED ResponseMessage_ResponseType = 0
	// The response is from an [entry
	// prompt][google.cloud.dialogflow.cx.v3.Page.entry_fulfillment] in the
	// page.
	ResponseMessage_ENTRY_PROMPT ResponseMessage_ResponseType = 1
	// The response is from [form-filling
	// prompt][google.cloud.dialogflow.cx.v3.Form.Parameter.fill_behavior] in
	// the page.
	ResponseMessage_PARAMETER_PROMPT ResponseMessage_ResponseType = 2
	// The response is from a [transition
	// route][google.cloud.dialogflow.cx.v3.TransitionRoute] or an [event
	// handler][EventHandler] in the page or flow or transition route group.
	ResponseMessage_HANDLER_PROMPT ResponseMessage_ResponseType = 3
)

// Enum value maps for ResponseMessage_ResponseType.
var (
	ResponseMessage_ResponseType_name = map[int32]string{
		0: "RESPONSE_TYPE_UNSPECIFIED",
		1: "ENTRY_PROMPT",
		2: "PARAMETER_PROMPT",
		3: "HANDLER_PROMPT",
	}
	ResponseMessage_ResponseType_value = map[string]int32{
		"RESPONSE_TYPE_UNSPECIFIED": 0,
		"ENTRY_PROMPT":              1,
		"PARAMETER_PROMPT":          2,
		"HANDLER_PROMPT":            3,
	}
)

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

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

func (ResponseMessage_ResponseType) Descriptor() protoreflect.EnumDescriptor {
	return file_google_cloud_dialogflow_cx_v3_response_message_proto_enumTypes[0].Descriptor()
}

func (ResponseMessage_ResponseType) Type() protoreflect.EnumType {
	return &file_google_cloud_dialogflow_cx_v3_response_message_proto_enumTypes[0]
}

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

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

// Represents a response message that can be returned by a conversational agent.
//
// Response messages are also used for output audio synthesis. The approach is
// as follows:
//
//   - If at least one OutputAudioText response is present, then all
//     OutputAudioText responses are linearly concatenated, and the result is used
//     for output audio synthesis.
//   - If the OutputAudioText responses are a mixture of text and SSML, then the
//     concatenated result is treated as SSML; otherwise, the result is treated as
//     either text or SSML as appropriate. The agent designer should ideally use
//     either text or SSML consistently throughout the bot design.
//   - Otherwise, all Text responses are linearly concatenated, and the result is
//     used for output audio synthesis.
//
// This approach allows for more sophisticated user experience scenarios, where
// the text displayed to the user may differ from what is heard.
type ResponseMessage struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The rich response message.
	//
	// Types that are valid to be assigned to Message:
	//
	//	*ResponseMessage_Text_
	//	*ResponseMessage_Payload
	//	*ResponseMessage_ConversationSuccess_
	//	*ResponseMessage_OutputAudioText_
	//	*ResponseMessage_LiveAgentHandoff_
	//	*ResponseMessage_EndInteraction_
	//	*ResponseMessage_PlayAudio_
	//	*ResponseMessage_MixedAudio_
	//	*ResponseMessage_TelephonyTransferCall_
	//	*ResponseMessage_KnowledgeInfoCard_
	//	*ResponseMessage_ToolCall
	Message isResponseMessage_Message `protobuf_oneof:"message"`
	// Response type.
	ResponseType ResponseMessage_ResponseType `protobuf:"varint,4,opt,name=response_type,json=responseType,proto3,enum=google.cloud.dialogflow.cx.v3.ResponseMessage_ResponseType" json:"response_type,omitempty"`
	// The channel which the response is associated with. Clients can specify the
	// channel via
	// [QueryParameters.channel][google.cloud.dialogflow.cx.v3.QueryParameters.channel],
	// and only associated channel response will be returned.
	Channel       string `protobuf:"bytes,19,opt,name=channel,proto3" json:"channel,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResponseMessage) ProtoMessage() {}

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

func (x *ResponseMessage) GetMessage() isResponseMessage_Message {
	if x != nil {
		return x.Message
	}
	return nil
}

func (x *ResponseMessage) GetText() *ResponseMessage_Text {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_Text_); ok {
			return x.Text
		}
	}
	return nil
}

func (x *ResponseMessage) GetPayload() *structpb.Struct {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_Payload); ok {
			return x.Payload
		}
	}
	return nil
}

func (x *ResponseMessage) GetConversationSuccess() *ResponseMessage_ConversationSuccess {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_ConversationSuccess_); ok {
			return x.ConversationSuccess
		}
	}
	return nil
}

func (x *ResponseMessage) GetOutputAudioText() *ResponseMessage_OutputAudioText {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_OutputAudioText_); ok {
			return x.OutputAudioText
		}
	}
	return nil
}

func (x *ResponseMessage) GetLiveAgentHandoff() *ResponseMessage_LiveAgentHandoff {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_LiveAgentHandoff_); ok {
			return x.LiveAgentHandoff
		}
	}
	return nil
}

func (x *ResponseMessage) GetEndInteraction() *ResponseMessage_EndInteraction {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_EndInteraction_); ok {
			return x.EndInteraction
		}
	}
	return nil
}

func (x *ResponseMessage) GetPlayAudio() *ResponseMessage_PlayAudio {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_PlayAudio_); ok {
			return x.PlayAudio
		}
	}
	return nil
}

func (x *ResponseMessage) GetMixedAudio() *ResponseMessage_MixedAudio {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_MixedAudio_); ok {
			return x.MixedAudio
		}
	}
	return nil
}

func (x *ResponseMessage) GetTelephonyTransferCall() *ResponseMessage_TelephonyTransferCall {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_TelephonyTransferCall_); ok {
			return x.TelephonyTransferCall
		}
	}
	return nil
}

func (x *ResponseMessage) GetKnowledgeInfoCard() *ResponseMessage_KnowledgeInfoCard {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_KnowledgeInfoCard_); ok {
			return x.KnowledgeInfoCard
		}
	}
	return nil
}

func (x *ResponseMessage) GetToolCall() *ToolCall {
	if x != nil {
		if x, ok := x.Message.(*ResponseMessage_ToolCall); ok {
			return x.ToolCall
		}
	}
	return nil
}

func (x *ResponseMessage) GetResponseType() ResponseMessage_ResponseType {
	if x != nil {
		return x.ResponseType
	}
	return ResponseMessage_RESPONSE_TYPE_UNSPECIFIED
}

func (x *ResponseMessage) GetChannel() string {
	if x != nil {
		return x.Channel
	}
	return ""
}

type isResponseMessage_Message interface {
	isResponseMessage_Message()
}

type ResponseMessage_Text_ struct {
	// Returns a text response.
	Text *ResponseMessage_Text `protobuf:"bytes,1,opt,name=text,proto3,oneof"`
}

type ResponseMessage_Payload struct {
	// Returns a response containing a custom, platform-specific payload.
	Payload *structpb.Struct `protobuf:"bytes,2,opt,name=payload,proto3,oneof"`
}

type ResponseMessage_ConversationSuccess_ struct {
	// Indicates that the conversation succeeded.
	ConversationSuccess *ResponseMessage_ConversationSuccess `protobuf:"bytes,9,opt,name=conversation_success,json=conversationSuccess,proto3,oneof"`
}

type ResponseMessage_OutputAudioText_ struct {
	// A text or ssml response that is preferentially used for TTS output audio
	// synthesis, as described in the comment on the ResponseMessage message.
	OutputAudioText *ResponseMessage_OutputAudioText `protobuf:"bytes,8,opt,name=output_audio_text,json=outputAudioText,proto3,oneof"`
}

type ResponseMessage_LiveAgentHandoff_ struct {
	// Hands off conversation to a human agent.
	LiveAgentHandoff *ResponseMessage_LiveAgentHandoff `protobuf:"bytes,10,opt,name=live_agent_handoff,json=liveAgentHandoff,proto3,oneof"`
}

type ResponseMessage_EndInteraction_ struct {
	// Output only. A signal that indicates the interaction with the Dialogflow
	// agent has ended. This message is generated by Dialogflow only when the
	// conversation reaches `END_SESSION` page. It is not supposed to be defined
	// by the user.
	//
	// It's guaranteed that there is at most one such message in each response.
	EndInteraction *ResponseMessage_EndInteraction `protobuf:"bytes,11,opt,name=end_interaction,json=endInteraction,proto3,oneof"`
}

type ResponseMessage_PlayAudio_ struct {
	// Signal that the client should play an audio clip hosted at a
	// client-specific URI. Dialogflow uses this to construct
	// [mixed_audio][google.cloud.dialogflow.cx.v3.ResponseMessage.mixed_audio].
	// However, Dialogflow itself does not try to read or process the URI in any
	// way.
	PlayAudio *ResponseMessage_PlayAudio `protobuf:"bytes,12,opt,name=play_audio,json=playAudio,proto3,oneof"`
}

type ResponseMessage_MixedAudio_ struct {
	// Output only. An audio response message composed of both the synthesized
	// Dialogflow agent responses and responses defined via
	// [play_audio][google.cloud.dialogflow.cx.v3.ResponseMessage.play_audio].
	// This message is generated by Dialogflow only and not supposed to be
	// defined by the user.
	MixedAudio *ResponseMessage_MixedAudio `protobuf:"bytes,13,opt,name=mixed_audio,json=mixedAudio,proto3,oneof"`
}

type ResponseMessage_TelephonyTransferCall_ struct {
	// A signal that the client should transfer the phone call connected to
	// this agent to a third-party endpoint.
	TelephonyTransferCall *ResponseMessage_TelephonyTransferCall `protobuf:"bytes,18,opt,name=telephony_transfer_call,json=telephonyTransferCall,proto3,oneof"`
}

type ResponseMessage_KnowledgeInfoCard_ struct {
	// Represents info card for knowledge answers, to be better rendered in
	// Dialogflow Messenger.
	KnowledgeInfoCard *ResponseMessage_KnowledgeInfoCard `protobuf:"bytes,20,opt,name=knowledge_info_card,json=knowledgeInfoCard,proto3,oneof"`
}

type ResponseMessage_ToolCall struct {
	// Returns the definition of a tool call that should be executed by the
	// client.
	ToolCall *ToolCall `protobuf:"bytes,22,opt,name=tool_call,json=toolCall,proto3,oneof"`
}

func (*ResponseMessage_Text_) isResponseMessage_Message() {}

func (*ResponseMessage_Payload) isResponseMessage_Message() {}

func (*ResponseMessage_ConversationSuccess_) isResponseMessage_Message() {}

func (*ResponseMessage_OutputAudioText_) isResponseMessage_Message() {}

func (*ResponseMessage_LiveAgentHandoff_) isResponseMessage_Message() {}

func (*ResponseMessage_EndInteraction_) isResponseMessage_Message() {}

func (*ResponseMessage_PlayAudio_) isResponseMessage_Message() {}

func (*ResponseMessage_MixedAudio_) isResponseMessage_Message() {}

func (*ResponseMessage_TelephonyTransferCall_) isResponseMessage_Message() {}

func (*ResponseMessage_KnowledgeInfoCard_) isResponseMessage_Message() {}

func (*ResponseMessage_ToolCall) isResponseMessage_Message() {}

// The text response message.
type ResponseMessage_Text struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. A collection of text response variants. If multiple variants
	// are defined, only one text response variant is returned at runtime.
	Text []string `protobuf:"bytes,1,rep,name=text,proto3" json:"text,omitempty"`
	// Output only. Whether the playback of this message can be interrupted by
	// the end user's speech and the client can then starts the next Dialogflow
	// request.
	AllowPlaybackInterruption bool `protobuf:"varint,2,opt,name=allow_playback_interruption,json=allowPlaybackInterruption,proto3" json:"allow_playback_interruption,omitempty"`
	unknownFields             protoimpl.UnknownFields
	sizeCache                 protoimpl.SizeCache
}

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

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

func (*ResponseMessage_Text) ProtoMessage() {}

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

func (x *ResponseMessage_Text) GetText() []string {
	if x != nil {
		return x.Text
	}
	return nil
}

func (x *ResponseMessage_Text) GetAllowPlaybackInterruption() bool {
	if x != nil {
		return x.AllowPlaybackInterruption
	}
	return false
}

// Indicates that the conversation should be handed off to a live agent.
//
// Dialogflow only uses this to determine which conversations were handed off
// to a human agent for measurement purposes. What else to do with this signal
// is up to you and your handoff procedures.
//
// You may set this, for example:
// * In the
// [entry_fulfillment][google.cloud.dialogflow.cx.v3.Page.entry_fulfillment]
// of a [Page][google.cloud.dialogflow.cx.v3.Page] if
//
//		entering the page indicates something went extremely wrong in the
//		conversation.
//	  - In a webhook response when you determine that the customer issue can only
//	    be handled by a human.
type ResponseMessage_LiveAgentHandoff struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Custom metadata for your handoff procedure. Dialogflow doesn't impose
	// any structure on this.
	Metadata      *structpb.Struct `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResponseMessage_LiveAgentHandoff) ProtoMessage() {}

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

func (x *ResponseMessage_LiveAgentHandoff) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

// Indicates that the conversation succeeded, i.e., the bot handled the issue
// that the customer talked to it about.
//
// Dialogflow only uses this to determine which conversations should be
// counted as successful and doesn't process the metadata in this message in
// any way. Note that Dialogflow also considers conversations that get to the
// conversation end page as successful even if they don't return
// [ConversationSuccess][google.cloud.dialogflow.cx.v3.ResponseMessage.ConversationSuccess].
//
// You may set this, for example:
// * In the
// [entry_fulfillment][google.cloud.dialogflow.cx.v3.Page.entry_fulfillment]
// of a [Page][google.cloud.dialogflow.cx.v3.Page] if
//
//		entering the page indicates that the conversation succeeded.
//	  - In a webhook response when you determine that you handled the customer
//	    issue.
type ResponseMessage_ConversationSuccess struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Custom metadata. Dialogflow doesn't impose any structure on this.
	Metadata      *structpb.Struct `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResponseMessage_ConversationSuccess) ProtoMessage() {}

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

func (x *ResponseMessage_ConversationSuccess) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

// A text or ssml response that is preferentially used for TTS output audio
// synthesis, as described in the comment on the ResponseMessage message.
type ResponseMessage_OutputAudioText struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The source, which is either plain text or SSML.
	//
	// Types that are valid to be assigned to Source:
	//
	//	*ResponseMessage_OutputAudioText_Text
	//	*ResponseMessage_OutputAudioText_Ssml
	Source isResponseMessage_OutputAudioText_Source `protobuf_oneof:"source"`
	// Output only. Whether the playback of this message can be interrupted by
	// the end user's speech and the client can then starts the next Dialogflow
	// request.
	AllowPlaybackInterruption bool `protobuf:"varint,3,opt,name=allow_playback_interruption,json=allowPlaybackInterruption,proto3" json:"allow_playback_interruption,omitempty"`
	unknownFields             protoimpl.UnknownFields
	sizeCache                 protoimpl.SizeCache
}

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

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

func (*ResponseMessage_OutputAudioText) ProtoMessage() {}

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

func (x *ResponseMessage_OutputAudioText) GetSource() isResponseMessage_OutputAudioText_Source {
	if x != nil {
		return x.Source
	}
	return nil
}

func (x *ResponseMessage_OutputAudioText) GetText() string {
	if x != nil {
		if x, ok := x.Source.(*ResponseMessage_OutputAudioText_Text); ok {
			return x.Text
		}
	}
	return ""
}

func (x *ResponseMessage_OutputAudioText) GetSsml() string {
	if x != nil {
		if x, ok := x.Source.(*ResponseMessage_OutputAudioText_Ssml); ok {
			return x.Ssml
		}
	}
	return ""
}

func (x *ResponseMessage_OutputAudioText) GetAllowPlaybackInterruption() bool {
	if x != nil {
		return x.AllowPlaybackInterruption
	}
	return false
}

type isResponseMessage_OutputAudioText_Source interface {
	isResponseMessage_OutputAudioText_Source()
}

type ResponseMessage_OutputAudioText_Text struct {
	// The raw text to be synthesized.
	Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"`
}

type ResponseMessage_OutputAudioText_Ssml struct {
	// The SSML text to be synthesized. For more information, see
	// [SSML](/speech/text-to-speech/docs/ssml).
	Ssml string `protobuf:"bytes,2,opt,name=ssml,proto3,oneof"`
}

func (*ResponseMessage_OutputAudioText_Text) isResponseMessage_OutputAudioText_Source() {}

func (*ResponseMessage_OutputAudioText_Ssml) isResponseMessage_OutputAudioText_Source() {}

// Indicates that interaction with the Dialogflow agent has ended.
// This message is generated by Dialogflow only and not supposed to be
// defined by the user.
type ResponseMessage_EndInteraction struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResponseMessage_EndInteraction) ProtoMessage() {}

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

// Specifies an audio clip to be played by the client as part of the response.
type ResponseMessage_PlayAudio struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. URI of the audio clip. Dialogflow does not impose any
	// validation on this value. It is specific to the client that reads it.
	AudioUri string `protobuf:"bytes,1,opt,name=audio_uri,json=audioUri,proto3" json:"audio_uri,omitempty"`
	// Output only. Whether the playback of this message can be interrupted by
	// the end user's speech and the client can then starts the next Dialogflow
	// request.
	AllowPlaybackInterruption bool `protobuf:"varint,2,opt,name=allow_playback_interruption,json=allowPlaybackInterruption,proto3" json:"allow_playback_interruption,omitempty"`
	unknownFields             protoimpl.UnknownFields
	sizeCache                 protoimpl.SizeCache
}

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

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

func (*ResponseMessage_PlayAudio) ProtoMessage() {}

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

func (x *ResponseMessage_PlayAudio) GetAudioUri() string {
	if x != nil {
		return x.AudioUri
	}
	return ""
}

func (x *ResponseMessage_PlayAudio) GetAllowPlaybackInterruption() bool {
	if x != nil {
		return x.AllowPlaybackInterruption
	}
	return false
}

// Represents an audio message that is composed of both segments
// synthesized from the Dialogflow agent prompts and ones hosted externally
// at the specified URIs.
// The external URIs are specified via
// [play_audio][google.cloud.dialogflow.cx.v3.ResponseMessage.play_audio].
// This message is generated by Dialogflow only and not supposed to be
// defined by the user.
type ResponseMessage_MixedAudio struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Segments this audio response is composed of.
	Segments      []*ResponseMessage_MixedAudio_Segment `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResponseMessage_MixedAudio) ProtoMessage() {}

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

func (x *ResponseMessage_MixedAudio) GetSegments() []*ResponseMessage_MixedAudio_Segment {
	if x != nil {
		return x.Segments
	}
	return nil
}

// Represents the signal that telles the client to transfer the phone call
// connected to the agent to a third-party endpoint.
type ResponseMessage_TelephonyTransferCall struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Endpoint to transfer the call to.
	//
	// Types that are valid to be assigned to Endpoint:
	//
	//	*ResponseMessage_TelephonyTransferCall_PhoneNumber
	Endpoint      isResponseMessage_TelephonyTransferCall_Endpoint `protobuf_oneof:"endpoint"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResponseMessage_TelephonyTransferCall) ProtoMessage() {}

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

func (x *ResponseMessage_TelephonyTransferCall) GetEndpoint() isResponseMessage_TelephonyTransferCall_Endpoint {
	if x != nil {
		return x.Endpoint
	}
	return nil
}

func (x *ResponseMessage_TelephonyTransferCall) GetPhoneNumber() string {
	if x != nil {
		if x, ok := x.Endpoint.(*ResponseMessage_TelephonyTransferCall_PhoneNumber); ok {
			return x.PhoneNumber
		}
	}
	return ""
}

type isResponseMessage_TelephonyTransferCall_Endpoint interface {
	isResponseMessage_TelephonyTransferCall_Endpoint()
}

type ResponseMessage_TelephonyTransferCall_PhoneNumber struct {
	// Transfer the call to a phone number
	// in [E.164 format](https://en.wikipedia.org/wiki/E.164).
	PhoneNumber string `protobuf:"bytes,1,opt,name=phone_number,json=phoneNumber,proto3,oneof"`
}

func (*ResponseMessage_TelephonyTransferCall_PhoneNumber) isResponseMessage_TelephonyTransferCall_Endpoint() {
}

// Represents info card response. If the response contains generative
// knowledge prediction, Dialogflow will return a payload with Infobot
// Messenger compatible info card.
//
// Otherwise, the info card response is skipped.
type ResponseMessage_KnowledgeInfoCard struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResponseMessage_KnowledgeInfoCard) ProtoMessage() {}

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

// Represents one segment of audio.
type ResponseMessage_MixedAudio_Segment struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Content of the segment.
	//
	// Types that are valid to be assigned to Content:
	//
	//	*ResponseMessage_MixedAudio_Segment_Audio
	//	*ResponseMessage_MixedAudio_Segment_Uri
	Content isResponseMessage_MixedAudio_Segment_Content `protobuf_oneof:"content"`
	// Output only. Whether the playback of this segment can be interrupted by
	// the end user's speech and the client should then start the next
	// Dialogflow request.
	AllowPlaybackInterruption bool `protobuf:"varint,3,opt,name=allow_playback_interruption,json=allowPlaybackInterruption,proto3" json:"allow_playback_interruption,omitempty"`
	unknownFields             protoimpl.UnknownFields
	sizeCache                 protoimpl.SizeCache
}

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

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

func (*ResponseMessage_MixedAudio_Segment) ProtoMessage() {}

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

func (x *ResponseMessage_MixedAudio_Segment) GetContent() isResponseMessage_MixedAudio_Segment_Content {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *ResponseMessage_MixedAudio_Segment) GetAudio() []byte {
	if x != nil {
		if x, ok := x.Content.(*ResponseMessage_MixedAudio_Segment_Audio); ok {
			return x.Audio
		}
	}
	return nil
}

func (x *ResponseMessage_MixedAudio_Segment) GetUri() string {
	if x != nil {
		if x, ok := x.Content.(*ResponseMessage_MixedAudio_Segment_Uri); ok {
			return x.Uri
		}
	}
	return ""
}

func (x *ResponseMessage_MixedAudio_Segment) GetAllowPlaybackInterruption() bool {
	if x != nil {
		return x.AllowPlaybackInterruption
	}
	return false
}

type isResponseMessage_MixedAudio_Segment_Content interface {
	isResponseMessage_MixedAudio_Segment_Content()
}

type ResponseMessage_MixedAudio_Segment_Audio struct {
	// Raw audio synthesized from the Dialogflow agent's response using
	// the output config specified in the request.
	Audio []byte `protobuf:"bytes,1,opt,name=audio,proto3,oneof"`
}

type ResponseMessage_MixedAudio_Segment_Uri struct {
	// Client-specific URI that points to an audio clip accessible to the
	// client. Dialogflow does not impose any validation on it.
	Uri string `protobuf:"bytes,2,opt,name=uri,proto3,oneof"`
}

func (*ResponseMessage_MixedAudio_Segment_Audio) isResponseMessage_MixedAudio_Segment_Content() {}

func (*ResponseMessage_MixedAudio_Segment_Uri) isResponseMessage_MixedAudio_Segment_Content() {}

var File_google_cloud_dialogflow_cx_v3_response_message_proto protoreflect.FileDescriptor

const file_google_cloud_dialogflow_cx_v3_response_message_proto_rawDesc = "" +
	"\n" +
	"4google/cloud/dialogflow/cx/v3/response_message.proto\x12\x1dgoogle.cloud.dialogflow.cx.v3\x1a\x1fgoogle/api/field_behavior.proto\x1a-google/cloud/dialogflow/cx/v3/tool_call.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xa9\x11\n" +
	"\x0fResponseMessage\x12I\n" +
	"\x04text\x18\x01 \x01(\v23.google.cloud.dialogflow.cx.v3.ResponseMessage.TextH\x00R\x04text\x123\n" +
	"\apayload\x18\x02 \x01(\v2\x17.google.protobuf.StructH\x00R\apayload\x12w\n" +
	"\x14conversation_success\x18\t \x01(\v2B.google.cloud.dialogflow.cx.v3.ResponseMessage.ConversationSuccessH\x00R\x13conversationSuccess\x12l\n" +
	"\x11output_audio_text\x18\b \x01(\v2>.google.cloud.dialogflow.cx.v3.ResponseMessage.OutputAudioTextH\x00R\x0foutputAudioText\x12o\n" +
	"\x12live_agent_handoff\x18\n" +
	" \x01(\v2?.google.cloud.dialogflow.cx.v3.ResponseMessage.LiveAgentHandoffH\x00R\x10liveAgentHandoff\x12m\n" +
	"\x0fend_interaction\x18\v \x01(\v2=.google.cloud.dialogflow.cx.v3.ResponseMessage.EndInteractionB\x03\xe0A\x03H\x00R\x0eendInteraction\x12Y\n" +
	"\n" +
	"play_audio\x18\f \x01(\v28.google.cloud.dialogflow.cx.v3.ResponseMessage.PlayAudioH\x00R\tplayAudio\x12a\n" +
	"\vmixed_audio\x18\r \x01(\v29.google.cloud.dialogflow.cx.v3.ResponseMessage.MixedAudioB\x03\xe0A\x03H\x00R\n" +
	"mixedAudio\x12~\n" +
	"\x17telephony_transfer_call\x18\x12 \x01(\v2D.google.cloud.dialogflow.cx.v3.ResponseMessage.TelephonyTransferCallH\x00R\x15telephonyTransferCall\x12r\n" +
	"\x13knowledge_info_card\x18\x14 \x01(\v2@.google.cloud.dialogflow.cx.v3.ResponseMessage.KnowledgeInfoCardH\x00R\x11knowledgeInfoCard\x12F\n" +
	"\ttool_call\x18\x16 \x01(\v2'.google.cloud.dialogflow.cx.v3.ToolCallH\x00R\btoolCall\x12`\n" +
	"\rresponse_type\x18\x04 \x01(\x0e2;.google.cloud.dialogflow.cx.v3.ResponseMessage.ResponseTypeR\fresponseType\x12\x18\n" +
	"\achannel\x18\x13 \x01(\tR\achannel\x1ad\n" +
	"\x04Text\x12\x17\n" +
	"\x04text\x18\x01 \x03(\tB\x03\xe0A\x02R\x04text\x12C\n" +
	"\x1ballow_playback_interruption\x18\x02 \x01(\bB\x03\xe0A\x03R\x19allowPlaybackInterruption\x1aG\n" +
	"\x10LiveAgentHandoff\x123\n" +
	"\bmetadata\x18\x01 \x01(\v2\x17.google.protobuf.StructR\bmetadata\x1aJ\n" +
	"\x13ConversationSuccess\x123\n" +
	"\bmetadata\x18\x01 \x01(\v2\x17.google.protobuf.StructR\bmetadata\x1a\x8c\x01\n" +
	"\x0fOutputAudioText\x12\x14\n" +
	"\x04text\x18\x01 \x01(\tH\x00R\x04text\x12\x14\n" +
	"\x04ssml\x18\x02 \x01(\tH\x00R\x04ssml\x12C\n" +
	"\x1ballow_playback_interruption\x18\x03 \x01(\bB\x03\xe0A\x03R\x19allowPlaybackInterruptionB\b\n" +
	"\x06source\x1a\x10\n" +
	"\x0eEndInteraction\x1ar\n" +
	"\tPlayAudio\x12 \n" +
	"\taudio_uri\x18\x01 \x01(\tB\x03\xe0A\x02R\baudioUri\x12C\n" +
	"\x1ballow_playback_interruption\x18\x02 \x01(\bB\x03\xe0A\x03R\x19allowPlaybackInterruption\x1a\xf3\x01\n" +
	"\n" +
	"MixedAudio\x12]\n" +
	"\bsegments\x18\x01 \x03(\v2A.google.cloud.dialogflow.cx.v3.ResponseMessage.MixedAudio.SegmentR\bsegments\x1a\x85\x01\n" +
	"\aSegment\x12\x16\n" +
	"\x05audio\x18\x01 \x01(\fH\x00R\x05audio\x12\x12\n" +
	"\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x12C\n" +
	"\x1ballow_playback_interruption\x18\x03 \x01(\bB\x03\xe0A\x03R\x19allowPlaybackInterruptionB\t\n" +
	"\acontent\x1aH\n" +
	"\x15TelephonyTransferCall\x12#\n" +
	"\fphone_number\x18\x01 \x01(\tH\x00R\vphoneNumberB\n" +
	"\n" +
	"\bendpoint\x1a\x13\n" +
	"\x11KnowledgeInfoCard\"i\n" +
	"\fResponseType\x12\x1d\n" +
	"\x19RESPONSE_TYPE_UNSPECIFIED\x10\x00\x12\x10\n" +
	"\fENTRY_PROMPT\x10\x01\x12\x14\n" +
	"\x10PARAMETER_PROMPT\x10\x02\x12\x12\n" +
	"\x0eHANDLER_PROMPT\x10\x03B\t\n" +
	"\amessageB\xb7\x01\n" +
	"!com.google.cloud.dialogflow.cx.v3B\x14ResponseMessageProtoP\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_response_message_proto_rawDescOnce sync.Once
	file_google_cloud_dialogflow_cx_v3_response_message_proto_rawDescData []byte
)

func file_google_cloud_dialogflow_cx_v3_response_message_proto_rawDescGZIP() []byte {
	file_google_cloud_dialogflow_cx_v3_response_message_proto_rawDescOnce.Do(func() {
		file_google_cloud_dialogflow_cx_v3_response_message_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_cloud_dialogflow_cx_v3_response_message_proto_rawDesc), len(file_google_cloud_dialogflow_cx_v3_response_message_proto_rawDesc)))
	})
	return file_google_cloud_dialogflow_cx_v3_response_message_proto_rawDescData
}

var file_google_cloud_dialogflow_cx_v3_response_message_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_google_cloud_dialogflow_cx_v3_response_message_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_google_cloud_dialogflow_cx_v3_response_message_proto_goTypes = []any{
	(ResponseMessage_ResponseType)(0),             // 0: google.cloud.dialogflow.cx.v3.ResponseMessage.ResponseType
	(*ResponseMessage)(nil),                       // 1: google.cloud.dialogflow.cx.v3.ResponseMessage
	(*ResponseMessage_Text)(nil),                  // 2: google.cloud.dialogflow.cx.v3.ResponseMessage.Text
	(*ResponseMessage_LiveAgentHandoff)(nil),      // 3: google.cloud.dialogflow.cx.v3.ResponseMessage.LiveAgentHandoff
	(*ResponseMessage_ConversationSuccess)(nil),   // 4: google.cloud.dialogflow.cx.v3.ResponseMessage.ConversationSuccess
	(*ResponseMessage_OutputAudioText)(nil),       // 5: google.cloud.dialogflow.cx.v3.ResponseMessage.OutputAudioText
	(*ResponseMessage_EndInteraction)(nil),        // 6: google.cloud.dialogflow.cx.v3.ResponseMessage.EndInteraction
	(*ResponseMessage_PlayAudio)(nil),             // 7: google.cloud.dialogflow.cx.v3.ResponseMessage.PlayAudio
	(*ResponseMessage_MixedAudio)(nil),            // 8: google.cloud.dialogflow.cx.v3.ResponseMessage.MixedAudio
	(*ResponseMessage_TelephonyTransferCall)(nil), // 9: google.cloud.dialogflow.cx.v3.ResponseMessage.TelephonyTransferCall
	(*ResponseMessage_KnowledgeInfoCard)(nil),     // 10: google.cloud.dialogflow.cx.v3.ResponseMessage.KnowledgeInfoCard
	(*ResponseMessage_MixedAudio_Segment)(nil),    // 11: google.cloud.dialogflow.cx.v3.ResponseMessage.MixedAudio.Segment
	(*structpb.Struct)(nil),                       // 12: google.protobuf.Struct
	(*ToolCall)(nil),                              // 13: google.cloud.dialogflow.cx.v3.ToolCall
}
var file_google_cloud_dialogflow_cx_v3_response_message_proto_depIdxs = []int32{
	2,  // 0: google.cloud.dialogflow.cx.v3.ResponseMessage.text:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.Text
	12, // 1: google.cloud.dialogflow.cx.v3.ResponseMessage.payload:type_name -> google.protobuf.Struct
	4,  // 2: google.cloud.dialogflow.cx.v3.ResponseMessage.conversation_success:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.ConversationSuccess
	5,  // 3: google.cloud.dialogflow.cx.v3.ResponseMessage.output_audio_text:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.OutputAudioText
	3,  // 4: google.cloud.dialogflow.cx.v3.ResponseMessage.live_agent_handoff:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.LiveAgentHandoff
	6,  // 5: google.cloud.dialogflow.cx.v3.ResponseMessage.end_interaction:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.EndInteraction
	7,  // 6: google.cloud.dialogflow.cx.v3.ResponseMessage.play_audio:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.PlayAudio
	8,  // 7: google.cloud.dialogflow.cx.v3.ResponseMessage.mixed_audio:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.MixedAudio
	9,  // 8: google.cloud.dialogflow.cx.v3.ResponseMessage.telephony_transfer_call:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.TelephonyTransferCall
	10, // 9: google.cloud.dialogflow.cx.v3.ResponseMessage.knowledge_info_card:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.KnowledgeInfoCard
	13, // 10: google.cloud.dialogflow.cx.v3.ResponseMessage.tool_call:type_name -> google.cloud.dialogflow.cx.v3.ToolCall
	0,  // 11: google.cloud.dialogflow.cx.v3.ResponseMessage.response_type:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.ResponseType
	12, // 12: google.cloud.dialogflow.cx.v3.ResponseMessage.LiveAgentHandoff.metadata:type_name -> google.protobuf.Struct
	12, // 13: google.cloud.dialogflow.cx.v3.ResponseMessage.ConversationSuccess.metadata:type_name -> google.protobuf.Struct
	11, // 14: google.cloud.dialogflow.cx.v3.ResponseMessage.MixedAudio.segments:type_name -> google.cloud.dialogflow.cx.v3.ResponseMessage.MixedAudio.Segment
	15, // [15:15] is the sub-list for method output_type
	15, // [15:15] is the sub-list for method input_type
	15, // [15:15] is the sub-list for extension type_name
	15, // [15:15] is the sub-list for extension extendee
	0,  // [0:15] is the sub-list for field type_name
}

func init() { file_google_cloud_dialogflow_cx_v3_response_message_proto_init() }
func file_google_cloud_dialogflow_cx_v3_response_message_proto_init() {
	if File_google_cloud_dialogflow_cx_v3_response_message_proto != nil {
		return
	}
	file_google_cloud_dialogflow_cx_v3_tool_call_proto_init()
	file_google_cloud_dialogflow_cx_v3_response_message_proto_msgTypes[0].OneofWrappers = []any{
		(*ResponseMessage_Text_)(nil),
		(*ResponseMessage_Payload)(nil),
		(*ResponseMessage_ConversationSuccess_)(nil),
		(*ResponseMessage_OutputAudioText_)(nil),
		(*ResponseMessage_LiveAgentHandoff_)(nil),
		(*ResponseMessage_EndInteraction_)(nil),
		(*ResponseMessage_PlayAudio_)(nil),
		(*ResponseMessage_MixedAudio_)(nil),
		(*ResponseMessage_TelephonyTransferCall_)(nil),
		(*ResponseMessage_KnowledgeInfoCard_)(nil),
		(*ResponseMessage_ToolCall)(nil),
	}
	file_google_cloud_dialogflow_cx_v3_response_message_proto_msgTypes[4].OneofWrappers = []any{
		(*ResponseMessage_OutputAudioText_Text)(nil),
		(*ResponseMessage_OutputAudioText_Ssml)(nil),
	}
	file_google_cloud_dialogflow_cx_v3_response_message_proto_msgTypes[8].OneofWrappers = []any{
		(*ResponseMessage_TelephonyTransferCall_PhoneNumber)(nil),
	}
	file_google_cloud_dialogflow_cx_v3_response_message_proto_msgTypes[10].OneofWrappers = []any{
		(*ResponseMessage_MixedAudio_Segment_Audio)(nil),
		(*ResponseMessage_MixedAudio_Segment_Uri)(nil),
	}
	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_response_message_proto_rawDesc), len(file_google_cloud_dialogflow_cx_v3_response_message_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   11,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_google_cloud_dialogflow_cx_v3_response_message_proto_goTypes,
		DependencyIndexes: file_google_cloud_dialogflow_cx_v3_response_message_proto_depIdxs,
		EnumInfos:         file_google_cloud_dialogflow_cx_v3_response_message_proto_enumTypes,
		MessageInfos:      file_google_cloud_dialogflow_cx_v3_response_message_proto_msgTypes,
	}.Build()
	File_google_cloud_dialogflow_cx_v3_response_message_proto = out.File
	file_google_cloud_dialogflow_cx_v3_response_message_proto_goTypes = nil
	file_google_cloud_dialogflow_cx_v3_response_message_proto_depIdxs = nil
}
