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

package fomo

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	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)
)

type ReasoningOptions_ReasoningMode int32

const (
	ReasoningOptions_REASONING_MODE_UNSPECIFIED ReasoningOptions_ReasoningMode = 0
	ReasoningOptions_DISABLED                   ReasoningOptions_ReasoningMode = 1
	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_batch_inference_v1_inference_options_proto_enumTypes[0].Descriptor()
}

func (ReasoningOptions_ReasoningMode) Type() protoreflect.EnumType {
	return &file_yandex_cloud_ai_batch_inference_v1_inference_options_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_batch_inference_v1_inference_options_proto_rawDescGZIP(), []int{2, 0}
}

type BatchCompletionRequest struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	ModelUri           string                 `protobuf:"bytes,1,opt,name=model_uri,json=modelUri,proto3" json:"model_uri,omitempty"`
	SourceDatasetId    string                 `protobuf:"bytes,2,opt,name=source_dataset_id,json=sourceDatasetId,proto3" json:"source_dataset_id,omitempty"`
	CompletionOptions  *CompletionOptions     `protobuf:"bytes,3,opt,name=completion_options,json=completionOptions,proto3" json:"completion_options,omitempty"`
	DataLoggingEnabled bool                   `protobuf:"varint,4,opt,name=data_logging_enabled,json=dataLoggingEnabled,proto3" json:"data_logging_enabled,omitempty"`
	// Unsupported
	//
	// Types that are valid to be assigned to StructuredOutput:
	//
	//	*BatchCompletionRequest_JsonObject
	//	*BatchCompletionRequest_JsonSchema
	StructuredOutput isBatchCompletionRequest_StructuredOutput `protobuf_oneof:"StructuredOutput"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*BatchCompletionRequest) ProtoMessage() {}

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

func (x *BatchCompletionRequest) GetModelUri() string {
	if x != nil {
		return x.ModelUri
	}
	return ""
}

func (x *BatchCompletionRequest) GetSourceDatasetId() string {
	if x != nil {
		return x.SourceDatasetId
	}
	return ""
}

func (x *BatchCompletionRequest) GetCompletionOptions() *CompletionOptions {
	if x != nil {
		return x.CompletionOptions
	}
	return nil
}

func (x *BatchCompletionRequest) GetDataLoggingEnabled() bool {
	if x != nil {
		return x.DataLoggingEnabled
	}
	return false
}

func (x *BatchCompletionRequest) GetStructuredOutput() isBatchCompletionRequest_StructuredOutput {
	if x != nil {
		return x.StructuredOutput
	}
	return nil
}

func (x *BatchCompletionRequest) GetJsonObject() bool {
	if x != nil {
		if x, ok := x.StructuredOutput.(*BatchCompletionRequest_JsonObject); ok {
			return x.JsonObject
		}
	}
	return false
}

func (x *BatchCompletionRequest) GetJsonSchema() *JsonSchema {
	if x != nil {
		if x, ok := x.StructuredOutput.(*BatchCompletionRequest_JsonSchema); ok {
			return x.JsonSchema
		}
	}
	return nil
}

type isBatchCompletionRequest_StructuredOutput interface {
	isBatchCompletionRequest_StructuredOutput()
}

type BatchCompletionRequest_JsonObject struct {
	JsonObject bool `protobuf:"varint,5,opt,name=json_object,json=jsonObject,proto3,oneof"`
}

type BatchCompletionRequest_JsonSchema struct {
	JsonSchema *JsonSchema `protobuf:"bytes,6,opt,name=json_schema,json=jsonSchema,proto3,oneof"`
}

func (*BatchCompletionRequest_JsonObject) isBatchCompletionRequest_StructuredOutput() {}

func (*BatchCompletionRequest_JsonSchema) isBatchCompletionRequest_StructuredOutput() {}

type CompletionOptions struct {
	state            protoimpl.MessageState  `protogen:"open.v1"`
	Temperature      *wrapperspb.DoubleValue `protobuf:"bytes,1,opt,name=temperature,proto3" json:"temperature,omitempty"`
	MaxTokens        *wrapperspb.Int64Value  `protobuf:"bytes,2,opt,name=max_tokens,json=maxTokens,proto3" json:"max_tokens,omitempty"`
	ReasoningOptions *ReasoningOptions       `protobuf:"bytes,3,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_batch_inference_v1_inference_options_proto_msgTypes[1]
	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_batch_inference_v1_inference_options_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 CompletionOptions.ProtoReflect.Descriptor instead.
func (*CompletionOptions) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDescGZIP(), []int{1}
}

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
}

type ReasoningOptions struct {
	state         protoimpl.MessageState         `protogen:"open.v1"`
	Mode          ReasoningOptions_ReasoningMode `protobuf:"varint,1,opt,name=mode,proto3,enum=yandex.cloud.ai.batch_inference.v1.ReasoningOptions_ReasoningMode" json:"mode,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ReasoningOptions) Reset() {
	*x = ReasoningOptions{}
	mi := &file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_msgTypes[2]
	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_batch_inference_v1_inference_options_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 ReasoningOptions.ProtoReflect.Descriptor instead.
func (*ReasoningOptions) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDescGZIP(), []int{2}
}

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

type JsonSchema struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	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_batch_inference_v1_inference_options_proto_msgTypes[3]
	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_batch_inference_v1_inference_options_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 JsonSchema.ProtoReflect.Descriptor instead.
func (*JsonSchema) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDescGZIP(), []int{3}
}

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

var File_yandex_cloud_ai_batch_inference_v1_inference_options_proto protoreflect.FileDescriptor

const file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDesc = "" +
	"\n" +
	":yandex/cloud/ai/batch_inference/v1/inference_options.proto\x12\"yandex.cloud.ai.batch_inference.v1\x1a\x1egoogle/protobuf/wrappers.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1dyandex/cloud/validation.proto\"\x8f\x03\n" +
	"\x16BatchCompletionRequest\x12!\n" +
	"\tmodel_uri\x18\x01 \x01(\tB\x04\xe8\xc71\x01R\bmodelUri\x120\n" +
	"\x11source_dataset_id\x18\x02 \x01(\tB\x04\xe8\xc71\x01R\x0fsourceDatasetId\x12d\n" +
	"\x12completion_options\x18\x03 \x01(\v25.yandex.cloud.ai.batch_inference.v1.CompletionOptionsR\x11completionOptions\x120\n" +
	"\x14data_logging_enabled\x18\x04 \x01(\bR\x12dataLoggingEnabled\x12!\n" +
	"\vjson_object\x18\x05 \x01(\bH\x00R\n" +
	"jsonObject\x12Q\n" +
	"\vjson_schema\x18\x06 \x01(\v2..yandex.cloud.ai.batch_inference.v1.JsonSchemaH\x00R\n" +
	"jsonSchemaB\x12\n" +
	"\x10StructuredOutput\"\xf2\x01\n" +
	"\x11CompletionOptions\x12>\n" +
	"\vtemperature\x18\x01 \x01(\v2\x1c.google.protobuf.DoubleValueR\vtemperature\x12:\n" +
	"\n" +
	"max_tokens\x18\x02 \x01(\v2\x1b.google.protobuf.Int64ValueR\tmaxTokens\x12a\n" +
	"\x11reasoning_options\x18\x03 \x01(\v24.yandex.cloud.ai.batch_inference.v1.ReasoningOptionsR\x10reasoningOptions\"\xbd\x01\n" +
	"\x10ReasoningOptions\x12V\n" +
	"\x04mode\x18\x01 \x01(\x0e2B.yandex.cloud.ai.batch_inference.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\"=\n" +
	"\n" +
	"JsonSchema\x12/\n" +
	"\x06schema\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x06schemaBu\n" +
	"&yandex.cloud.api.ai.batch_inference.v1ZKgithub.com/yandex-cloud/go-genproto/yandex/cloud/ai/batch_inference/v1;fomob\x06proto3"

var (
	file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDescOnce sync.Once
	file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDescData []byte
)

func file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDescGZIP() []byte {
	file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDesc), len(file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDesc)))
	})
	return file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDescData
}

var file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_goTypes = []any{
	(ReasoningOptions_ReasoningMode)(0), // 0: yandex.cloud.ai.batch_inference.v1.ReasoningOptions.ReasoningMode
	(*BatchCompletionRequest)(nil),      // 1: yandex.cloud.ai.batch_inference.v1.BatchCompletionRequest
	(*CompletionOptions)(nil),           // 2: yandex.cloud.ai.batch_inference.v1.CompletionOptions
	(*ReasoningOptions)(nil),            // 3: yandex.cloud.ai.batch_inference.v1.ReasoningOptions
	(*JsonSchema)(nil),                  // 4: yandex.cloud.ai.batch_inference.v1.JsonSchema
	(*wrapperspb.DoubleValue)(nil),      // 5: google.protobuf.DoubleValue
	(*wrapperspb.Int64Value)(nil),       // 6: google.protobuf.Int64Value
	(*structpb.Struct)(nil),             // 7: google.protobuf.Struct
}
var file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_depIdxs = []int32{
	2, // 0: yandex.cloud.ai.batch_inference.v1.BatchCompletionRequest.completion_options:type_name -> yandex.cloud.ai.batch_inference.v1.CompletionOptions
	4, // 1: yandex.cloud.ai.batch_inference.v1.BatchCompletionRequest.json_schema:type_name -> yandex.cloud.ai.batch_inference.v1.JsonSchema
	5, // 2: yandex.cloud.ai.batch_inference.v1.CompletionOptions.temperature:type_name -> google.protobuf.DoubleValue
	6, // 3: yandex.cloud.ai.batch_inference.v1.CompletionOptions.max_tokens:type_name -> google.protobuf.Int64Value
	3, // 4: yandex.cloud.ai.batch_inference.v1.CompletionOptions.reasoning_options:type_name -> yandex.cloud.ai.batch_inference.v1.ReasoningOptions
	0, // 5: yandex.cloud.ai.batch_inference.v1.ReasoningOptions.mode:type_name -> yandex.cloud.ai.batch_inference.v1.ReasoningOptions.ReasoningMode
	7, // 6: yandex.cloud.ai.batch_inference.v1.JsonSchema.schema:type_name -> google.protobuf.Struct
	7, // [7:7] is the sub-list for method output_type
	7, // [7:7] is the sub-list for method input_type
	7, // [7:7] is the sub-list for extension type_name
	7, // [7:7] is the sub-list for extension extendee
	0, // [0:7] is the sub-list for field type_name
}

func init() { file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_init() }
func file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_init() {
	if File_yandex_cloud_ai_batch_inference_v1_inference_options_proto != nil {
		return
	}
	file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_msgTypes[0].OneofWrappers = []any{
		(*BatchCompletionRequest_JsonObject)(nil),
		(*BatchCompletionRequest_JsonSchema)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDesc), len(file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   4,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_msgTypes,
	}.Build()
	File_yandex_cloud_ai_batch_inference_v1_inference_options_proto = out.File
	file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_goTypes = nil
	file_yandex_cloud_ai_batch_inference_v1_inference_options_proto_depIdxs = nil
}
