// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v3.21.12
// source: yandex/cloud/ai/foundation_models/v1/text_common.proto

package foundation_models

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
	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)
)

// Enum representing the reasoning mode.
type ReasoningOptions_ReasoningMode int32

const (
	// Unspecified reasoning mode.
	ReasoningOptions_REASONING_MODE_UNSPECIFIED ReasoningOptions_ReasoningMode = 0
	// Disables reasoning. The model will generate a response without performing any internal reasoning.
	ReasoningOptions_DISABLED ReasoningOptions_ReasoningMode = 1
	// Enables reasoning in a hidden manner without exposing the reasoning steps to the user.
	ReasoningOptions_ENABLED_HIDDEN ReasoningOptions_ReasoningMode = 2
)

// Enum value maps for ReasoningOptions_ReasoningMode.
var (
	ReasoningOptions_ReasoningMode_name = map[int32]string{
		0: "REASONING_MODE_UNSPECIFIED",
		1: "DISABLED",
		2: "ENABLED_HIDDEN",
	}
	ReasoningOptions_ReasoningMode_value = map[string]int32{
		"REASONING_MODE_UNSPECIFIED": 0,
		"DISABLED":                   1,
		"ENABLED_HIDDEN":             2,
	}
)

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

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

func (ReasoningOptions_ReasoningMode) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_enumTypes[0].Descriptor()
}

func (ReasoningOptions_ReasoningMode) Type() protoreflect.EnumType {
	return &file_yandex_cloud_ai_foundation_models_v1_text_common_proto_enumTypes[0]
}

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

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

// Enum representing the generation status of the alternative.
type Alternative_AlternativeStatus int32

const (
	// Unspecified generation status.
	Alternative_ALTERNATIVE_STATUS_UNSPECIFIED Alternative_AlternativeStatus = 0
	// Partially generated alternative.
	Alternative_ALTERNATIVE_STATUS_PARTIAL Alternative_AlternativeStatus = 1
	// Incomplete final alternative resulting from reaching the maximum allowed number of tokens.
	Alternative_ALTERNATIVE_STATUS_TRUNCATED_FINAL Alternative_AlternativeStatus = 2
	// Final alternative generated without running into any limits.
	Alternative_ALTERNATIVE_STATUS_FINAL Alternative_AlternativeStatus = 3
	// Generation was stopped due to the discovery of potentially sensitive content in the prompt or generated response.
	// To fix, modify the prompt and restart generation.
	Alternative_ALTERNATIVE_STATUS_CONTENT_FILTER Alternative_AlternativeStatus = 4
	// Tools were invoked during the completion generation.
	Alternative_ALTERNATIVE_STATUS_TOOL_CALLS Alternative_AlternativeStatus = 5
)

// Enum value maps for Alternative_AlternativeStatus.
var (
	Alternative_AlternativeStatus_name = map[int32]string{
		0: "ALTERNATIVE_STATUS_UNSPECIFIED",
		1: "ALTERNATIVE_STATUS_PARTIAL",
		2: "ALTERNATIVE_STATUS_TRUNCATED_FINAL",
		3: "ALTERNATIVE_STATUS_FINAL",
		4: "ALTERNATIVE_STATUS_CONTENT_FILTER",
		5: "ALTERNATIVE_STATUS_TOOL_CALLS",
	}
	Alternative_AlternativeStatus_value = map[string]int32{
		"ALTERNATIVE_STATUS_UNSPECIFIED":     0,
		"ALTERNATIVE_STATUS_PARTIAL":         1,
		"ALTERNATIVE_STATUS_TRUNCATED_FINAL": 2,
		"ALTERNATIVE_STATUS_FINAL":           3,
		"ALTERNATIVE_STATUS_CONTENT_FILTER":  4,
		"ALTERNATIVE_STATUS_TOOL_CALLS":      5,
	}
)

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

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

func (Alternative_AlternativeStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_enumTypes[1].Descriptor()
}

func (Alternative_AlternativeStatus) Type() protoreflect.EnumType {
	return &file_yandex_cloud_ai_foundation_models_v1_text_common_proto_enumTypes[1]
}

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

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

// Defines the different modes for tool calling.
type ToolChoice_ToolChoiceMode int32

const (
	// The server will choose the default behavior, which is AUTO.
	ToolChoice_TOOL_CHOICE_MODE_UNSPECIFIED ToolChoice_ToolChoiceMode = 0
	// The model will not call any tool and will generate a standard text response.
	ToolChoice_NONE ToolChoice_ToolChoiceMode = 1
	// The model can choose between generating a text response or calling one or more tools.
	// This is the default behavior.
	ToolChoice_AUTO ToolChoice_ToolChoiceMode = 2
	// The model is required to call one or more tools.
	ToolChoice_REQUIRED ToolChoice_ToolChoiceMode = 3
)

// Enum value maps for ToolChoice_ToolChoiceMode.
var (
	ToolChoice_ToolChoiceMode_name = map[int32]string{
		0: "TOOL_CHOICE_MODE_UNSPECIFIED",
		1: "NONE",
		2: "AUTO",
		3: "REQUIRED",
	}
	ToolChoice_ToolChoiceMode_value = map[string]int32{
		"TOOL_CHOICE_MODE_UNSPECIFIED": 0,
		"NONE":                         1,
		"AUTO":                         2,
		"REQUIRED":                     3,
	}
)

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

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

func (ToolChoice_ToolChoiceMode) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_enumTypes[2].Descriptor()
}

func (ToolChoice_ToolChoiceMode) Type() protoreflect.EnumType {
	return &file_yandex_cloud_ai_foundation_models_v1_text_common_proto_enumTypes[2]
}

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

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

// Defines the options for completion generation.
type CompletionOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Enables streaming of partially generated text.
	Stream bool `protobuf:"varint,1,opt,name=stream,proto3" json:"stream,omitempty"`
	// Affects creativity and randomness of responses. Should be a double number between 0 (inclusive) and 1 (inclusive).
	// Lower values produce more straightforward responses while higher values lead to increased creativity and randomness.
	// Default temperature: 0.3
	Temperature *wrapperspb.DoubleValue `protobuf:"bytes,2,opt,name=temperature,proto3" json:"temperature,omitempty"`
	// The limit on the number of tokens used for single completion generation.
	// Must be greater than zero. This maximum allowed parameter value may depend on the model being used.
	MaxTokens *wrapperspb.Int64Value `protobuf:"bytes,3,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"`
	// Configures reasoning capabilities for the model, allowing it to perform internal reasoning before responding.
	ReasoningOptions *ReasoningOptions `protobuf:"bytes,4,opt,name=reasoning_options,json=reasoningOptions,proto3" json:"reasoning_options,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*CompletionOptions) ProtoMessage() {}

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

func (x *CompletionOptions) GetStream() bool {
	if x != nil {
		return x.Stream
	}
	return false
}

func (x *CompletionOptions) GetTemperature() *wrapperspb.DoubleValue {
	if x != nil {
		return x.Temperature
	}
	return nil
}

func (x *CompletionOptions) GetMaxTokens() *wrapperspb.Int64Value {
	if x != nil {
		return x.MaxTokens
	}
	return nil
}

func (x *CompletionOptions) GetReasoningOptions() *ReasoningOptions {
	if x != nil {
		return x.ReasoningOptions
	}
	return nil
}

// Represents reasoning options that enable the model's ability to perform internal reasoning before generating a response.
type ReasoningOptions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Specifies the reasoning mode to be used.
	Mode          ReasoningOptions_ReasoningMode `protobuf:"varint,1,opt,name=mode,proto3,enum=yandex.cloud.ai.foundation_models.v1.ReasoningOptions_ReasoningMode" json:"mode,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReasoningOptions) ProtoMessage() {}

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

func (x *ReasoningOptions) GetMode() ReasoningOptions_ReasoningMode {
	if x != nil {
		return x.Mode
	}
	return ReasoningOptions_REASONING_MODE_UNSPECIFIED
}

// A message object representing a wrapper over the inputs and outputs of the completion model.
type Message struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the message sender. Supported roles:
	// * `system`: Special role used to define the behavior of the completion model.
	// * `assistant`: A role used by the model to generate responses.
	// * `user`: A role used by the user to describe requests to the model.
	Role string `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
	// Message content.
	//
	// Types that are valid to be assigned to Content:
	//
	//	*Message_Text
	//	*Message_ToolCallList
	//	*Message_ToolResultList
	Content       isMessage_Content `protobuf_oneof:"Content"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Message) ProtoMessage() {}

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

func (x *Message) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

func (x *Message) GetContent() isMessage_Content {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *Message) GetText() string {
	if x != nil {
		if x, ok := x.Content.(*Message_Text); ok {
			return x.Text
		}
	}
	return ""
}

func (x *Message) GetToolCallList() *ToolCallList {
	if x != nil {
		if x, ok := x.Content.(*Message_ToolCallList); ok {
			return x.ToolCallList
		}
	}
	return nil
}

func (x *Message) GetToolResultList() *ToolResultList {
	if x != nil {
		if x, ok := x.Content.(*Message_ToolResultList); ok {
			return x.ToolResultList
		}
	}
	return nil
}

type isMessage_Content interface {
	isMessage_Content()
}

type Message_Text struct {
	// Textual content of the message.
	Text string `protobuf:"bytes,2,opt,name=text,proto3,oneof"`
}

type Message_ToolCallList struct {
	// List of tool calls made by the model as part of the response generation.
	ToolCallList *ToolCallList `protobuf:"bytes,3,opt,name=tool_call_list,json=toolCallList,proto3,oneof"`
}

type Message_ToolResultList struct {
	// List of tool results returned from external tools that were invoked by the model.
	ToolResultList *ToolResultList `protobuf:"bytes,4,opt,name=tool_result_list,json=toolResultList,proto3,oneof"`
}

func (*Message_Text) isMessage_Content() {}

func (*Message_ToolCallList) isMessage_Content() {}

func (*Message_ToolResultList) isMessage_Content() {}

// An object representing the number of content [tokens](/docs/foundation-models/concepts/yandexgpt/tokens) used by the completion model.
type ContentUsage struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The number of tokens in the textual part of the model input.
	InputTextTokens int64 `protobuf:"varint,1,opt,name=input_text_tokens,json=inputTextTokens,proto3" json:"input_text_tokens,omitempty"`
	// The number of tokens in the generated completion.
	CompletionTokens int64 `protobuf:"varint,2,opt,name=completion_tokens,json=completionTokens,proto3" json:"completion_tokens,omitempty"`
	// The total number of tokens, including all input tokens and all generated tokens.
	TotalTokens int64 `protobuf:"varint,3,opt,name=total_tokens,json=totalTokens,proto3" json:"total_tokens,omitempty"`
	// Provides additional information about how the completion tokens were utilized.
	CompletionTokensDetails *ContentUsage_CompletionTokensDetails `protobuf:"bytes,4,opt,name=completion_tokens_details,json=completionTokensDetails,proto3" json:"completion_tokens_details,omitempty"`
	unknownFields           protoimpl.UnknownFields
	sizeCache               protoimpl.SizeCache
}

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

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

func (*ContentUsage) ProtoMessage() {}

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

func (x *ContentUsage) GetInputTextTokens() int64 {
	if x != nil {
		return x.InputTextTokens
	}
	return 0
}

func (x *ContentUsage) GetCompletionTokens() int64 {
	if x != nil {
		return x.CompletionTokens
	}
	return 0
}

func (x *ContentUsage) GetTotalTokens() int64 {
	if x != nil {
		return x.TotalTokens
	}
	return 0
}

func (x *ContentUsage) GetCompletionTokensDetails() *ContentUsage_CompletionTokensDetails {
	if x != nil {
		return x.CompletionTokensDetails
	}
	return nil
}

// Represents a generated completion alternative, including its content and generation status.
type Alternative struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A message with the content of the alternative.
	Message *Message `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"`
	// The generation status of the alternative.
	Status        Alternative_AlternativeStatus `protobuf:"varint,2,opt,name=status,proto3,enum=yandex.cloud.ai.foundation_models.v1.Alternative_AlternativeStatus" json:"status,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Alternative) ProtoMessage() {}

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

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

func (x *Alternative) GetStatus() Alternative_AlternativeStatus {
	if x != nil {
		return x.Status
	}
	return Alternative_ALTERNATIVE_STATUS_UNSPECIFIED
}

// Represents a token, the basic unit of content, used by the foundation model.
type Token struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// An internal token identifier.
	Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// The textual representation of the token.
	Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"`
	// Indicates whether the token is special or not. Special tokens may define the model's behavior and are not visible to users.
	Special       bool `protobuf:"varint,3,opt,name=special,proto3" json:"special,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Token) ProtoMessage() {}

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

func (x *Token) GetId() int64 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Token) GetText() string {
	if x != nil {
		return x.Text
	}
	return ""
}

func (x *Token) GetSpecial() bool {
	if x != nil {
		return x.Special
	}
	return false
}

// Represents a tool that can be invoked during completion generation.
type Tool struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to ToolType:
	//
	//	*Tool_Function
	ToolType      isTool_ToolType `protobuf_oneof:"ToolType"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Tool) ProtoMessage() {}

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

func (x *Tool) GetToolType() isTool_ToolType {
	if x != nil {
		return x.ToolType
	}
	return nil
}

func (x *Tool) GetFunction() *FunctionTool {
	if x != nil {
		if x, ok := x.ToolType.(*Tool_Function); ok {
			return x.Function
		}
	}
	return nil
}

type isTool_ToolType interface {
	isTool_ToolType()
}

type Tool_Function struct {
	// Represents a function that can be called.
	Function *FunctionTool `protobuf:"bytes,1,opt,name=function,proto3,oneof"`
}

func (*Tool_Function) isTool_ToolType() {}

// Represents a function tool that can be invoked during completion generation.
type FunctionTool struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the function.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// A description of the function's purpose or behavior.
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// A JSON Schema that defines the expected parameters for the function.
	// The schema should describe the required fields, their types, and any constraints or default values.
	Parameters *structpb.Struct `protobuf:"bytes,3,opt,name=parameters,proto3" json:"parameters,omitempty"`
	// Enforces strict adherence to the function schema, ensuring only defined parameters are used.
	Strict        bool `protobuf:"varint,4,opt,name=strict,proto3" json:"strict,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FunctionTool) ProtoMessage() {}

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

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

func (x *FunctionTool) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *FunctionTool) GetParameters() *structpb.Struct {
	if x != nil {
		return x.Parameters
	}
	return nil
}

func (x *FunctionTool) GetStrict() bool {
	if x != nil {
		return x.Strict
	}
	return false
}

// Represents a call to a tool.
type ToolCall struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to ToolCallType:
	//
	//	*ToolCall_FunctionCall
	ToolCallType  isToolCall_ToolCallType `protobuf_oneof:"ToolCallType"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ToolCall) ProtoMessage() {}

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

func (x *ToolCall) GetToolCallType() isToolCall_ToolCallType {
	if x != nil {
		return x.ToolCallType
	}
	return nil
}

func (x *ToolCall) GetFunctionCall() *FunctionCall {
	if x != nil {
		if x, ok := x.ToolCallType.(*ToolCall_FunctionCall); ok {
			return x.FunctionCall
		}
	}
	return nil
}

type isToolCall_ToolCallType interface {
	isToolCall_ToolCallType()
}

type ToolCall_FunctionCall struct {
	// Represents a call to a function.
	FunctionCall *FunctionCall `protobuf:"bytes,1,opt,name=function_call,json=functionCall,proto3,oneof"`
}

func (*ToolCall_FunctionCall) isToolCall_ToolCallType() {}

// Represents the invocation of a function with specific arguments.
type FunctionCall struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the function being called.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The structured arguments passed to the function.
	// These arguments must adhere to the JSON Schema defined in the corresponding function's parameters.
	Arguments     *structpb.Struct `protobuf:"bytes,2,opt,name=arguments,proto3" json:"arguments,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FunctionCall) ProtoMessage() {}

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

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

func (x *FunctionCall) GetArguments() *structpb.Struct {
	if x != nil {
		return x.Arguments
	}
	return nil
}

// Represents a list of tool calls.
type ToolCallList struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A list of tool calls to be executed.
	ToolCalls     []*ToolCall `protobuf:"bytes,1,rep,name=tool_calls,json=toolCalls,proto3" json:"tool_calls,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ToolCallList) ProtoMessage() {}

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

func (x *ToolCallList) GetToolCalls() []*ToolCall {
	if x != nil {
		return x.ToolCalls
	}
	return nil
}

// Represents the result of a tool call.
type ToolResult struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to ToolResultType:
	//
	//	*ToolResult_FunctionResult
	ToolResultType isToolResult_ToolResultType `protobuf_oneof:"ToolResultType"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*ToolResult) ProtoMessage() {}

func (x *ToolResult) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ToolResult.ProtoReflect.Descriptor instead.
func (*ToolResult) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescGZIP(), []int{11}
}

func (x *ToolResult) GetToolResultType() isToolResult_ToolResultType {
	if x != nil {
		return x.ToolResultType
	}
	return nil
}

func (x *ToolResult) GetFunctionResult() *FunctionResult {
	if x != nil {
		if x, ok := x.ToolResultType.(*ToolResult_FunctionResult); ok {
			return x.FunctionResult
		}
	}
	return nil
}

type isToolResult_ToolResultType interface {
	isToolResult_ToolResultType()
}

type ToolResult_FunctionResult struct {
	// Represents the result of a function call.
	FunctionResult *FunctionResult `protobuf:"bytes,1,opt,name=function_result,json=functionResult,proto3,oneof"`
}

func (*ToolResult_FunctionResult) isToolResult_ToolResultType() {}

// Represents the result of a function call.
type FunctionResult struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the function that was executed.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are valid to be assigned to ContentType:
	//
	//	*FunctionResult_Content
	ContentType   isFunctionResult_ContentType `protobuf_oneof:"ContentType"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FunctionResult) ProtoMessage() {}

func (x *FunctionResult) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FunctionResult.ProtoReflect.Descriptor instead.
func (*FunctionResult) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescGZIP(), []int{12}
}

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

func (x *FunctionResult) GetContentType() isFunctionResult_ContentType {
	if x != nil {
		return x.ContentType
	}
	return nil
}

func (x *FunctionResult) GetContent() string {
	if x != nil {
		if x, ok := x.ContentType.(*FunctionResult_Content); ok {
			return x.Content
		}
	}
	return ""
}

type isFunctionResult_ContentType interface {
	isFunctionResult_ContentType()
}

type FunctionResult_Content struct {
	// The result of the function call, represented as a string.
	// This field can be used to store the output of the function.
	Content string `protobuf:"bytes,2,opt,name=content,proto3,oneof"`
}

func (*FunctionResult_Content) isFunctionResult_ContentType() {}

// Represents a list of tool results.
type ToolResultList struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A list of tool results.
	ToolResults   []*ToolResult `protobuf:"bytes,1,rep,name=tool_results,json=toolResults,proto3" json:"tool_results,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ToolResultList) ProtoMessage() {}

func (x *ToolResultList) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ToolResultList.ProtoReflect.Descriptor instead.
func (*ToolResultList) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescGZIP(), []int{13}
}

func (x *ToolResultList) GetToolResults() []*ToolResult {
	if x != nil {
		return x.ToolResults
	}
	return nil
}

// Represents the expected structure of the model's response using a JSON Schema.
type JsonSchema struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The JSON Schema that the model's output must conform to.
	Schema        *structpb.Struct `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*JsonSchema) ProtoMessage() {}

func (x *JsonSchema) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use JsonSchema.ProtoReflect.Descriptor instead.
func (*JsonSchema) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescGZIP(), []int{14}
}

func (x *JsonSchema) GetSchema() *structpb.Struct {
	if x != nil {
		return x.Schema
	}
	return nil
}

// Specifies how the model should select which tool (or tools) to use when generating a response.
type ToolChoice struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to ToolChoice:
	//
	//	*ToolChoice_Mode
	//	*ToolChoice_FunctionName
	ToolChoice    isToolChoice_ToolChoice `protobuf_oneof:"ToolChoice"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ToolChoice) ProtoMessage() {}

func (x *ToolChoice) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ToolChoice.ProtoReflect.Descriptor instead.
func (*ToolChoice) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescGZIP(), []int{15}
}

func (x *ToolChoice) GetToolChoice() isToolChoice_ToolChoice {
	if x != nil {
		return x.ToolChoice
	}
	return nil
}

func (x *ToolChoice) GetMode() ToolChoice_ToolChoiceMode {
	if x != nil {
		if x, ok := x.ToolChoice.(*ToolChoice_Mode); ok {
			return x.Mode
		}
	}
	return ToolChoice_TOOL_CHOICE_MODE_UNSPECIFIED
}

func (x *ToolChoice) GetFunctionName() string {
	if x != nil {
		if x, ok := x.ToolChoice.(*ToolChoice_FunctionName); ok {
			return x.FunctionName
		}
	}
	return ""
}

type isToolChoice_ToolChoice interface {
	isToolChoice_ToolChoice()
}

type ToolChoice_Mode struct {
	// Specifies the overall tool-calling mode.
	Mode ToolChoice_ToolChoiceMode `protobuf:"varint,1,opt,name=mode,proto3,enum=yandex.cloud.ai.foundation_models.v1.ToolChoice_ToolChoiceMode,oneof"`
}

type ToolChoice_FunctionName struct {
	// Forces the model to call a specific function.
	// The provided string must match the name of a function in the API request.
	FunctionName string `protobuf:"bytes,2,opt,name=function_name,json=functionName,proto3,oneof"`
}

func (*ToolChoice_Mode) isToolChoice_ToolChoice() {}

func (*ToolChoice_FunctionName) isToolChoice_ToolChoice() {}

// Provides additional information about how the completion tokens were utilized.
type ContentUsage_CompletionTokensDetails struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The number of tokens used specifically for internal reasoning performed by the model.
	ReasoningTokens int64 `protobuf:"varint,1,opt,name=reasoning_tokens,json=reasoningTokens,proto3" json:"reasoning_tokens,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*ContentUsage_CompletionTokensDetails) ProtoMessage() {}

func (x *ContentUsage_CompletionTokensDetails) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ContentUsage_CompletionTokensDetails.ProtoReflect.Descriptor instead.
func (*ContentUsage_CompletionTokensDetails) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescGZIP(), []int{3, 0}
}

func (x *ContentUsage_CompletionTokensDetails) GetReasoningTokens() int64 {
	if x != nil {
		return x.ReasoningTokens
	}
	return 0
}

var File_yandex_cloud_ai_foundation_models_v1_text_common_proto protoreflect.FileDescriptor

const file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDesc = "" +
	"\n" +
	"6yandex/cloud/ai/foundation_models/v1/text_common.proto\x12$yandex.cloud.ai.foundation_models.v1\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\x8c\x02\n" +
	"\x11CompletionOptions\x12\x16\n" +
	"\x06stream\x18\x01 \x01(\bR\x06stream\x12>\n" +
	"\vtemperature\x18\x02 \x01(\v2\x1c.google.protobuf.DoubleValueR\vtemperature\x12:\n" +
	"\n" +
	"max_tokens\x18\x03 \x01(\v2\x1b.google.protobuf.Int64ValueR\tmaxTokens\x12c\n" +
	"\x11reasoning_options\x18\x04 \x01(\v26.yandex.cloud.ai.foundation_models.v1.ReasoningOptionsR\x10reasoningOptions\"\xbf\x01\n" +
	"\x10ReasoningOptions\x12X\n" +
	"\x04mode\x18\x01 \x01(\x0e2D.yandex.cloud.ai.foundation_models.v1.ReasoningOptions.ReasoningModeR\x04mode\"Q\n" +
	"\rReasoningMode\x12\x1e\n" +
	"\x1aREASONING_MODE_UNSPECIFIED\x10\x00\x12\f\n" +
	"\bDISABLED\x10\x01\x12\x12\n" +
	"\x0eENABLED_HIDDEN\x10\x02\"\xfc\x01\n" +
	"\aMessage\x12\x12\n" +
	"\x04role\x18\x01 \x01(\tR\x04role\x12\x14\n" +
	"\x04text\x18\x02 \x01(\tH\x00R\x04text\x12Z\n" +
	"\x0etool_call_list\x18\x03 \x01(\v22.yandex.cloud.ai.foundation_models.v1.ToolCallListH\x00R\ftoolCallList\x12`\n" +
	"\x10tool_result_list\x18\x04 \x01(\v24.yandex.cloud.ai.foundation_models.v1.ToolResultListH\x00R\x0etoolResultListB\t\n" +
	"\aContent\"\xd9\x02\n" +
	"\fContentUsage\x12*\n" +
	"\x11input_text_tokens\x18\x01 \x01(\x03R\x0finputTextTokens\x12+\n" +
	"\x11completion_tokens\x18\x02 \x01(\x03R\x10completionTokens\x12!\n" +
	"\ftotal_tokens\x18\x03 \x01(\x03R\vtotalTokens\x12\x86\x01\n" +
	"\x19completion_tokens_details\x18\x04 \x01(\v2J.yandex.cloud.ai.foundation_models.v1.ContentUsage.CompletionTokensDetailsR\x17completionTokensDetails\x1aD\n" +
	"\x17CompletionTokensDetails\x12)\n" +
	"\x10reasoning_tokens\x18\x01 \x01(\x03R\x0freasoningTokens\"\x9d\x03\n" +
	"\vAlternative\x12G\n" +
	"\amessage\x18\x01 \x01(\v2-.yandex.cloud.ai.foundation_models.v1.MessageR\amessage\x12[\n" +
	"\x06status\x18\x02 \x01(\x0e2C.yandex.cloud.ai.foundation_models.v1.Alternative.AlternativeStatusR\x06status\"\xe7\x01\n" +
	"\x11AlternativeStatus\x12\"\n" +
	"\x1eALTERNATIVE_STATUS_UNSPECIFIED\x10\x00\x12\x1e\n" +
	"\x1aALTERNATIVE_STATUS_PARTIAL\x10\x01\x12&\n" +
	"\"ALTERNATIVE_STATUS_TRUNCATED_FINAL\x10\x02\x12\x1c\n" +
	"\x18ALTERNATIVE_STATUS_FINAL\x10\x03\x12%\n" +
	"!ALTERNATIVE_STATUS_CONTENT_FILTER\x10\x04\x12!\n" +
	"\x1dALTERNATIVE_STATUS_TOOL_CALLS\x10\x05\"E\n" +
	"\x05Token\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\x03R\x02id\x12\x12\n" +
	"\x04text\x18\x02 \x01(\tR\x04text\x12\x18\n" +
	"\aspecial\x18\x03 \x01(\bR\aspecial\"d\n" +
	"\x04Tool\x12P\n" +
	"\bfunction\x18\x01 \x01(\v22.yandex.cloud.ai.foundation_models.v1.FunctionToolH\x00R\bfunctionB\n" +
	"\n" +
	"\bToolType\"\x95\x01\n" +
	"\fFunctionTool\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x02 \x01(\tR\vdescription\x127\n" +
	"\n" +
	"parameters\x18\x03 \x01(\v2\x17.google.protobuf.StructR\n" +
	"parameters\x12\x16\n" +
	"\x06strict\x18\x04 \x01(\bR\x06strict\"u\n" +
	"\bToolCall\x12Y\n" +
	"\rfunction_call\x18\x01 \x01(\v22.yandex.cloud.ai.foundation_models.v1.FunctionCallH\x00R\ffunctionCallB\x0e\n" +
	"\fToolCallType\"Y\n" +
	"\fFunctionCall\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x125\n" +
	"\targuments\x18\x02 \x01(\v2\x17.google.protobuf.StructR\targuments\"]\n" +
	"\fToolCallList\x12M\n" +
	"\n" +
	"tool_calls\x18\x01 \x03(\v2..yandex.cloud.ai.foundation_models.v1.ToolCallR\ttoolCalls\"\x7f\n" +
	"\n" +
	"ToolResult\x12_\n" +
	"\x0ffunction_result\x18\x01 \x01(\v24.yandex.cloud.ai.foundation_models.v1.FunctionResultH\x00R\x0efunctionResultB\x10\n" +
	"\x0eToolResultType\"O\n" +
	"\x0eFunctionResult\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12\x1a\n" +
	"\acontent\x18\x02 \x01(\tH\x00R\acontentB\r\n" +
	"\vContentType\"e\n" +
	"\x0eToolResultList\x12S\n" +
	"\ftool_results\x18\x01 \x03(\v20.yandex.cloud.ai.foundation_models.v1.ToolResultR\vtoolResults\"=\n" +
	"\n" +
	"JsonSchema\x12/\n" +
	"\x06schema\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x06schema\"\xee\x01\n" +
	"\n" +
	"ToolChoice\x12U\n" +
	"\x04mode\x18\x01 \x01(\x0e2?.yandex.cloud.ai.foundation_models.v1.ToolChoice.ToolChoiceModeH\x00R\x04mode\x12%\n" +
	"\rfunction_name\x18\x02 \x01(\tH\x00R\ffunctionName\"T\n" +
	"\x0eToolChoiceMode\x12 \n" +
	"\x1cTOOL_CHOICE_MODE_UNSPECIFIED\x10\x00\x12\b\n" +
	"\x04NONE\x10\x01\x12\b\n" +
	"\x04AUTO\x10\x02\x12\f\n" +
	"\bREQUIRED\x10\x03B\f\n" +
	"\n" +
	"ToolChoiceB\x86\x01\n" +
	"(yandex.cloud.api.ai.foundation_models.v1ZZgithub.com/yandex-cloud/go-genproto/yandex/cloud/ai/foundation_models/v1;foundation_modelsb\x06proto3"

var (
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescOnce sync.Once
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescData []byte
)

func file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescGZIP() []byte {
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDesc), len(file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDesc)))
	})
	return file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDescData
}

var file_yandex_cloud_ai_foundation_models_v1_text_common_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_yandex_cloud_ai_foundation_models_v1_text_common_proto_goTypes = []any{
	(ReasoningOptions_ReasoningMode)(0),          // 0: yandex.cloud.ai.foundation_models.v1.ReasoningOptions.ReasoningMode
	(Alternative_AlternativeStatus)(0),           // 1: yandex.cloud.ai.foundation_models.v1.Alternative.AlternativeStatus
	(ToolChoice_ToolChoiceMode)(0),               // 2: yandex.cloud.ai.foundation_models.v1.ToolChoice.ToolChoiceMode
	(*CompletionOptions)(nil),                    // 3: yandex.cloud.ai.foundation_models.v1.CompletionOptions
	(*ReasoningOptions)(nil),                     // 4: yandex.cloud.ai.foundation_models.v1.ReasoningOptions
	(*Message)(nil),                              // 5: yandex.cloud.ai.foundation_models.v1.Message
	(*ContentUsage)(nil),                         // 6: yandex.cloud.ai.foundation_models.v1.ContentUsage
	(*Alternative)(nil),                          // 7: yandex.cloud.ai.foundation_models.v1.Alternative
	(*Token)(nil),                                // 8: yandex.cloud.ai.foundation_models.v1.Token
	(*Tool)(nil),                                 // 9: yandex.cloud.ai.foundation_models.v1.Tool
	(*FunctionTool)(nil),                         // 10: yandex.cloud.ai.foundation_models.v1.FunctionTool
	(*ToolCall)(nil),                             // 11: yandex.cloud.ai.foundation_models.v1.ToolCall
	(*FunctionCall)(nil),                         // 12: yandex.cloud.ai.foundation_models.v1.FunctionCall
	(*ToolCallList)(nil),                         // 13: yandex.cloud.ai.foundation_models.v1.ToolCallList
	(*ToolResult)(nil),                           // 14: yandex.cloud.ai.foundation_models.v1.ToolResult
	(*FunctionResult)(nil),                       // 15: yandex.cloud.ai.foundation_models.v1.FunctionResult
	(*ToolResultList)(nil),                       // 16: yandex.cloud.ai.foundation_models.v1.ToolResultList
	(*JsonSchema)(nil),                           // 17: yandex.cloud.ai.foundation_models.v1.JsonSchema
	(*ToolChoice)(nil),                           // 18: yandex.cloud.ai.foundation_models.v1.ToolChoice
	(*ContentUsage_CompletionTokensDetails)(nil), // 19: yandex.cloud.ai.foundation_models.v1.ContentUsage.CompletionTokensDetails
	(*wrapperspb.DoubleValue)(nil),               // 20: google.protobuf.DoubleValue
	(*wrapperspb.Int64Value)(nil),                // 21: google.protobuf.Int64Value
	(*structpb.Struct)(nil),                      // 22: google.protobuf.Struct
}
var file_yandex_cloud_ai_foundation_models_v1_text_common_proto_depIdxs = []int32{
	20, // 0: yandex.cloud.ai.foundation_models.v1.CompletionOptions.temperature:type_name -> google.protobuf.DoubleValue
	21, // 1: yandex.cloud.ai.foundation_models.v1.CompletionOptions.max_tokens:type_name -> google.protobuf.Int64Value
	4,  // 2: yandex.cloud.ai.foundation_models.v1.CompletionOptions.reasoning_options:type_name -> yandex.cloud.ai.foundation_models.v1.ReasoningOptions
	0,  // 3: yandex.cloud.ai.foundation_models.v1.ReasoningOptions.mode:type_name -> yandex.cloud.ai.foundation_models.v1.ReasoningOptions.ReasoningMode
	13, // 4: yandex.cloud.ai.foundation_models.v1.Message.tool_call_list:type_name -> yandex.cloud.ai.foundation_models.v1.ToolCallList
	16, // 5: yandex.cloud.ai.foundation_models.v1.Message.tool_result_list:type_name -> yandex.cloud.ai.foundation_models.v1.ToolResultList
	19, // 6: yandex.cloud.ai.foundation_models.v1.ContentUsage.completion_tokens_details:type_name -> yandex.cloud.ai.foundation_models.v1.ContentUsage.CompletionTokensDetails
	5,  // 7: yandex.cloud.ai.foundation_models.v1.Alternative.message:type_name -> yandex.cloud.ai.foundation_models.v1.Message
	1,  // 8: yandex.cloud.ai.foundation_models.v1.Alternative.status:type_name -> yandex.cloud.ai.foundation_models.v1.Alternative.AlternativeStatus
	10, // 9: yandex.cloud.ai.foundation_models.v1.Tool.function:type_name -> yandex.cloud.ai.foundation_models.v1.FunctionTool
	22, // 10: yandex.cloud.ai.foundation_models.v1.FunctionTool.parameters:type_name -> google.protobuf.Struct
	12, // 11: yandex.cloud.ai.foundation_models.v1.ToolCall.function_call:type_name -> yandex.cloud.ai.foundation_models.v1.FunctionCall
	22, // 12: yandex.cloud.ai.foundation_models.v1.FunctionCall.arguments:type_name -> google.protobuf.Struct
	11, // 13: yandex.cloud.ai.foundation_models.v1.ToolCallList.tool_calls:type_name -> yandex.cloud.ai.foundation_models.v1.ToolCall
	15, // 14: yandex.cloud.ai.foundation_models.v1.ToolResult.function_result:type_name -> yandex.cloud.ai.foundation_models.v1.FunctionResult
	14, // 15: yandex.cloud.ai.foundation_models.v1.ToolResultList.tool_results:type_name -> yandex.cloud.ai.foundation_models.v1.ToolResult
	22, // 16: yandex.cloud.ai.foundation_models.v1.JsonSchema.schema:type_name -> google.protobuf.Struct
	2,  // 17: yandex.cloud.ai.foundation_models.v1.ToolChoice.mode:type_name -> yandex.cloud.ai.foundation_models.v1.ToolChoice.ToolChoiceMode
	18, // [18:18] is the sub-list for method output_type
	18, // [18:18] is the sub-list for method input_type
	18, // [18:18] is the sub-list for extension type_name
	18, // [18:18] is the sub-list for extension extendee
	0,  // [0:18] is the sub-list for field type_name
}

func init() { file_yandex_cloud_ai_foundation_models_v1_text_common_proto_init() }
func file_yandex_cloud_ai_foundation_models_v1_text_common_proto_init() {
	if File_yandex_cloud_ai_foundation_models_v1_text_common_proto != nil {
		return
	}
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[2].OneofWrappers = []any{
		(*Message_Text)(nil),
		(*Message_ToolCallList)(nil),
		(*Message_ToolResultList)(nil),
	}
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[6].OneofWrappers = []any{
		(*Tool_Function)(nil),
	}
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[8].OneofWrappers = []any{
		(*ToolCall_FunctionCall)(nil),
	}
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[11].OneofWrappers = []any{
		(*ToolResult_FunctionResult)(nil),
	}
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[12].OneofWrappers = []any{
		(*FunctionResult_Content)(nil),
	}
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes[15].OneofWrappers = []any{
		(*ToolChoice_Mode)(nil),
		(*ToolChoice_FunctionName)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDesc), len(file_yandex_cloud_ai_foundation_models_v1_text_common_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   17,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_ai_foundation_models_v1_text_common_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_ai_foundation_models_v1_text_common_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_ai_foundation_models_v1_text_common_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_ai_foundation_models_v1_text_common_proto_msgTypes,
	}.Build()
	File_yandex_cloud_ai_foundation_models_v1_text_common_proto = out.File
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_goTypes = nil
	file_yandex_cloud_ai_foundation_models_v1_text_common_proto_depIdxs = nil
}
