// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        v3.21.12
// source: yandex/cloud/searchapi/v2/img_search_service.proto

package searchapi

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ImageSpec_ImageFormat int32

const (
	ImageSpec_IMAGE_FORMAT_UNSPECIFIED ImageSpec_ImageFormat = 0
	// JPG format.
	ImageSpec_IMAGE_FORMAT_JPEG ImageSpec_ImageFormat = 1
	// GIF format.
	ImageSpec_IMAGE_FORMAT_GIF ImageSpec_ImageFormat = 2
	// PNG format.
	ImageSpec_IMAGE_FORMAT_PNG ImageSpec_ImageFormat = 3
)

// Enum value maps for ImageSpec_ImageFormat.
var (
	ImageSpec_ImageFormat_name = map[int32]string{
		0: "IMAGE_FORMAT_UNSPECIFIED",
		1: "IMAGE_FORMAT_JPEG",
		2: "IMAGE_FORMAT_GIF",
		3: "IMAGE_FORMAT_PNG",
	}
	ImageSpec_ImageFormat_value = map[string]int32{
		"IMAGE_FORMAT_UNSPECIFIED": 0,
		"IMAGE_FORMAT_JPEG":        1,
		"IMAGE_FORMAT_GIF":         2,
		"IMAGE_FORMAT_PNG":         3,
	}
)

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

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

func (ImageSpec_ImageFormat) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes[0].Descriptor()
}

func (ImageSpec_ImageFormat) Type() protoreflect.EnumType {
	return &file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes[0]
}

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

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

type ImageSpec_ImageOrientation int32

const (
	ImageSpec_IMAGE_ORIENTATION_UNSPECIFIED ImageSpec_ImageOrientation = 0
	// Horizontal orientation.
	ImageSpec_IMAGE_ORIENTATION_VERTICAL ImageSpec_ImageOrientation = 1
	// Vertical orientation.
	ImageSpec_IMAGE_ORIENTATION_HORIZONTAL ImageSpec_ImageOrientation = 2
	// Square aspect ratio.
	ImageSpec_IMAGE_ORIENTATION_SQUARE ImageSpec_ImageOrientation = 3
)

// Enum value maps for ImageSpec_ImageOrientation.
var (
	ImageSpec_ImageOrientation_name = map[int32]string{
		0: "IMAGE_ORIENTATION_UNSPECIFIED",
		1: "IMAGE_ORIENTATION_VERTICAL",
		2: "IMAGE_ORIENTATION_HORIZONTAL",
		3: "IMAGE_ORIENTATION_SQUARE",
	}
	ImageSpec_ImageOrientation_value = map[string]int32{
		"IMAGE_ORIENTATION_UNSPECIFIED": 0,
		"IMAGE_ORIENTATION_VERTICAL":    1,
		"IMAGE_ORIENTATION_HORIZONTAL":  2,
		"IMAGE_ORIENTATION_SQUARE":      3,
	}
)

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

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

func (ImageSpec_ImageOrientation) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes[1].Descriptor()
}

func (ImageSpec_ImageOrientation) Type() protoreflect.EnumType {
	return &file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes[1]
}

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

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

type ImageSpec_ImageSize int32

const (
	ImageSpec_IMAGE_SIZE_UNSPECIFIED ImageSpec_ImageSize = 0
	// Very large images (larger than 1,600 × 1,200 pixels).
	ImageSpec_IMAGE_SIZE_ENORMOUS ImageSpec_ImageSize = 1
	// Large images (from 800 × 600 to 1,600 × 1,200 pixels).
	ImageSpec_IMAGE_SIZE_LARGE ImageSpec_ImageSize = 2
	// Medium images (from 150 × 150 to 800 × 600 pixels).
	ImageSpec_IMAGE_SIZE_MEDIUM ImageSpec_ImageSize = 3
	// Small images (from 32 × 32 to 150 × 150 pixels).
	ImageSpec_IMAGE_SIZE_SMALL ImageSpec_ImageSize = 4
	// Icons (up to 32 × 32 pixels).
	ImageSpec_IMAGE_SIZE_TINY ImageSpec_ImageSize = 5
	// Desktop wallpapers.
	ImageSpec_IMAGE_SIZE_WALLPAPER ImageSpec_ImageSize = 6
)

// Enum value maps for ImageSpec_ImageSize.
var (
	ImageSpec_ImageSize_name = map[int32]string{
		0: "IMAGE_SIZE_UNSPECIFIED",
		1: "IMAGE_SIZE_ENORMOUS",
		2: "IMAGE_SIZE_LARGE",
		3: "IMAGE_SIZE_MEDIUM",
		4: "IMAGE_SIZE_SMALL",
		5: "IMAGE_SIZE_TINY",
		6: "IMAGE_SIZE_WALLPAPER",
	}
	ImageSpec_ImageSize_value = map[string]int32{
		"IMAGE_SIZE_UNSPECIFIED": 0,
		"IMAGE_SIZE_ENORMOUS":    1,
		"IMAGE_SIZE_LARGE":       2,
		"IMAGE_SIZE_MEDIUM":      3,
		"IMAGE_SIZE_SMALL":       4,
		"IMAGE_SIZE_TINY":        5,
		"IMAGE_SIZE_WALLPAPER":   6,
	}
)

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

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

func (ImageSpec_ImageSize) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes[2].Descriptor()
}

func (ImageSpec_ImageSize) Type() protoreflect.EnumType {
	return &file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes[2]
}

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

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

type ImageSpec_ImageColor int32

const (
	ImageSpec_IMAGE_COLOR_UNSPECIFIED ImageSpec_ImageColor = 0
	// Color images.
	ImageSpec_IMAGE_COLOR_COLOR ImageSpec_ImageColor = 1
	// Black and white images.
	ImageSpec_IMAGE_COLOR_GRAYSCALE ImageSpec_ImageColor = 2
	// Red is the main color of the image.
	ImageSpec_IMAGE_COLOR_RED ImageSpec_ImageColor = 3
	// Orange is the main color of the image.
	ImageSpec_IMAGE_COLOR_ORANGE ImageSpec_ImageColor = 4
	// Yellow is the main color of the image.
	ImageSpec_IMAGE_COLOR_YELLOW ImageSpec_ImageColor = 5
	// Green is the main color of the image.
	ImageSpec_IMAGE_COLOR_GREEN ImageSpec_ImageColor = 6
	// Cyan is the main color of the image.
	ImageSpec_IMAGE_COLOR_CYAN ImageSpec_ImageColor = 7
	// Blue is the main color of the image.
	ImageSpec_IMAGE_COLOR_BLUE ImageSpec_ImageColor = 8
	// Violet is the main color of the image.
	ImageSpec_IMAGE_COLOR_VIOLET ImageSpec_ImageColor = 9
	// White is the main color of the image.
	ImageSpec_IMAGE_COLOR_WHITE ImageSpec_ImageColor = 10
	// Black is the main color of the image.
	ImageSpec_IMAGE_COLOR_BLACK ImageSpec_ImageColor = 11
)

// Enum value maps for ImageSpec_ImageColor.
var (
	ImageSpec_ImageColor_name = map[int32]string{
		0:  "IMAGE_COLOR_UNSPECIFIED",
		1:  "IMAGE_COLOR_COLOR",
		2:  "IMAGE_COLOR_GRAYSCALE",
		3:  "IMAGE_COLOR_RED",
		4:  "IMAGE_COLOR_ORANGE",
		5:  "IMAGE_COLOR_YELLOW",
		6:  "IMAGE_COLOR_GREEN",
		7:  "IMAGE_COLOR_CYAN",
		8:  "IMAGE_COLOR_BLUE",
		9:  "IMAGE_COLOR_VIOLET",
		10: "IMAGE_COLOR_WHITE",
		11: "IMAGE_COLOR_BLACK",
	}
	ImageSpec_ImageColor_value = map[string]int32{
		"IMAGE_COLOR_UNSPECIFIED": 0,
		"IMAGE_COLOR_COLOR":       1,
		"IMAGE_COLOR_GRAYSCALE":   2,
		"IMAGE_COLOR_RED":         3,
		"IMAGE_COLOR_ORANGE":      4,
		"IMAGE_COLOR_YELLOW":      5,
		"IMAGE_COLOR_GREEN":       6,
		"IMAGE_COLOR_CYAN":        7,
		"IMAGE_COLOR_BLUE":        8,
		"IMAGE_COLOR_VIOLET":      9,
		"IMAGE_COLOR_WHITE":       10,
		"IMAGE_COLOR_BLACK":       11,
	}
)

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

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

func (ImageSpec_ImageColor) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes[3].Descriptor()
}

func (ImageSpec_ImageColor) Type() protoreflect.EnumType {
	return &file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes[3]
}

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

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

type ImageSpec struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Searching for images in a particular format.
	Format ImageSpec_ImageFormat `protobuf:"varint,1,opt,name=format,proto3,enum=yandex.cloud.searchapi.v2.ImageSpec_ImageFormat" json:"format,omitempty"`
	// Searching for images of a particular size.
	Size ImageSpec_ImageSize `protobuf:"varint,2,opt,name=size,proto3,enum=yandex.cloud.searchapi.v2.ImageSpec_ImageSize" json:"size,omitempty"`
	// Searching for images with a particular orientation.
	Orientation ImageSpec_ImageOrientation `protobuf:"varint,3,opt,name=orientation,proto3,enum=yandex.cloud.searchapi.v2.ImageSpec_ImageOrientation" json:"orientation,omitempty"`
	// Searching for images containing a particular color.
	Color         ImageSpec_ImageColor `protobuf:"varint,4,opt,name=color,proto3,enum=yandex.cloud.searchapi.v2.ImageSpec_ImageColor" json:"color,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImageSpec) ProtoMessage() {}

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

func (x *ImageSpec) GetFormat() ImageSpec_ImageFormat {
	if x != nil {
		return x.Format
	}
	return ImageSpec_IMAGE_FORMAT_UNSPECIFIED
}

func (x *ImageSpec) GetSize() ImageSpec_ImageSize {
	if x != nil {
		return x.Size
	}
	return ImageSpec_IMAGE_SIZE_UNSPECIFIED
}

func (x *ImageSpec) GetOrientation() ImageSpec_ImageOrientation {
	if x != nil {
		return x.Orientation
	}
	return ImageSpec_IMAGE_ORIENTATION_UNSPECIFIED
}

func (x *ImageSpec) GetColor() ImageSpec_ImageColor {
	if x != nil {
		return x.Color
	}
	return ImageSpec_IMAGE_COLOR_UNSPECIFIED
}

type ImageSearchRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Search query.
	Query *SearchQuery `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
	// Searching for images with a particular size, orientation, format or color.
	ImageSpec *ImageSpec `protobuf:"bytes,2,opt,name=image_spec,json=imageSpec,proto3" json:"image_spec,omitempty"`
	// Searching for images on a particular website only.
	Site string `protobuf:"bytes,3,opt,name=site,proto3" json:"site,omitempty"`
	// Number of results per search result page.
	DocsOnPage int64 `protobuf:"varint,4,opt,name=docs_on_page,json=docsOnPage,proto3" json:"docs_on_page,omitempty"`
	// ID of the folder.
	FolderId string `protobuf:"bytes,5,opt,name=folder_id,json=folderId,proto3" json:"folder_id,omitempty"`
	// User-Agent request header value.
	UserAgent     string `protobuf:"bytes,6,opt,name=user_agent,json=userAgent,proto3" json:"user_agent,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImageSearchRequest) ProtoMessage() {}

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

func (x *ImageSearchRequest) GetQuery() *SearchQuery {
	if x != nil {
		return x.Query
	}
	return nil
}

func (x *ImageSearchRequest) GetImageSpec() *ImageSpec {
	if x != nil {
		return x.ImageSpec
	}
	return nil
}

func (x *ImageSearchRequest) GetSite() string {
	if x != nil {
		return x.Site
	}
	return ""
}

func (x *ImageSearchRequest) GetDocsOnPage() int64 {
	if x != nil {
		return x.DocsOnPage
	}
	return 0
}

func (x *ImageSearchRequest) GetFolderId() string {
	if x != nil {
		return x.FolderId
	}
	return ""
}

func (x *ImageSearchRequest) GetUserAgent() string {
	if x != nil {
		return x.UserAgent
	}
	return ""
}

type ImageSearchResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Search results in XML format.
	RawData       []byte `protobuf:"bytes,1,opt,name=raw_data,json=rawData,proto3" json:"raw_data,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImageSearchResponse) ProtoMessage() {}

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

func (x *ImageSearchResponse) GetRawData() []byte {
	if x != nil {
		return x.RawData
	}
	return nil
}

type ImageSearchByImageRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Restricts the search to the specific website.
	Site string `protobuf:"bytes,1,opt,name=site,proto3" json:"site,omitempty"`
	// ID of the folder.
	FolderId string `protobuf:"bytes,2,opt,name=folder_id,json=folderId,proto3" json:"folder_id,omitempty"`
	// Types that are valid to be assigned to Image:
	//
	//	*ImageSearchByImageRequest_Url
	//	*ImageSearchByImageRequest_Data
	//	*ImageSearchByImageRequest_Id
	Image isImageSearchByImageRequest_Image `protobuf_oneof:"image"`
	// The number of a requested page with search results.
	Page int64 `protobuf:"varint,6,opt,name=page,proto3" json:"page,omitempty"`
	// Rule for filtering search results and determines whether any documents should be excluded.
	FamilyMode    SearchQuery_FamilyMode `protobuf:"varint,7,opt,name=family_mode,json=familyMode,proto3,enum=yandex.cloud.searchapi.v2.SearchQuery_FamilyMode" json:"family_mode,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImageSearchByImageRequest) ProtoMessage() {}

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

func (x *ImageSearchByImageRequest) GetSite() string {
	if x != nil {
		return x.Site
	}
	return ""
}

func (x *ImageSearchByImageRequest) GetFolderId() string {
	if x != nil {
		return x.FolderId
	}
	return ""
}

func (x *ImageSearchByImageRequest) GetImage() isImageSearchByImageRequest_Image {
	if x != nil {
		return x.Image
	}
	return nil
}

func (x *ImageSearchByImageRequest) GetUrl() string {
	if x != nil {
		if x, ok := x.Image.(*ImageSearchByImageRequest_Url); ok {
			return x.Url
		}
	}
	return ""
}

func (x *ImageSearchByImageRequest) GetData() []byte {
	if x != nil {
		if x, ok := x.Image.(*ImageSearchByImageRequest_Data); ok {
			return x.Data
		}
	}
	return nil
}

func (x *ImageSearchByImageRequest) GetId() string {
	if x != nil {
		if x, ok := x.Image.(*ImageSearchByImageRequest_Id); ok {
			return x.Id
		}
	}
	return ""
}

func (x *ImageSearchByImageRequest) GetPage() int64 {
	if x != nil {
		return x.Page
	}
	return 0
}

func (x *ImageSearchByImageRequest) GetFamilyMode() SearchQuery_FamilyMode {
	if x != nil {
		return x.FamilyMode
	}
	return SearchQuery_FAMILY_MODE_UNSPECIFIED
}

type isImageSearchByImageRequest_Image interface {
	isImageSearchByImageRequest_Image()
}

type ImageSearchByImageRequest_Url struct {
	// The image url to use for the search.
	Url string `protobuf:"bytes,3,opt,name=url,proto3,oneof"`
}

type ImageSearchByImageRequest_Data struct {
	// The image data to use for the search.
	Data []byte `protobuf:"bytes,4,opt,name=data,proto3,oneof"`
}

type ImageSearchByImageRequest_Id struct {
	// CBIR ID of the image to use for the search.
	Id string `protobuf:"bytes,5,opt,name=id,proto3,oneof"`
}

func (*ImageSearchByImageRequest_Url) isImageSearchByImageRequest_Image() {}

func (*ImageSearchByImageRequest_Data) isImageSearchByImageRequest_Image() {}

func (*ImageSearchByImageRequest_Id) isImageSearchByImageRequest_Image() {}

type ImageSearchByImageResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The images found.
	Images []*ImageSearchByImageResponse_ImageInfo `protobuf:"bytes,1,rep,name=images,proto3" json:"images,omitempty"`
	// The number of the page with search results.
	Page int64 `protobuf:"varint,2,opt,name=page,proto3" json:"page,omitempty"`
	// The number of the last page with search results.
	MaxPage int64 `protobuf:"varint,3,opt,name=max_page,json=maxPage,proto3" json:"max_page,omitempty"`
	// CBIR ID of the image used for the search.
	Id            string `protobuf:"bytes,4,opt,name=id,proto3" json:"id,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImageSearchByImageResponse) ProtoMessage() {}

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

func (x *ImageSearchByImageResponse) GetImages() []*ImageSearchByImageResponse_ImageInfo {
	if x != nil {
		return x.Images
	}
	return nil
}

func (x *ImageSearchByImageResponse) GetPage() int64 {
	if x != nil {
		return x.Page
	}
	return 0
}

func (x *ImageSearchByImageResponse) GetMaxPage() int64 {
	if x != nil {
		return x.MaxPage
	}
	return 0
}

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

type ImageSearchByImageResponse_ImageInfo struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Image URL.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// Image format.
	Format ImageSpec_ImageFormat `protobuf:"varint,2,opt,name=format,proto3,enum=yandex.cloud.searchapi.v2.ImageSpec_ImageFormat" json:"format,omitempty"`
	// Image width.
	Width int64 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"`
	// Image height.
	Height int64 `protobuf:"varint,4,opt,name=height,proto3" json:"height,omitempty"`
	// Text passage.
	Passage string `protobuf:"bytes,5,opt,name=passage,proto3" json:"passage,omitempty"`
	// Document host.
	Host string `protobuf:"bytes,6,opt,name=host,proto3" json:"host,omitempty"`
	// Document title.
	PageTitle string `protobuf:"bytes,7,opt,name=page_title,json=pageTitle,proto3" json:"page_title,omitempty"`
	// Document URL.
	PageUrl       string `protobuf:"bytes,8,opt,name=page_url,json=pageUrl,proto3" json:"page_url,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ImageSearchByImageResponse_ImageInfo) ProtoMessage() {}

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

func (x *ImageSearchByImageResponse_ImageInfo) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *ImageSearchByImageResponse_ImageInfo) GetFormat() ImageSpec_ImageFormat {
	if x != nil {
		return x.Format
	}
	return ImageSpec_IMAGE_FORMAT_UNSPECIFIED
}

func (x *ImageSearchByImageResponse_ImageInfo) GetWidth() int64 {
	if x != nil {
		return x.Width
	}
	return 0
}

func (x *ImageSearchByImageResponse_ImageInfo) GetHeight() int64 {
	if x != nil {
		return x.Height
	}
	return 0
}

func (x *ImageSearchByImageResponse_ImageInfo) GetPassage() string {
	if x != nil {
		return x.Passage
	}
	return ""
}

func (x *ImageSearchByImageResponse_ImageInfo) GetHost() string {
	if x != nil {
		return x.Host
	}
	return ""
}

func (x *ImageSearchByImageResponse_ImageInfo) GetPageTitle() string {
	if x != nil {
		return x.PageTitle
	}
	return ""
}

func (x *ImageSearchByImageResponse_ImageInfo) GetPageUrl() string {
	if x != nil {
		return x.PageUrl
	}
	return ""
}

var File_yandex_cloud_searchapi_v2_img_search_service_proto protoreflect.FileDescriptor

const file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDesc = "" +
	"\n" +
	"2yandex/cloud/searchapi/v2/img_search_service.proto\x12\x19yandex.cloud.searchapi.v2\x1a\x1dyandex/cloud/validation.proto\x1a,yandex/cloud/searchapi/v2/search_query.proto\x1a\x1cgoogle/api/annotations.proto\"\xa2\b\n" +
	"\tImageSpec\x12H\n" +
	"\x06format\x18\x01 \x01(\x0e20.yandex.cloud.searchapi.v2.ImageSpec.ImageFormatR\x06format\x12B\n" +
	"\x04size\x18\x02 \x01(\x0e2..yandex.cloud.searchapi.v2.ImageSpec.ImageSizeR\x04size\x12W\n" +
	"\vorientation\x18\x03 \x01(\x0e25.yandex.cloud.searchapi.v2.ImageSpec.ImageOrientationR\vorientation\x12E\n" +
	"\x05color\x18\x04 \x01(\x0e2/.yandex.cloud.searchapi.v2.ImageSpec.ImageColorR\x05color\"n\n" +
	"\vImageFormat\x12\x1c\n" +
	"\x18IMAGE_FORMAT_UNSPECIFIED\x10\x00\x12\x15\n" +
	"\x11IMAGE_FORMAT_JPEG\x10\x01\x12\x14\n" +
	"\x10IMAGE_FORMAT_GIF\x10\x02\x12\x14\n" +
	"\x10IMAGE_FORMAT_PNG\x10\x03\"\x95\x01\n" +
	"\x10ImageOrientation\x12!\n" +
	"\x1dIMAGE_ORIENTATION_UNSPECIFIED\x10\x00\x12\x1e\n" +
	"\x1aIMAGE_ORIENTATION_VERTICAL\x10\x01\x12 \n" +
	"\x1cIMAGE_ORIENTATION_HORIZONTAL\x10\x02\x12\x1c\n" +
	"\x18IMAGE_ORIENTATION_SQUARE\x10\x03\"\xb2\x01\n" +
	"\tImageSize\x12\x1a\n" +
	"\x16IMAGE_SIZE_UNSPECIFIED\x10\x00\x12\x17\n" +
	"\x13IMAGE_SIZE_ENORMOUS\x10\x01\x12\x14\n" +
	"\x10IMAGE_SIZE_LARGE\x10\x02\x12\x15\n" +
	"\x11IMAGE_SIZE_MEDIUM\x10\x03\x12\x14\n" +
	"\x10IMAGE_SIZE_SMALL\x10\x04\x12\x13\n" +
	"\x0fIMAGE_SIZE_TINY\x10\x05\x12\x18\n" +
	"\x14IMAGE_SIZE_WALLPAPER\x10\x06\"\xa9\x02\n" +
	"\n" +
	"ImageColor\x12\x1b\n" +
	"\x17IMAGE_COLOR_UNSPECIFIED\x10\x00\x12\x15\n" +
	"\x11IMAGE_COLOR_COLOR\x10\x01\x12\x19\n" +
	"\x15IMAGE_COLOR_GRAYSCALE\x10\x02\x12\x13\n" +
	"\x0fIMAGE_COLOR_RED\x10\x03\x12\x16\n" +
	"\x12IMAGE_COLOR_ORANGE\x10\x04\x12\x16\n" +
	"\x12IMAGE_COLOR_YELLOW\x10\x05\x12\x15\n" +
	"\x11IMAGE_COLOR_GREEN\x10\x06\x12\x14\n" +
	"\x10IMAGE_COLOR_CYAN\x10\a\x12\x14\n" +
	"\x10IMAGE_COLOR_BLUE\x10\b\x12\x16\n" +
	"\x12IMAGE_COLOR_VIOLET\x10\t\x12\x15\n" +
	"\x11IMAGE_COLOR_WHITE\x10\n" +
	"\x12\x15\n" +
	"\x11IMAGE_COLOR_BLACK\x10\v\"\xaf\x02\n" +
	"\x12ImageSearchRequest\x12B\n" +
	"\x05query\x18\x01 \x01(\v2&.yandex.cloud.searchapi.v2.SearchQueryB\x04\xe8\xc71\x01R\x05query\x12C\n" +
	"\n" +
	"image_spec\x18\x02 \x01(\v2$.yandex.cloud.searchapi.v2.ImageSpecR\timageSpec\x12\x12\n" +
	"\x04site\x18\x03 \x01(\tR\x04site\x12+\n" +
	"\fdocs_on_page\x18\x04 \x01(\x03B\t\xfa\xc71\x051-100R\n" +
	"docsOnPage\x12%\n" +
	"\tfolder_id\x18\x05 \x01(\tB\b\x8a\xc81\x04<=50R\bfolderId\x12(\n" +
	"\n" +
	"user_agent\x18\x06 \x01(\tB\t\x8a\xc81\x05<=300R\tuserAgent\"6\n" +
	"\x13ImageSearchResponse\x12\x1f\n" +
	"\braw_data\x18\x01 \x01(\fB\x04\xe8\xc71\x01R\arawData\"\xcb\x02\n" +
	"\x19ImageSearchByImageRequest\x12\x1e\n" +
	"\x04site\x18\x01 \x01(\tB\n" +
	"\x8a\xc81\x06<=1024R\x04site\x12%\n" +
	"\tfolder_id\x18\x02 \x01(\tB\b\x8a\xc81\x04<=50R\bfolderId\x12\"\n" +
	"\x03url\x18\x03 \x01(\tB\x0e\xe8\xc71\x01\x8a\xc81\x06<=1024H\x00R\x03url\x12'\n" +
	"\x04data\x18\x04 \x01(\fB\x11\xe8\xc71\x01\x8a\xc81\t<=3145728H\x00R\x04data\x12 \n" +
	"\x02id\x18\x05 \x01(\tB\x0e\xe8\xc71\x01\x8a\xc81\x06<=1024H\x00R\x02id\x12\x1b\n" +
	"\x04page\x18\x06 \x01(\x03B\a\xfa\xc71\x03>=0R\x04page\x12R\n" +
	"\vfamily_mode\x18\a \x01(\x0e21.yandex.cloud.searchapi.v2.SearchQuery.FamilyModeR\n" +
	"familyModeB\a\n" +
	"\x05image\"\xb4\x03\n" +
	"\x1aImageSearchByImageResponse\x12W\n" +
	"\x06images\x18\x01 \x03(\v2?.yandex.cloud.searchapi.v2.ImageSearchByImageResponse.ImageInfoR\x06images\x12\x12\n" +
	"\x04page\x18\x02 \x01(\x03R\x04page\x12\x19\n" +
	"\bmax_page\x18\x03 \x01(\x03R\amaxPage\x12\x0e\n" +
	"\x02id\x18\x04 \x01(\tR\x02id\x1a\xfd\x01\n" +
	"\tImageInfo\x12\x10\n" +
	"\x03url\x18\x01 \x01(\tR\x03url\x12H\n" +
	"\x06format\x18\x02 \x01(\x0e20.yandex.cloud.searchapi.v2.ImageSpec.ImageFormatR\x06format\x12\x14\n" +
	"\x05width\x18\x03 \x01(\x03R\x05width\x12\x16\n" +
	"\x06height\x18\x04 \x01(\x03R\x06height\x12\x18\n" +
	"\apassage\x18\x05 \x01(\tR\apassage\x12\x12\n" +
	"\x04host\x18\x06 \x01(\tR\x04host\x12\x1d\n" +
	"\n" +
	"page_title\x18\a \x01(\tR\tpageTitle\x12\x19\n" +
	"\bpage_url\x18\b \x01(\tR\apageUrl2\xc0\x02\n" +
	"\x12ImageSearchService\x12\x84\x01\n" +
	"\x06Search\x12-.yandex.cloud.searchapi.v2.ImageSearchRequest\x1a..yandex.cloud.searchapi.v2.ImageSearchResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/v2/image/search\x12\xa2\x01\n" +
	"\rSearchByImage\x124.yandex.cloud.searchapi.v2.ImageSearchByImageRequest\x1a5.yandex.cloud.searchapi.v2.ImageSearchByImageResponse\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\"\x19/v2/image/search_by_imageBe\n" +
	"\x1ayandex.cloud.api.search.v2ZGgithub.com/yandex-cloud/go-genproto/yandex/cloud/searchapi/v2;searchapib\x06proto3"

var (
	file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDescOnce sync.Once
	file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDescData []byte
)

func file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDescGZIP() []byte {
	file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDesc), len(file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDesc)))
	})
	return file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDescData
}

var file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
var file_yandex_cloud_searchapi_v2_img_search_service_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_yandex_cloud_searchapi_v2_img_search_service_proto_goTypes = []any{
	(ImageSpec_ImageFormat)(0),                   // 0: yandex.cloud.searchapi.v2.ImageSpec.ImageFormat
	(ImageSpec_ImageOrientation)(0),              // 1: yandex.cloud.searchapi.v2.ImageSpec.ImageOrientation
	(ImageSpec_ImageSize)(0),                     // 2: yandex.cloud.searchapi.v2.ImageSpec.ImageSize
	(ImageSpec_ImageColor)(0),                    // 3: yandex.cloud.searchapi.v2.ImageSpec.ImageColor
	(*ImageSpec)(nil),                            // 4: yandex.cloud.searchapi.v2.ImageSpec
	(*ImageSearchRequest)(nil),                   // 5: yandex.cloud.searchapi.v2.ImageSearchRequest
	(*ImageSearchResponse)(nil),                  // 6: yandex.cloud.searchapi.v2.ImageSearchResponse
	(*ImageSearchByImageRequest)(nil),            // 7: yandex.cloud.searchapi.v2.ImageSearchByImageRequest
	(*ImageSearchByImageResponse)(nil),           // 8: yandex.cloud.searchapi.v2.ImageSearchByImageResponse
	(*ImageSearchByImageResponse_ImageInfo)(nil), // 9: yandex.cloud.searchapi.v2.ImageSearchByImageResponse.ImageInfo
	(*SearchQuery)(nil),                          // 10: yandex.cloud.searchapi.v2.SearchQuery
	(SearchQuery_FamilyMode)(0),                  // 11: yandex.cloud.searchapi.v2.SearchQuery.FamilyMode
}
var file_yandex_cloud_searchapi_v2_img_search_service_proto_depIdxs = []int32{
	0,  // 0: yandex.cloud.searchapi.v2.ImageSpec.format:type_name -> yandex.cloud.searchapi.v2.ImageSpec.ImageFormat
	2,  // 1: yandex.cloud.searchapi.v2.ImageSpec.size:type_name -> yandex.cloud.searchapi.v2.ImageSpec.ImageSize
	1,  // 2: yandex.cloud.searchapi.v2.ImageSpec.orientation:type_name -> yandex.cloud.searchapi.v2.ImageSpec.ImageOrientation
	3,  // 3: yandex.cloud.searchapi.v2.ImageSpec.color:type_name -> yandex.cloud.searchapi.v2.ImageSpec.ImageColor
	10, // 4: yandex.cloud.searchapi.v2.ImageSearchRequest.query:type_name -> yandex.cloud.searchapi.v2.SearchQuery
	4,  // 5: yandex.cloud.searchapi.v2.ImageSearchRequest.image_spec:type_name -> yandex.cloud.searchapi.v2.ImageSpec
	11, // 6: yandex.cloud.searchapi.v2.ImageSearchByImageRequest.family_mode:type_name -> yandex.cloud.searchapi.v2.SearchQuery.FamilyMode
	9,  // 7: yandex.cloud.searchapi.v2.ImageSearchByImageResponse.images:type_name -> yandex.cloud.searchapi.v2.ImageSearchByImageResponse.ImageInfo
	0,  // 8: yandex.cloud.searchapi.v2.ImageSearchByImageResponse.ImageInfo.format:type_name -> yandex.cloud.searchapi.v2.ImageSpec.ImageFormat
	5,  // 9: yandex.cloud.searchapi.v2.ImageSearchService.Search:input_type -> yandex.cloud.searchapi.v2.ImageSearchRequest
	7,  // 10: yandex.cloud.searchapi.v2.ImageSearchService.SearchByImage:input_type -> yandex.cloud.searchapi.v2.ImageSearchByImageRequest
	6,  // 11: yandex.cloud.searchapi.v2.ImageSearchService.Search:output_type -> yandex.cloud.searchapi.v2.ImageSearchResponse
	8,  // 12: yandex.cloud.searchapi.v2.ImageSearchService.SearchByImage:output_type -> yandex.cloud.searchapi.v2.ImageSearchByImageResponse
	11, // [11:13] is the sub-list for method output_type
	9,  // [9:11] is the sub-list for method input_type
	9,  // [9:9] is the sub-list for extension type_name
	9,  // [9:9] is the sub-list for extension extendee
	0,  // [0:9] is the sub-list for field type_name
}

func init() { file_yandex_cloud_searchapi_v2_img_search_service_proto_init() }
func file_yandex_cloud_searchapi_v2_img_search_service_proto_init() {
	if File_yandex_cloud_searchapi_v2_img_search_service_proto != nil {
		return
	}
	file_yandex_cloud_searchapi_v2_search_query_proto_init()
	file_yandex_cloud_searchapi_v2_img_search_service_proto_msgTypes[3].OneofWrappers = []any{
		(*ImageSearchByImageRequest_Url)(nil),
		(*ImageSearchByImageRequest_Data)(nil),
		(*ImageSearchByImageRequest_Id)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDesc), len(file_yandex_cloud_searchapi_v2_img_search_service_proto_rawDesc)),
			NumEnums:      4,
			NumMessages:   6,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_yandex_cloud_searchapi_v2_img_search_service_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_searchapi_v2_img_search_service_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_searchapi_v2_img_search_service_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_searchapi_v2_img_search_service_proto_msgTypes,
	}.Build()
	File_yandex_cloud_searchapi_v2_img_search_service_proto = out.File
	file_yandex_cloud_searchapi_v2_img_search_service_proto_goTypes = nil
	file_yandex_cloud_searchapi_v2_img_search_service_proto_depIdxs = nil
}
