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

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v6.33.2
// source: google/cloud/aiplatform/v1/match_service.proto

package aiplatformpb

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

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

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

// The request message for
// [MatchService.FindNeighbors][google.cloud.aiplatform.v1.MatchService.FindNeighbors].
type FindNeighborsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The name of the index endpoint.
	// Format:
	// `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}`
	IndexEndpoint string `protobuf:"bytes,1,opt,name=index_endpoint,json=indexEndpoint,proto3" json:"index_endpoint,omitempty"`
	// The ID of the DeployedIndex that will serve the request. This request is
	// sent to a specific IndexEndpoint, as per the IndexEndpoint.network. That
	// IndexEndpoint also has IndexEndpoint.deployed_indexes, and each such index
	// has a DeployedIndex.id field.
	// The value of the field below must equal one of the DeployedIndex.id
	// fields of the IndexEndpoint that is being called for this request.
	DeployedIndexId string `protobuf:"bytes,2,opt,name=deployed_index_id,json=deployedIndexId,proto3" json:"deployed_index_id,omitempty"`
	// The list of queries.
	Queries []*FindNeighborsRequest_Query `protobuf:"bytes,3,rep,name=queries,proto3" json:"queries,omitempty"`
	// If set to true, the full datapoints (including all vector values and
	// restricts) of the nearest neighbors are returned.
	// Note that returning full datapoint will significantly increase the
	// latency and cost of the query.
	ReturnFullDatapoint bool `protobuf:"varint,4,opt,name=return_full_datapoint,json=returnFullDatapoint,proto3" json:"return_full_datapoint,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*FindNeighborsRequest) ProtoMessage() {}

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

func (x *FindNeighborsRequest) GetIndexEndpoint() string {
	if x != nil {
		return x.IndexEndpoint
	}
	return ""
}

func (x *FindNeighborsRequest) GetDeployedIndexId() string {
	if x != nil {
		return x.DeployedIndexId
	}
	return ""
}

func (x *FindNeighborsRequest) GetQueries() []*FindNeighborsRequest_Query {
	if x != nil {
		return x.Queries
	}
	return nil
}

func (x *FindNeighborsRequest) GetReturnFullDatapoint() bool {
	if x != nil {
		return x.ReturnFullDatapoint
	}
	return false
}

// The response message for
// [MatchService.FindNeighbors][google.cloud.aiplatform.v1.MatchService.FindNeighbors].
type FindNeighborsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The nearest neighbors of the query datapoints.
	NearestNeighbors []*FindNeighborsResponse_NearestNeighbors `protobuf:"bytes,1,rep,name=nearest_neighbors,json=nearestNeighbors,proto3" json:"nearest_neighbors,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*FindNeighborsResponse) ProtoMessage() {}

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

func (x *FindNeighborsResponse) GetNearestNeighbors() []*FindNeighborsResponse_NearestNeighbors {
	if x != nil {
		return x.NearestNeighbors
	}
	return nil
}

// The request message for
// [MatchService.ReadIndexDatapoints][google.cloud.aiplatform.v1.MatchService.ReadIndexDatapoints].
type ReadIndexDatapointsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The name of the index endpoint.
	// Format:
	// `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}`
	IndexEndpoint string `protobuf:"bytes,1,opt,name=index_endpoint,json=indexEndpoint,proto3" json:"index_endpoint,omitempty"`
	// The ID of the DeployedIndex that will serve the request.
	DeployedIndexId string `protobuf:"bytes,2,opt,name=deployed_index_id,json=deployedIndexId,proto3" json:"deployed_index_id,omitempty"`
	// IDs of the datapoints to be searched for.
	Ids           []string `protobuf:"bytes,3,rep,name=ids,proto3" json:"ids,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReadIndexDatapointsRequest) ProtoMessage() {}

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

func (x *ReadIndexDatapointsRequest) GetIndexEndpoint() string {
	if x != nil {
		return x.IndexEndpoint
	}
	return ""
}

func (x *ReadIndexDatapointsRequest) GetDeployedIndexId() string {
	if x != nil {
		return x.DeployedIndexId
	}
	return ""
}

func (x *ReadIndexDatapointsRequest) GetIds() []string {
	if x != nil {
		return x.Ids
	}
	return nil
}

// The response message for
// [MatchService.ReadIndexDatapoints][google.cloud.aiplatform.v1.MatchService.ReadIndexDatapoints].
type ReadIndexDatapointsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The result list of datapoints.
	Datapoints    []*IndexDatapoint `protobuf:"bytes,1,rep,name=datapoints,proto3" json:"datapoints,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ReadIndexDatapointsResponse) ProtoMessage() {}

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

func (x *ReadIndexDatapointsResponse) GetDatapoints() []*IndexDatapoint {
	if x != nil {
		return x.Datapoints
	}
	return nil
}

// A query to find a number of the nearest neighbors (most similar vectors)
// of a vector.
type FindNeighborsRequest_Query struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Ranking:
	//
	//	*FindNeighborsRequest_Query_Rrf
	Ranking isFindNeighborsRequest_Query_Ranking `protobuf_oneof:"ranking"`
	// Required. The datapoint/vector whose nearest neighbors should be searched
	// for.
	Datapoint *IndexDatapoint `protobuf:"bytes,1,opt,name=datapoint,proto3" json:"datapoint,omitempty"`
	// The number of nearest neighbors to be retrieved from database for each
	// query. If not set, will use the default from the service configuration
	// (https://cloud.google.com/vertex-ai/docs/matching-engine/configuring-indexes#nearest-neighbor-search-config).
	NeighborCount int32 `protobuf:"varint,2,opt,name=neighbor_count,json=neighborCount,proto3" json:"neighbor_count,omitempty"`
	// Crowding is a constraint on a neighbor list produced by nearest neighbor
	// search requiring that no more than some value k' of the k neighbors
	// returned have the same value of crowding_attribute.
	// It's used for improving result diversity.
	// This field is the maximum number of matches with the same crowding tag.
	PerCrowdingAttributeNeighborCount int32 `protobuf:"varint,3,opt,name=per_crowding_attribute_neighbor_count,json=perCrowdingAttributeNeighborCount,proto3" json:"per_crowding_attribute_neighbor_count,omitempty"`
	// The number of neighbors to find via approximate search before
	// exact reordering is performed. If not set, the default value from scam
	// config is used; if set, this value must be > 0.
	ApproximateNeighborCount int32 `protobuf:"varint,4,opt,name=approximate_neighbor_count,json=approximateNeighborCount,proto3" json:"approximate_neighbor_count,omitempty"`
	// The fraction of the number of leaves to search, set at query time allows
	// user to tune search performance. This value increase result in both
	// search accuracy and latency increase. The value should be between 0.0
	// and 1.0. If not set or set to 0.0, query uses the default value specified
	// in
	// NearestNeighborSearchConfig.TreeAHConfig.fraction_leaf_nodes_to_search.
	FractionLeafNodesToSearchOverride float64 `protobuf:"fixed64,5,opt,name=fraction_leaf_nodes_to_search_override,json=fractionLeafNodesToSearchOverride,proto3" json:"fraction_leaf_nodes_to_search_override,omitempty"`
	unknownFields                     protoimpl.UnknownFields
	sizeCache                         protoimpl.SizeCache
}

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

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

func (*FindNeighborsRequest_Query) ProtoMessage() {}

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

func (x *FindNeighborsRequest_Query) GetRanking() isFindNeighborsRequest_Query_Ranking {
	if x != nil {
		return x.Ranking
	}
	return nil
}

func (x *FindNeighborsRequest_Query) GetRrf() *FindNeighborsRequest_Query_RRF {
	if x != nil {
		if x, ok := x.Ranking.(*FindNeighborsRequest_Query_Rrf); ok {
			return x.Rrf
		}
	}
	return nil
}

func (x *FindNeighborsRequest_Query) GetDatapoint() *IndexDatapoint {
	if x != nil {
		return x.Datapoint
	}
	return nil
}

func (x *FindNeighborsRequest_Query) GetNeighborCount() int32 {
	if x != nil {
		return x.NeighborCount
	}
	return 0
}

func (x *FindNeighborsRequest_Query) GetPerCrowdingAttributeNeighborCount() int32 {
	if x != nil {
		return x.PerCrowdingAttributeNeighborCount
	}
	return 0
}

func (x *FindNeighborsRequest_Query) GetApproximateNeighborCount() int32 {
	if x != nil {
		return x.ApproximateNeighborCount
	}
	return 0
}

func (x *FindNeighborsRequest_Query) GetFractionLeafNodesToSearchOverride() float64 {
	if x != nil {
		return x.FractionLeafNodesToSearchOverride
	}
	return 0
}

type isFindNeighborsRequest_Query_Ranking interface {
	isFindNeighborsRequest_Query_Ranking()
}

type FindNeighborsRequest_Query_Rrf struct {
	// Optional. Represents RRF algorithm that combines search results.
	Rrf *FindNeighborsRequest_Query_RRF `protobuf:"bytes,6,opt,name=rrf,proto3,oneof"`
}

func (*FindNeighborsRequest_Query_Rrf) isFindNeighborsRequest_Query_Ranking() {}

// Parameters for RRF algorithm that combines search results.
type FindNeighborsRequest_Query_RRF struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. Users can provide an alpha value to give more weight to dense
	// vs sparse results. For example, if the alpha is 0, we only return
	// sparse and if the alpha is 1, we only return dense.
	Alpha         float32 `protobuf:"fixed32,1,opt,name=alpha,proto3" json:"alpha,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FindNeighborsRequest_Query_RRF) ProtoMessage() {}

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

func (x *FindNeighborsRequest_Query_RRF) GetAlpha() float32 {
	if x != nil {
		return x.Alpha
	}
	return 0
}

// A neighbor of the query vector.
type FindNeighborsResponse_Neighbor struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The datapoint of the neighbor.
	// Note that full datapoints are returned only when "return_full_datapoint"
	// is set to true. Otherwise, only the "datapoint_id" and "crowding_tag"
	// fields are populated.
	Datapoint *IndexDatapoint `protobuf:"bytes,1,opt,name=datapoint,proto3" json:"datapoint,omitempty"`
	// The distance between the neighbor and the dense embedding query.
	Distance float64 `protobuf:"fixed64,2,opt,name=distance,proto3" json:"distance,omitempty"`
	// The distance between the neighbor and the query sparse_embedding.
	SparseDistance float64 `protobuf:"fixed64,3,opt,name=sparse_distance,json=sparseDistance,proto3" json:"sparse_distance,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*FindNeighborsResponse_Neighbor) ProtoMessage() {}

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

func (x *FindNeighborsResponse_Neighbor) GetDatapoint() *IndexDatapoint {
	if x != nil {
		return x.Datapoint
	}
	return nil
}

func (x *FindNeighborsResponse_Neighbor) GetDistance() float64 {
	if x != nil {
		return x.Distance
	}
	return 0
}

func (x *FindNeighborsResponse_Neighbor) GetSparseDistance() float64 {
	if x != nil {
		return x.SparseDistance
	}
	return 0
}

// Nearest neighbors for one query.
type FindNeighborsResponse_NearestNeighbors struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The ID of the query datapoint.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// All its neighbors.
	Neighbors     []*FindNeighborsResponse_Neighbor `protobuf:"bytes,2,rep,name=neighbors,proto3" json:"neighbors,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*FindNeighborsResponse_NearestNeighbors) ProtoMessage() {}

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

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

func (x *FindNeighborsResponse_NearestNeighbors) GetNeighbors() []*FindNeighborsResponse_Neighbor {
	if x != nil {
		return x.Neighbors
	}
	return nil
}

var File_google_cloud_aiplatform_v1_match_service_proto protoreflect.FileDescriptor

const file_google_cloud_aiplatform_v1_match_service_proto_rawDesc = "" +
	"\n" +
	".google/cloud/aiplatform/v1/match_service.proto\x12\x1agoogle.cloud.aiplatform.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a&google/cloud/aiplatform/v1/index.proto\"\x85\x06\n" +
	"\x14FindNeighborsRequest\x12V\n" +
	"\x0eindex_endpoint\x18\x01 \x01(\tB/\xe0A\x02\xfaA)\n" +
	"'aiplatform.googleapis.com/IndexEndpointR\rindexEndpoint\x12*\n" +
	"\x11deployed_index_id\x18\x02 \x01(\tR\x0fdeployedIndexId\x12P\n" +
	"\aqueries\x18\x03 \x03(\v26.google.cloud.aiplatform.v1.FindNeighborsRequest.QueryR\aqueries\x122\n" +
	"\x15return_full_datapoint\x18\x04 \x01(\bR\x13returnFullDatapoint\x1a\xe2\x03\n" +
	"\x05Query\x12S\n" +
	"\x03rrf\x18\x06 \x01(\v2:.google.cloud.aiplatform.v1.FindNeighborsRequest.Query.RRFB\x03\xe0A\x01H\x00R\x03rrf\x12M\n" +
	"\tdatapoint\x18\x01 \x01(\v2*.google.cloud.aiplatform.v1.IndexDatapointB\x03\xe0A\x02R\tdatapoint\x12%\n" +
	"\x0eneighbor_count\x18\x02 \x01(\x05R\rneighborCount\x12P\n" +
	"%per_crowding_attribute_neighbor_count\x18\x03 \x01(\x05R!perCrowdingAttributeNeighborCount\x12<\n" +
	"\x1aapproximate_neighbor_count\x18\x04 \x01(\x05R\x18approximateNeighborCount\x12Q\n" +
	"&fraction_leaf_nodes_to_search_override\x18\x05 \x01(\x01R!fractionLeafNodesToSearchOverride\x1a \n" +
	"\x03RRF\x12\x19\n" +
	"\x05alpha\x18\x01 \x01(\x02B\x03\xe0A\x02R\x05alphaB\t\n" +
	"\aranking\"\xa2\x03\n" +
	"\x15FindNeighborsResponse\x12o\n" +
	"\x11nearest_neighbors\x18\x01 \x03(\v2B.google.cloud.aiplatform.v1.FindNeighborsResponse.NearestNeighborsR\x10nearestNeighbors\x1a\x99\x01\n" +
	"\bNeighbor\x12H\n" +
	"\tdatapoint\x18\x01 \x01(\v2*.google.cloud.aiplatform.v1.IndexDatapointR\tdatapoint\x12\x1a\n" +
	"\bdistance\x18\x02 \x01(\x01R\bdistance\x12'\n" +
	"\x0fsparse_distance\x18\x03 \x01(\x01R\x0esparseDistance\x1a|\n" +
	"\x10NearestNeighbors\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12X\n" +
	"\tneighbors\x18\x02 \x03(\v2:.google.cloud.aiplatform.v1.FindNeighborsResponse.NeighborR\tneighbors\"\xb2\x01\n" +
	"\x1aReadIndexDatapointsRequest\x12V\n" +
	"\x0eindex_endpoint\x18\x01 \x01(\tB/\xe0A\x02\xfaA)\n" +
	"'aiplatform.googleapis.com/IndexEndpointR\rindexEndpoint\x12*\n" +
	"\x11deployed_index_id\x18\x02 \x01(\tR\x0fdeployedIndexId\x12\x10\n" +
	"\x03ids\x18\x03 \x03(\tR\x03ids\"i\n" +
	"\x1bReadIndexDatapointsResponse\x12J\n" +
	"\n" +
	"datapoints\x18\x01 \x03(\v2*.google.cloud.aiplatform.v1.IndexDatapointR\n" +
	"datapoints2\x91\x04\n" +
	"\fMatchService\x12\xcb\x01\n" +
	"\rFindNeighbors\x120.google.cloud.aiplatform.v1.FindNeighborsRequest\x1a1.google.cloud.aiplatform.v1.FindNeighborsResponse\"U\x82\xd3\xe4\x93\x02O:\x01*\"J/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:findNeighbors\x12\xe3\x01\n" +
	"\x13ReadIndexDatapoints\x126.google.cloud.aiplatform.v1.ReadIndexDatapointsRequest\x1a7.google.cloud.aiplatform.v1.ReadIndexDatapointsResponse\"[\x82\xd3\xe4\x93\x02U:\x01*\"P/v1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:readIndexDatapoints\x1aM\xcaA\x19aiplatform.googleapis.com\xd2A.https://www.googleapis.com/auth/cloud-platformB\xcf\x01\n" +
	"\x1ecom.google.cloud.aiplatform.v1B\x11MatchServiceProtoP\x01Z>cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb\xaa\x02\x1aGoogle.Cloud.AIPlatform.V1\xca\x02\x1aGoogle\\Cloud\\AIPlatform\\V1\xea\x02\x1dGoogle::Cloud::AIPlatform::V1b\x06proto3"

var (
	file_google_cloud_aiplatform_v1_match_service_proto_rawDescOnce sync.Once
	file_google_cloud_aiplatform_v1_match_service_proto_rawDescData []byte
)

func file_google_cloud_aiplatform_v1_match_service_proto_rawDescGZIP() []byte {
	file_google_cloud_aiplatform_v1_match_service_proto_rawDescOnce.Do(func() {
		file_google_cloud_aiplatform_v1_match_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_google_cloud_aiplatform_v1_match_service_proto_rawDesc), len(file_google_cloud_aiplatform_v1_match_service_proto_rawDesc)))
	})
	return file_google_cloud_aiplatform_v1_match_service_proto_rawDescData
}

var file_google_cloud_aiplatform_v1_match_service_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
var file_google_cloud_aiplatform_v1_match_service_proto_goTypes = []any{
	(*FindNeighborsRequest)(nil),                   // 0: google.cloud.aiplatform.v1.FindNeighborsRequest
	(*FindNeighborsResponse)(nil),                  // 1: google.cloud.aiplatform.v1.FindNeighborsResponse
	(*ReadIndexDatapointsRequest)(nil),             // 2: google.cloud.aiplatform.v1.ReadIndexDatapointsRequest
	(*ReadIndexDatapointsResponse)(nil),            // 3: google.cloud.aiplatform.v1.ReadIndexDatapointsResponse
	(*FindNeighborsRequest_Query)(nil),             // 4: google.cloud.aiplatform.v1.FindNeighborsRequest.Query
	(*FindNeighborsRequest_Query_RRF)(nil),         // 5: google.cloud.aiplatform.v1.FindNeighborsRequest.Query.RRF
	(*FindNeighborsResponse_Neighbor)(nil),         // 6: google.cloud.aiplatform.v1.FindNeighborsResponse.Neighbor
	(*FindNeighborsResponse_NearestNeighbors)(nil), // 7: google.cloud.aiplatform.v1.FindNeighborsResponse.NearestNeighbors
	(*IndexDatapoint)(nil),                         // 8: google.cloud.aiplatform.v1.IndexDatapoint
}
var file_google_cloud_aiplatform_v1_match_service_proto_depIdxs = []int32{
	4, // 0: google.cloud.aiplatform.v1.FindNeighborsRequest.queries:type_name -> google.cloud.aiplatform.v1.FindNeighborsRequest.Query
	7, // 1: google.cloud.aiplatform.v1.FindNeighborsResponse.nearest_neighbors:type_name -> google.cloud.aiplatform.v1.FindNeighborsResponse.NearestNeighbors
	8, // 2: google.cloud.aiplatform.v1.ReadIndexDatapointsResponse.datapoints:type_name -> google.cloud.aiplatform.v1.IndexDatapoint
	5, // 3: google.cloud.aiplatform.v1.FindNeighborsRequest.Query.rrf:type_name -> google.cloud.aiplatform.v1.FindNeighborsRequest.Query.RRF
	8, // 4: google.cloud.aiplatform.v1.FindNeighborsRequest.Query.datapoint:type_name -> google.cloud.aiplatform.v1.IndexDatapoint
	8, // 5: google.cloud.aiplatform.v1.FindNeighborsResponse.Neighbor.datapoint:type_name -> google.cloud.aiplatform.v1.IndexDatapoint
	6, // 6: google.cloud.aiplatform.v1.FindNeighborsResponse.NearestNeighbors.neighbors:type_name -> google.cloud.aiplatform.v1.FindNeighborsResponse.Neighbor
	0, // 7: google.cloud.aiplatform.v1.MatchService.FindNeighbors:input_type -> google.cloud.aiplatform.v1.FindNeighborsRequest
	2, // 8: google.cloud.aiplatform.v1.MatchService.ReadIndexDatapoints:input_type -> google.cloud.aiplatform.v1.ReadIndexDatapointsRequest
	1, // 9: google.cloud.aiplatform.v1.MatchService.FindNeighbors:output_type -> google.cloud.aiplatform.v1.FindNeighborsResponse
	3, // 10: google.cloud.aiplatform.v1.MatchService.ReadIndexDatapoints:output_type -> google.cloud.aiplatform.v1.ReadIndexDatapointsResponse
	9, // [9:11] is the sub-list for method output_type
	7, // [7:9] 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_google_cloud_aiplatform_v1_match_service_proto_init() }
func file_google_cloud_aiplatform_v1_match_service_proto_init() {
	if File_google_cloud_aiplatform_v1_match_service_proto != nil {
		return
	}
	file_google_cloud_aiplatform_v1_index_proto_init()
	file_google_cloud_aiplatform_v1_match_service_proto_msgTypes[4].OneofWrappers = []any{
		(*FindNeighborsRequest_Query_Rrf)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_google_cloud_aiplatform_v1_match_service_proto_rawDesc), len(file_google_cloud_aiplatform_v1_match_service_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   8,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_google_cloud_aiplatform_v1_match_service_proto_goTypes,
		DependencyIndexes: file_google_cloud_aiplatform_v1_match_service_proto_depIdxs,
		MessageInfos:      file_google_cloud_aiplatform_v1_match_service_proto_msgTypes,
	}.Build()
	File_google_cloud_aiplatform_v1_match_service_proto = out.File
	file_google_cloud_aiplatform_v1_match_service_proto_goTypes = nil
	file_google_cloud_aiplatform_v1_match_service_proto_depIdxs = nil
}
