cloud.google.com/go/aiplatform@v1.106.0/apiv1/aiplatformpb/feature_online_store_service.pb.go (about)

     1  // Copyright 2025 Google LLC
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.35.2
    18  // 	protoc        v4.25.7
    19  // source: google/cloud/aiplatform/v1/feature_online_store_service.proto
    20  
    21  package aiplatformpb
    22  
    23  import (
    24  	_ "google.golang.org/genproto/googleapis/api/annotations"
    25  	status "google.golang.org/genproto/googleapis/rpc/status"
    26  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    27  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    28  	structpb "google.golang.org/protobuf/types/known/structpb"
    29  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    30  	reflect "reflect"
    31  	sync "sync"
    32  )
    33  
    34  const (
    35  	// Verify that this generated code is sufficiently up-to-date.
    36  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    37  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    38  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    39  )
    40  
    41  // Format of the data in the Feature View.
    42  type FeatureViewDataFormat int32
    43  
    44  const (
    45  	// Not set. Will be treated as the KeyValue format.
    46  	FeatureViewDataFormat_FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED FeatureViewDataFormat = 0
    47  	// Return response data in key-value format.
    48  	FeatureViewDataFormat_KEY_VALUE FeatureViewDataFormat = 1
    49  	// Return response data in proto Struct format.
    50  	FeatureViewDataFormat_PROTO_STRUCT FeatureViewDataFormat = 2
    51  )
    52  
    53  // Enum value maps for FeatureViewDataFormat.
    54  var (
    55  	FeatureViewDataFormat_name = map[int32]string{
    56  		0: "FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED",
    57  		1: "KEY_VALUE",
    58  		2: "PROTO_STRUCT",
    59  	}
    60  	FeatureViewDataFormat_value = map[string]int32{
    61  		"FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED": 0,
    62  		"KEY_VALUE":                            1,
    63  		"PROTO_STRUCT":                         2,
    64  	}
    65  )
    66  
    67  func (x FeatureViewDataFormat) Enum() *FeatureViewDataFormat {
    68  	p := new(FeatureViewDataFormat)
    69  	*p = x
    70  	return p
    71  }
    72  
    73  func (x FeatureViewDataFormat) String() string {
    74  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    75  }
    76  
    77  func (FeatureViewDataFormat) Descriptor() protoreflect.EnumDescriptor {
    78  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes[0].Descriptor()
    79  }
    80  
    81  func (FeatureViewDataFormat) Type() protoreflect.EnumType {
    82  	return &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes[0]
    83  }
    84  
    85  func (x FeatureViewDataFormat) Number() protoreflect.EnumNumber {
    86  	return protoreflect.EnumNumber(x)
    87  }
    88  
    89  // Deprecated: Use FeatureViewDataFormat.Descriptor instead.
    90  func (FeatureViewDataFormat) EnumDescriptor() ([]byte, []int) {
    91  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{0}
    92  }
    93  
    94  // Datapoints for which Operator is true relative to the query's Value
    95  // field will be allowlisted.
    96  type NearestNeighborQuery_NumericFilter_Operator int32
    97  
    98  const (
    99  	// Unspecified operator.
   100  	NearestNeighborQuery_NumericFilter_OPERATOR_UNSPECIFIED NearestNeighborQuery_NumericFilter_Operator = 0
   101  	// Entities are eligible if their value is < the query's.
   102  	NearestNeighborQuery_NumericFilter_LESS NearestNeighborQuery_NumericFilter_Operator = 1
   103  	// Entities are eligible if their value is <= the query's.
   104  	NearestNeighborQuery_NumericFilter_LESS_EQUAL NearestNeighborQuery_NumericFilter_Operator = 2
   105  	// Entities are eligible if their value is == the query's.
   106  	NearestNeighborQuery_NumericFilter_EQUAL NearestNeighborQuery_NumericFilter_Operator = 3
   107  	// Entities are eligible if their value is >= the query's.
   108  	NearestNeighborQuery_NumericFilter_GREATER_EQUAL NearestNeighborQuery_NumericFilter_Operator = 4
   109  	// Entities are eligible if their value is > the query's.
   110  	NearestNeighborQuery_NumericFilter_GREATER NearestNeighborQuery_NumericFilter_Operator = 5
   111  	// Entities are eligible if their value is != the query's.
   112  	NearestNeighborQuery_NumericFilter_NOT_EQUAL NearestNeighborQuery_NumericFilter_Operator = 6
   113  )
   114  
   115  // Enum value maps for NearestNeighborQuery_NumericFilter_Operator.
   116  var (
   117  	NearestNeighborQuery_NumericFilter_Operator_name = map[int32]string{
   118  		0: "OPERATOR_UNSPECIFIED",
   119  		1: "LESS",
   120  		2: "LESS_EQUAL",
   121  		3: "EQUAL",
   122  		4: "GREATER_EQUAL",
   123  		5: "GREATER",
   124  		6: "NOT_EQUAL",
   125  	}
   126  	NearestNeighborQuery_NumericFilter_Operator_value = map[string]int32{
   127  		"OPERATOR_UNSPECIFIED": 0,
   128  		"LESS":                 1,
   129  		"LESS_EQUAL":           2,
   130  		"EQUAL":                3,
   131  		"GREATER_EQUAL":        4,
   132  		"GREATER":              5,
   133  		"NOT_EQUAL":            6,
   134  	}
   135  )
   136  
   137  func (x NearestNeighborQuery_NumericFilter_Operator) Enum() *NearestNeighborQuery_NumericFilter_Operator {
   138  	p := new(NearestNeighborQuery_NumericFilter_Operator)
   139  	*p = x
   140  	return p
   141  }
   142  
   143  func (x NearestNeighborQuery_NumericFilter_Operator) String() string {
   144  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   145  }
   146  
   147  func (NearestNeighborQuery_NumericFilter_Operator) Descriptor() protoreflect.EnumDescriptor {
   148  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes[1].Descriptor()
   149  }
   150  
   151  func (NearestNeighborQuery_NumericFilter_Operator) Type() protoreflect.EnumType {
   152  	return &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes[1]
   153  }
   154  
   155  func (x NearestNeighborQuery_NumericFilter_Operator) Number() protoreflect.EnumNumber {
   156  	return protoreflect.EnumNumber(x)
   157  }
   158  
   159  // Deprecated: Use NearestNeighborQuery_NumericFilter_Operator.Descriptor instead.
   160  func (NearestNeighborQuery_NumericFilter_Operator) EnumDescriptor() ([]byte, []int) {
   161  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{3, 2, 0}
   162  }
   163  
   164  // Lookup key for a feature view.
   165  type FeatureViewDataKey struct {
   166  	state         protoimpl.MessageState
   167  	sizeCache     protoimpl.SizeCache
   168  	unknownFields protoimpl.UnknownFields
   169  
   170  	// Types that are assignable to KeyOneof:
   171  	//
   172  	//	*FeatureViewDataKey_Key
   173  	//	*FeatureViewDataKey_CompositeKey_
   174  	KeyOneof isFeatureViewDataKey_KeyOneof `protobuf_oneof:"key_oneof"`
   175  }
   176  
   177  func (x *FeatureViewDataKey) Reset() {
   178  	*x = FeatureViewDataKey{}
   179  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[0]
   180  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   181  	ms.StoreMessageInfo(mi)
   182  }
   183  
   184  func (x *FeatureViewDataKey) String() string {
   185  	return protoimpl.X.MessageStringOf(x)
   186  }
   187  
   188  func (*FeatureViewDataKey) ProtoMessage() {}
   189  
   190  func (x *FeatureViewDataKey) ProtoReflect() protoreflect.Message {
   191  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[0]
   192  	if x != nil {
   193  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   194  		if ms.LoadMessageInfo() == nil {
   195  			ms.StoreMessageInfo(mi)
   196  		}
   197  		return ms
   198  	}
   199  	return mi.MessageOf(x)
   200  }
   201  
   202  // Deprecated: Use FeatureViewDataKey.ProtoReflect.Descriptor instead.
   203  func (*FeatureViewDataKey) Descriptor() ([]byte, []int) {
   204  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{0}
   205  }
   206  
   207  func (m *FeatureViewDataKey) GetKeyOneof() isFeatureViewDataKey_KeyOneof {
   208  	if m != nil {
   209  		return m.KeyOneof
   210  	}
   211  	return nil
   212  }
   213  
   214  func (x *FeatureViewDataKey) GetKey() string {
   215  	if x, ok := x.GetKeyOneof().(*FeatureViewDataKey_Key); ok {
   216  		return x.Key
   217  	}
   218  	return ""
   219  }
   220  
   221  func (x *FeatureViewDataKey) GetCompositeKey() *FeatureViewDataKey_CompositeKey {
   222  	if x, ok := x.GetKeyOneof().(*FeatureViewDataKey_CompositeKey_); ok {
   223  		return x.CompositeKey
   224  	}
   225  	return nil
   226  }
   227  
   228  type isFeatureViewDataKey_KeyOneof interface {
   229  	isFeatureViewDataKey_KeyOneof()
   230  }
   231  
   232  type FeatureViewDataKey_Key struct {
   233  	// String key to use for lookup.
   234  	Key string `protobuf:"bytes,1,opt,name=key,proto3,oneof"`
   235  }
   236  
   237  type FeatureViewDataKey_CompositeKey_ struct {
   238  	// The actual Entity ID will be composed from this struct. This should match
   239  	// with the way ID is defined in the FeatureView spec.
   240  	CompositeKey *FeatureViewDataKey_CompositeKey `protobuf:"bytes,2,opt,name=composite_key,json=compositeKey,proto3,oneof"`
   241  }
   242  
   243  func (*FeatureViewDataKey_Key) isFeatureViewDataKey_KeyOneof() {}
   244  
   245  func (*FeatureViewDataKey_CompositeKey_) isFeatureViewDataKey_KeyOneof() {}
   246  
   247  // Request message for
   248  // [FeatureOnlineStoreService.FetchFeatureValues][google.cloud.aiplatform.v1.FeatureOnlineStoreService.FetchFeatureValues].
   249  // All the features under the requested feature view will be returned.
   250  type FetchFeatureValuesRequest struct {
   251  	state         protoimpl.MessageState
   252  	sizeCache     protoimpl.SizeCache
   253  	unknownFields protoimpl.UnknownFields
   254  
   255  	// Required. FeatureView resource format
   256  	// `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}`
   257  	FeatureView string `protobuf:"bytes,1,opt,name=feature_view,json=featureView,proto3" json:"feature_view,omitempty"`
   258  	// Optional. The request key to fetch feature values for.
   259  	DataKey *FeatureViewDataKey `protobuf:"bytes,6,opt,name=data_key,json=dataKey,proto3" json:"data_key,omitempty"`
   260  	// Optional. Response data format. If not set,
   261  	// [FeatureViewDataFormat.KEY_VALUE][google.cloud.aiplatform.v1.FeatureViewDataFormat.KEY_VALUE]
   262  	// will be used.
   263  	DataFormat FeatureViewDataFormat `protobuf:"varint,7,opt,name=data_format,json=dataFormat,proto3,enum=google.cloud.aiplatform.v1.FeatureViewDataFormat" json:"data_format,omitempty"`
   264  }
   265  
   266  func (x *FetchFeatureValuesRequest) Reset() {
   267  	*x = FetchFeatureValuesRequest{}
   268  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[1]
   269  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   270  	ms.StoreMessageInfo(mi)
   271  }
   272  
   273  func (x *FetchFeatureValuesRequest) String() string {
   274  	return protoimpl.X.MessageStringOf(x)
   275  }
   276  
   277  func (*FetchFeatureValuesRequest) ProtoMessage() {}
   278  
   279  func (x *FetchFeatureValuesRequest) ProtoReflect() protoreflect.Message {
   280  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[1]
   281  	if x != nil {
   282  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   283  		if ms.LoadMessageInfo() == nil {
   284  			ms.StoreMessageInfo(mi)
   285  		}
   286  		return ms
   287  	}
   288  	return mi.MessageOf(x)
   289  }
   290  
   291  // Deprecated: Use FetchFeatureValuesRequest.ProtoReflect.Descriptor instead.
   292  func (*FetchFeatureValuesRequest) Descriptor() ([]byte, []int) {
   293  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{1}
   294  }
   295  
   296  func (x *FetchFeatureValuesRequest) GetFeatureView() string {
   297  	if x != nil {
   298  		return x.FeatureView
   299  	}
   300  	return ""
   301  }
   302  
   303  func (x *FetchFeatureValuesRequest) GetDataKey() *FeatureViewDataKey {
   304  	if x != nil {
   305  		return x.DataKey
   306  	}
   307  	return nil
   308  }
   309  
   310  func (x *FetchFeatureValuesRequest) GetDataFormat() FeatureViewDataFormat {
   311  	if x != nil {
   312  		return x.DataFormat
   313  	}
   314  	return FeatureViewDataFormat_FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED
   315  }
   316  
   317  // Response message for
   318  // [FeatureOnlineStoreService.FetchFeatureValues][google.cloud.aiplatform.v1.FeatureOnlineStoreService.FetchFeatureValues]
   319  type FetchFeatureValuesResponse struct {
   320  	state         protoimpl.MessageState
   321  	sizeCache     protoimpl.SizeCache
   322  	unknownFields protoimpl.UnknownFields
   323  
   324  	// Types that are assignable to Format:
   325  	//
   326  	//	*FetchFeatureValuesResponse_KeyValues
   327  	//	*FetchFeatureValuesResponse_ProtoStruct
   328  	Format isFetchFeatureValuesResponse_Format `protobuf_oneof:"format"`
   329  	// The data key associated with this response.
   330  	// Will only be populated for
   331  	// [FeatureOnlineStoreService.StreamingFetchFeatureValues][] RPCs.
   332  	DataKey *FeatureViewDataKey `protobuf:"bytes,4,opt,name=data_key,json=dataKey,proto3" json:"data_key,omitempty"`
   333  }
   334  
   335  func (x *FetchFeatureValuesResponse) Reset() {
   336  	*x = FetchFeatureValuesResponse{}
   337  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[2]
   338  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   339  	ms.StoreMessageInfo(mi)
   340  }
   341  
   342  func (x *FetchFeatureValuesResponse) String() string {
   343  	return protoimpl.X.MessageStringOf(x)
   344  }
   345  
   346  func (*FetchFeatureValuesResponse) ProtoMessage() {}
   347  
   348  func (x *FetchFeatureValuesResponse) ProtoReflect() protoreflect.Message {
   349  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[2]
   350  	if x != nil {
   351  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   352  		if ms.LoadMessageInfo() == nil {
   353  			ms.StoreMessageInfo(mi)
   354  		}
   355  		return ms
   356  	}
   357  	return mi.MessageOf(x)
   358  }
   359  
   360  // Deprecated: Use FetchFeatureValuesResponse.ProtoReflect.Descriptor instead.
   361  func (*FetchFeatureValuesResponse) Descriptor() ([]byte, []int) {
   362  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{2}
   363  }
   364  
   365  func (m *FetchFeatureValuesResponse) GetFormat() isFetchFeatureValuesResponse_Format {
   366  	if m != nil {
   367  		return m.Format
   368  	}
   369  	return nil
   370  }
   371  
   372  func (x *FetchFeatureValuesResponse) GetKeyValues() *FetchFeatureValuesResponse_FeatureNameValuePairList {
   373  	if x, ok := x.GetFormat().(*FetchFeatureValuesResponse_KeyValues); ok {
   374  		return x.KeyValues
   375  	}
   376  	return nil
   377  }
   378  
   379  func (x *FetchFeatureValuesResponse) GetProtoStruct() *structpb.Struct {
   380  	if x, ok := x.GetFormat().(*FetchFeatureValuesResponse_ProtoStruct); ok {
   381  		return x.ProtoStruct
   382  	}
   383  	return nil
   384  }
   385  
   386  func (x *FetchFeatureValuesResponse) GetDataKey() *FeatureViewDataKey {
   387  	if x != nil {
   388  		return x.DataKey
   389  	}
   390  	return nil
   391  }
   392  
   393  type isFetchFeatureValuesResponse_Format interface {
   394  	isFetchFeatureValuesResponse_Format()
   395  }
   396  
   397  type FetchFeatureValuesResponse_KeyValues struct {
   398  	// Feature values in KeyValue format.
   399  	KeyValues *FetchFeatureValuesResponse_FeatureNameValuePairList `protobuf:"bytes,3,opt,name=key_values,json=keyValues,proto3,oneof"`
   400  }
   401  
   402  type FetchFeatureValuesResponse_ProtoStruct struct {
   403  	// Feature values in proto Struct format.
   404  	ProtoStruct *structpb.Struct `protobuf:"bytes,2,opt,name=proto_struct,json=protoStruct,proto3,oneof"`
   405  }
   406  
   407  func (*FetchFeatureValuesResponse_KeyValues) isFetchFeatureValuesResponse_Format() {}
   408  
   409  func (*FetchFeatureValuesResponse_ProtoStruct) isFetchFeatureValuesResponse_Format() {}
   410  
   411  // A query to find a number of similar entities.
   412  type NearestNeighborQuery struct {
   413  	state         protoimpl.MessageState
   414  	sizeCache     protoimpl.SizeCache
   415  	unknownFields protoimpl.UnknownFields
   416  
   417  	// Types that are assignable to Instance:
   418  	//
   419  	//	*NearestNeighborQuery_EntityId
   420  	//	*NearestNeighborQuery_Embedding_
   421  	Instance isNearestNeighborQuery_Instance `protobuf_oneof:"instance"`
   422  	// Optional. The number of similar entities to be retrieved from feature view
   423  	// for each query.
   424  	NeighborCount int32 `protobuf:"varint,3,opt,name=neighbor_count,json=neighborCount,proto3" json:"neighbor_count,omitempty"`
   425  	// Optional. The list of string filters.
   426  	StringFilters []*NearestNeighborQuery_StringFilter `protobuf:"bytes,4,rep,name=string_filters,json=stringFilters,proto3" json:"string_filters,omitempty"`
   427  	// Optional. The list of numeric filters.
   428  	NumericFilters []*NearestNeighborQuery_NumericFilter `protobuf:"bytes,8,rep,name=numeric_filters,json=numericFilters,proto3" json:"numeric_filters,omitempty"`
   429  	// Optional. Crowding is a constraint on a neighbor list produced by nearest
   430  	// neighbor search requiring that no more than
   431  	// sper_crowding_attribute_neighbor_count of the k neighbors returned have the
   432  	// same value of crowding_attribute. It's used for improving result diversity.
   433  	PerCrowdingAttributeNeighborCount int32 `protobuf:"varint,5,opt,name=per_crowding_attribute_neighbor_count,json=perCrowdingAttributeNeighborCount,proto3" json:"per_crowding_attribute_neighbor_count,omitempty"`
   434  	// Optional. Parameters that can be set to tune query on the fly.
   435  	Parameters *NearestNeighborQuery_Parameters `protobuf:"bytes,7,opt,name=parameters,proto3" json:"parameters,omitempty"`
   436  }
   437  
   438  func (x *NearestNeighborQuery) Reset() {
   439  	*x = NearestNeighborQuery{}
   440  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[3]
   441  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   442  	ms.StoreMessageInfo(mi)
   443  }
   444  
   445  func (x *NearestNeighborQuery) String() string {
   446  	return protoimpl.X.MessageStringOf(x)
   447  }
   448  
   449  func (*NearestNeighborQuery) ProtoMessage() {}
   450  
   451  func (x *NearestNeighborQuery) ProtoReflect() protoreflect.Message {
   452  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[3]
   453  	if x != nil {
   454  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   455  		if ms.LoadMessageInfo() == nil {
   456  			ms.StoreMessageInfo(mi)
   457  		}
   458  		return ms
   459  	}
   460  	return mi.MessageOf(x)
   461  }
   462  
   463  // Deprecated: Use NearestNeighborQuery.ProtoReflect.Descriptor instead.
   464  func (*NearestNeighborQuery) Descriptor() ([]byte, []int) {
   465  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{3}
   466  }
   467  
   468  func (m *NearestNeighborQuery) GetInstance() isNearestNeighborQuery_Instance {
   469  	if m != nil {
   470  		return m.Instance
   471  	}
   472  	return nil
   473  }
   474  
   475  func (x *NearestNeighborQuery) GetEntityId() string {
   476  	if x, ok := x.GetInstance().(*NearestNeighborQuery_EntityId); ok {
   477  		return x.EntityId
   478  	}
   479  	return ""
   480  }
   481  
   482  func (x *NearestNeighborQuery) GetEmbedding() *NearestNeighborQuery_Embedding {
   483  	if x, ok := x.GetInstance().(*NearestNeighborQuery_Embedding_); ok {
   484  		return x.Embedding
   485  	}
   486  	return nil
   487  }
   488  
   489  func (x *NearestNeighborQuery) GetNeighborCount() int32 {
   490  	if x != nil {
   491  		return x.NeighborCount
   492  	}
   493  	return 0
   494  }
   495  
   496  func (x *NearestNeighborQuery) GetStringFilters() []*NearestNeighborQuery_StringFilter {
   497  	if x != nil {
   498  		return x.StringFilters
   499  	}
   500  	return nil
   501  }
   502  
   503  func (x *NearestNeighborQuery) GetNumericFilters() []*NearestNeighborQuery_NumericFilter {
   504  	if x != nil {
   505  		return x.NumericFilters
   506  	}
   507  	return nil
   508  }
   509  
   510  func (x *NearestNeighborQuery) GetPerCrowdingAttributeNeighborCount() int32 {
   511  	if x != nil {
   512  		return x.PerCrowdingAttributeNeighborCount
   513  	}
   514  	return 0
   515  }
   516  
   517  func (x *NearestNeighborQuery) GetParameters() *NearestNeighborQuery_Parameters {
   518  	if x != nil {
   519  		return x.Parameters
   520  	}
   521  	return nil
   522  }
   523  
   524  type isNearestNeighborQuery_Instance interface {
   525  	isNearestNeighborQuery_Instance()
   526  }
   527  
   528  type NearestNeighborQuery_EntityId struct {
   529  	// Optional. The entity id whose similar entities should be searched for.
   530  	// If embedding is set, search will use embedding instead of
   531  	// entity_id.
   532  	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3,oneof"`
   533  }
   534  
   535  type NearestNeighborQuery_Embedding_ struct {
   536  	// Optional. The embedding vector that be used for similar search.
   537  	Embedding *NearestNeighborQuery_Embedding `protobuf:"bytes,2,opt,name=embedding,proto3,oneof"`
   538  }
   539  
   540  func (*NearestNeighborQuery_EntityId) isNearestNeighborQuery_Instance() {}
   541  
   542  func (*NearestNeighborQuery_Embedding_) isNearestNeighborQuery_Instance() {}
   543  
   544  // The request message for
   545  // [FeatureOnlineStoreService.SearchNearestEntities][google.cloud.aiplatform.v1.FeatureOnlineStoreService.SearchNearestEntities].
   546  type SearchNearestEntitiesRequest struct {
   547  	state         protoimpl.MessageState
   548  	sizeCache     protoimpl.SizeCache
   549  	unknownFields protoimpl.UnknownFields
   550  
   551  	// Required. FeatureView resource format
   552  	// `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}`
   553  	FeatureView string `protobuf:"bytes,1,opt,name=feature_view,json=featureView,proto3" json:"feature_view,omitempty"`
   554  	// Required. The query.
   555  	Query *NearestNeighborQuery `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"`
   556  	// Optional. If set to true, the full entities (including all vector values
   557  	// and metadata) of the nearest neighbors are returned; otherwise only entity
   558  	// id of the nearest neighbors will be returned. Note that returning full
   559  	// entities will significantly increase the latency and cost of the query.
   560  	ReturnFullEntity bool `protobuf:"varint,3,opt,name=return_full_entity,json=returnFullEntity,proto3" json:"return_full_entity,omitempty"`
   561  }
   562  
   563  func (x *SearchNearestEntitiesRequest) Reset() {
   564  	*x = SearchNearestEntitiesRequest{}
   565  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[4]
   566  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   567  	ms.StoreMessageInfo(mi)
   568  }
   569  
   570  func (x *SearchNearestEntitiesRequest) String() string {
   571  	return protoimpl.X.MessageStringOf(x)
   572  }
   573  
   574  func (*SearchNearestEntitiesRequest) ProtoMessage() {}
   575  
   576  func (x *SearchNearestEntitiesRequest) ProtoReflect() protoreflect.Message {
   577  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[4]
   578  	if x != nil {
   579  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   580  		if ms.LoadMessageInfo() == nil {
   581  			ms.StoreMessageInfo(mi)
   582  		}
   583  		return ms
   584  	}
   585  	return mi.MessageOf(x)
   586  }
   587  
   588  // Deprecated: Use SearchNearestEntitiesRequest.ProtoReflect.Descriptor instead.
   589  func (*SearchNearestEntitiesRequest) Descriptor() ([]byte, []int) {
   590  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{4}
   591  }
   592  
   593  func (x *SearchNearestEntitiesRequest) GetFeatureView() string {
   594  	if x != nil {
   595  		return x.FeatureView
   596  	}
   597  	return ""
   598  }
   599  
   600  func (x *SearchNearestEntitiesRequest) GetQuery() *NearestNeighborQuery {
   601  	if x != nil {
   602  		return x.Query
   603  	}
   604  	return nil
   605  }
   606  
   607  func (x *SearchNearestEntitiesRequest) GetReturnFullEntity() bool {
   608  	if x != nil {
   609  		return x.ReturnFullEntity
   610  	}
   611  	return false
   612  }
   613  
   614  // Nearest neighbors for one query.
   615  type NearestNeighbors struct {
   616  	state         protoimpl.MessageState
   617  	sizeCache     protoimpl.SizeCache
   618  	unknownFields protoimpl.UnknownFields
   619  
   620  	// All its neighbors.
   621  	Neighbors []*NearestNeighbors_Neighbor `protobuf:"bytes,1,rep,name=neighbors,proto3" json:"neighbors,omitempty"`
   622  }
   623  
   624  func (x *NearestNeighbors) Reset() {
   625  	*x = NearestNeighbors{}
   626  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[5]
   627  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   628  	ms.StoreMessageInfo(mi)
   629  }
   630  
   631  func (x *NearestNeighbors) String() string {
   632  	return protoimpl.X.MessageStringOf(x)
   633  }
   634  
   635  func (*NearestNeighbors) ProtoMessage() {}
   636  
   637  func (x *NearestNeighbors) ProtoReflect() protoreflect.Message {
   638  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[5]
   639  	if x != nil {
   640  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   641  		if ms.LoadMessageInfo() == nil {
   642  			ms.StoreMessageInfo(mi)
   643  		}
   644  		return ms
   645  	}
   646  	return mi.MessageOf(x)
   647  }
   648  
   649  // Deprecated: Use NearestNeighbors.ProtoReflect.Descriptor instead.
   650  func (*NearestNeighbors) Descriptor() ([]byte, []int) {
   651  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{5}
   652  }
   653  
   654  func (x *NearestNeighbors) GetNeighbors() []*NearestNeighbors_Neighbor {
   655  	if x != nil {
   656  		return x.Neighbors
   657  	}
   658  	return nil
   659  }
   660  
   661  // Response message for
   662  // [FeatureOnlineStoreService.SearchNearestEntities][google.cloud.aiplatform.v1.FeatureOnlineStoreService.SearchNearestEntities]
   663  type SearchNearestEntitiesResponse struct {
   664  	state         protoimpl.MessageState
   665  	sizeCache     protoimpl.SizeCache
   666  	unknownFields protoimpl.UnknownFields
   667  
   668  	// The nearest neighbors of the query entity.
   669  	NearestNeighbors *NearestNeighbors `protobuf:"bytes,1,opt,name=nearest_neighbors,json=nearestNeighbors,proto3" json:"nearest_neighbors,omitempty"`
   670  }
   671  
   672  func (x *SearchNearestEntitiesResponse) Reset() {
   673  	*x = SearchNearestEntitiesResponse{}
   674  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[6]
   675  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   676  	ms.StoreMessageInfo(mi)
   677  }
   678  
   679  func (x *SearchNearestEntitiesResponse) String() string {
   680  	return protoimpl.X.MessageStringOf(x)
   681  }
   682  
   683  func (*SearchNearestEntitiesResponse) ProtoMessage() {}
   684  
   685  func (x *SearchNearestEntitiesResponse) ProtoReflect() protoreflect.Message {
   686  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[6]
   687  	if x != nil {
   688  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   689  		if ms.LoadMessageInfo() == nil {
   690  			ms.StoreMessageInfo(mi)
   691  		}
   692  		return ms
   693  	}
   694  	return mi.MessageOf(x)
   695  }
   696  
   697  // Deprecated: Use SearchNearestEntitiesResponse.ProtoReflect.Descriptor instead.
   698  func (*SearchNearestEntitiesResponse) Descriptor() ([]byte, []int) {
   699  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{6}
   700  }
   701  
   702  func (x *SearchNearestEntitiesResponse) GetNearestNeighbors() *NearestNeighbors {
   703  	if x != nil {
   704  		return x.NearestNeighbors
   705  	}
   706  	return nil
   707  }
   708  
   709  // Request message for
   710  // [FeatureOnlineStoreService.FeatureViewDirectWrite][google.cloud.aiplatform.v1.FeatureOnlineStoreService.FeatureViewDirectWrite].
   711  type FeatureViewDirectWriteRequest struct {
   712  	state         protoimpl.MessageState
   713  	sizeCache     protoimpl.SizeCache
   714  	unknownFields protoimpl.UnknownFields
   715  
   716  	// FeatureView resource format
   717  	// `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}`
   718  	FeatureView string `protobuf:"bytes,1,opt,name=feature_view,json=featureView,proto3" json:"feature_view,omitempty"`
   719  	// Required. The data keys and associated feature values.
   720  	DataKeyAndFeatureValues []*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues `protobuf:"bytes,2,rep,name=data_key_and_feature_values,json=dataKeyAndFeatureValues,proto3" json:"data_key_and_feature_values,omitempty"`
   721  }
   722  
   723  func (x *FeatureViewDirectWriteRequest) Reset() {
   724  	*x = FeatureViewDirectWriteRequest{}
   725  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[7]
   726  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   727  	ms.StoreMessageInfo(mi)
   728  }
   729  
   730  func (x *FeatureViewDirectWriteRequest) String() string {
   731  	return protoimpl.X.MessageStringOf(x)
   732  }
   733  
   734  func (*FeatureViewDirectWriteRequest) ProtoMessage() {}
   735  
   736  func (x *FeatureViewDirectWriteRequest) ProtoReflect() protoreflect.Message {
   737  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[7]
   738  	if x != nil {
   739  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   740  		if ms.LoadMessageInfo() == nil {
   741  			ms.StoreMessageInfo(mi)
   742  		}
   743  		return ms
   744  	}
   745  	return mi.MessageOf(x)
   746  }
   747  
   748  // Deprecated: Use FeatureViewDirectWriteRequest.ProtoReflect.Descriptor instead.
   749  func (*FeatureViewDirectWriteRequest) Descriptor() ([]byte, []int) {
   750  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{7}
   751  }
   752  
   753  func (x *FeatureViewDirectWriteRequest) GetFeatureView() string {
   754  	if x != nil {
   755  		return x.FeatureView
   756  	}
   757  	return ""
   758  }
   759  
   760  func (x *FeatureViewDirectWriteRequest) GetDataKeyAndFeatureValues() []*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues {
   761  	if x != nil {
   762  		return x.DataKeyAndFeatureValues
   763  	}
   764  	return nil
   765  }
   766  
   767  // Response message for
   768  // [FeatureOnlineStoreService.FeatureViewDirectWrite][google.cloud.aiplatform.v1.FeatureOnlineStoreService.FeatureViewDirectWrite].
   769  type FeatureViewDirectWriteResponse struct {
   770  	state         protoimpl.MessageState
   771  	sizeCache     protoimpl.SizeCache
   772  	unknownFields protoimpl.UnknownFields
   773  
   774  	// Response status for the keys listed in
   775  	// [FeatureViewDirectWriteResponse.write_responses][google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.write_responses].
   776  	//
   777  	// The error only applies to the
   778  	// listed data keys - the stream will remain open for further
   779  	// [FeatureOnlineStoreService.FeatureViewDirectWriteRequest][] requests.
   780  	//
   781  	// Partial failures (e.g. if the first 10 keys of a request fail, but the
   782  	// rest succeed) from a single request may result in multiple responses -
   783  	// there will be one response for the successful request keys and one response
   784  	// for the failing request keys.
   785  	Status *status.Status `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"`
   786  	// Details about write for each key. If status is not OK,
   787  	// [WriteResponse.data_key][google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.WriteResponse.data_key]
   788  	// will have the key with error, but
   789  	// [WriteResponse.online_store_write_time][google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.WriteResponse.online_store_write_time]
   790  	// will not be present.
   791  	WriteResponses []*FeatureViewDirectWriteResponse_WriteResponse `protobuf:"bytes,2,rep,name=write_responses,json=writeResponses,proto3" json:"write_responses,omitempty"`
   792  }
   793  
   794  func (x *FeatureViewDirectWriteResponse) Reset() {
   795  	*x = FeatureViewDirectWriteResponse{}
   796  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[8]
   797  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   798  	ms.StoreMessageInfo(mi)
   799  }
   800  
   801  func (x *FeatureViewDirectWriteResponse) String() string {
   802  	return protoimpl.X.MessageStringOf(x)
   803  }
   804  
   805  func (*FeatureViewDirectWriteResponse) ProtoMessage() {}
   806  
   807  func (x *FeatureViewDirectWriteResponse) ProtoReflect() protoreflect.Message {
   808  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[8]
   809  	if x != nil {
   810  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   811  		if ms.LoadMessageInfo() == nil {
   812  			ms.StoreMessageInfo(mi)
   813  		}
   814  		return ms
   815  	}
   816  	return mi.MessageOf(x)
   817  }
   818  
   819  // Deprecated: Use FeatureViewDirectWriteResponse.ProtoReflect.Descriptor instead.
   820  func (*FeatureViewDirectWriteResponse) Descriptor() ([]byte, []int) {
   821  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{8}
   822  }
   823  
   824  func (x *FeatureViewDirectWriteResponse) GetStatus() *status.Status {
   825  	if x != nil {
   826  		return x.Status
   827  	}
   828  	return nil
   829  }
   830  
   831  func (x *FeatureViewDirectWriteResponse) GetWriteResponses() []*FeatureViewDirectWriteResponse_WriteResponse {
   832  	if x != nil {
   833  		return x.WriteResponses
   834  	}
   835  	return nil
   836  }
   837  
   838  // Request message for
   839  // [FeatureOnlineStoreService.GenerateFetchAccessToken][google.cloud.aiplatform.v1.FeatureOnlineStoreService.GenerateFetchAccessToken].
   840  type GenerateFetchAccessTokenRequest struct {
   841  	state         protoimpl.MessageState
   842  	sizeCache     protoimpl.SizeCache
   843  	unknownFields protoimpl.UnknownFields
   844  
   845  	// FeatureView resource format
   846  	// `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}`
   847  	FeatureView string `protobuf:"bytes,1,opt,name=feature_view,json=featureView,proto3" json:"feature_view,omitempty"`
   848  }
   849  
   850  func (x *GenerateFetchAccessTokenRequest) Reset() {
   851  	*x = GenerateFetchAccessTokenRequest{}
   852  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[9]
   853  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   854  	ms.StoreMessageInfo(mi)
   855  }
   856  
   857  func (x *GenerateFetchAccessTokenRequest) String() string {
   858  	return protoimpl.X.MessageStringOf(x)
   859  }
   860  
   861  func (*GenerateFetchAccessTokenRequest) ProtoMessage() {}
   862  
   863  func (x *GenerateFetchAccessTokenRequest) ProtoReflect() protoreflect.Message {
   864  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[9]
   865  	if x != nil {
   866  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   867  		if ms.LoadMessageInfo() == nil {
   868  			ms.StoreMessageInfo(mi)
   869  		}
   870  		return ms
   871  	}
   872  	return mi.MessageOf(x)
   873  }
   874  
   875  // Deprecated: Use GenerateFetchAccessTokenRequest.ProtoReflect.Descriptor instead.
   876  func (*GenerateFetchAccessTokenRequest) Descriptor() ([]byte, []int) {
   877  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{9}
   878  }
   879  
   880  func (x *GenerateFetchAccessTokenRequest) GetFeatureView() string {
   881  	if x != nil {
   882  		return x.FeatureView
   883  	}
   884  	return ""
   885  }
   886  
   887  // Response message for
   888  // [FeatureOnlineStoreService.GenerateFetchAccessToken][google.cloud.aiplatform.v1.FeatureOnlineStoreService.GenerateFetchAccessToken].
   889  type GenerateFetchAccessTokenResponse struct {
   890  	state         protoimpl.MessageState
   891  	sizeCache     protoimpl.SizeCache
   892  	unknownFields protoimpl.UnknownFields
   893  
   894  	// The OAuth 2.0 access token.
   895  	AccessToken string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
   896  	// Token expiration time. This is always set
   897  	ExpireTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
   898  }
   899  
   900  func (x *GenerateFetchAccessTokenResponse) Reset() {
   901  	*x = GenerateFetchAccessTokenResponse{}
   902  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[10]
   903  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   904  	ms.StoreMessageInfo(mi)
   905  }
   906  
   907  func (x *GenerateFetchAccessTokenResponse) String() string {
   908  	return protoimpl.X.MessageStringOf(x)
   909  }
   910  
   911  func (*GenerateFetchAccessTokenResponse) ProtoMessage() {}
   912  
   913  func (x *GenerateFetchAccessTokenResponse) ProtoReflect() protoreflect.Message {
   914  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[10]
   915  	if x != nil {
   916  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   917  		if ms.LoadMessageInfo() == nil {
   918  			ms.StoreMessageInfo(mi)
   919  		}
   920  		return ms
   921  	}
   922  	return mi.MessageOf(x)
   923  }
   924  
   925  // Deprecated: Use GenerateFetchAccessTokenResponse.ProtoReflect.Descriptor instead.
   926  func (*GenerateFetchAccessTokenResponse) Descriptor() ([]byte, []int) {
   927  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{10}
   928  }
   929  
   930  func (x *GenerateFetchAccessTokenResponse) GetAccessToken() string {
   931  	if x != nil {
   932  		return x.AccessToken
   933  	}
   934  	return ""
   935  }
   936  
   937  func (x *GenerateFetchAccessTokenResponse) GetExpireTime() *timestamppb.Timestamp {
   938  	if x != nil {
   939  		return x.ExpireTime
   940  	}
   941  	return nil
   942  }
   943  
   944  // ID that is comprised from several parts (columns).
   945  type FeatureViewDataKey_CompositeKey struct {
   946  	state         protoimpl.MessageState
   947  	sizeCache     protoimpl.SizeCache
   948  	unknownFields protoimpl.UnknownFields
   949  
   950  	// Parts to construct Entity ID. Should match with the same ID columns as
   951  	// defined in FeatureView in the same order.
   952  	Parts []string `protobuf:"bytes,1,rep,name=parts,proto3" json:"parts,omitempty"`
   953  }
   954  
   955  func (x *FeatureViewDataKey_CompositeKey) Reset() {
   956  	*x = FeatureViewDataKey_CompositeKey{}
   957  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[11]
   958  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   959  	ms.StoreMessageInfo(mi)
   960  }
   961  
   962  func (x *FeatureViewDataKey_CompositeKey) String() string {
   963  	return protoimpl.X.MessageStringOf(x)
   964  }
   965  
   966  func (*FeatureViewDataKey_CompositeKey) ProtoMessage() {}
   967  
   968  func (x *FeatureViewDataKey_CompositeKey) ProtoReflect() protoreflect.Message {
   969  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[11]
   970  	if x != nil {
   971  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   972  		if ms.LoadMessageInfo() == nil {
   973  			ms.StoreMessageInfo(mi)
   974  		}
   975  		return ms
   976  	}
   977  	return mi.MessageOf(x)
   978  }
   979  
   980  // Deprecated: Use FeatureViewDataKey_CompositeKey.ProtoReflect.Descriptor instead.
   981  func (*FeatureViewDataKey_CompositeKey) Descriptor() ([]byte, []int) {
   982  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{0, 0}
   983  }
   984  
   985  func (x *FeatureViewDataKey_CompositeKey) GetParts() []string {
   986  	if x != nil {
   987  		return x.Parts
   988  	}
   989  	return nil
   990  }
   991  
   992  // Response structure in the format of key (feature name) and (feature) value
   993  // pair.
   994  type FetchFeatureValuesResponse_FeatureNameValuePairList struct {
   995  	state         protoimpl.MessageState
   996  	sizeCache     protoimpl.SizeCache
   997  	unknownFields protoimpl.UnknownFields
   998  
   999  	// List of feature names and values.
  1000  	Features []*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair `protobuf:"bytes,1,rep,name=features,proto3" json:"features,omitempty"`
  1001  }
  1002  
  1003  func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) Reset() {
  1004  	*x = FetchFeatureValuesResponse_FeatureNameValuePairList{}
  1005  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[12]
  1006  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1007  	ms.StoreMessageInfo(mi)
  1008  }
  1009  
  1010  func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) String() string {
  1011  	return protoimpl.X.MessageStringOf(x)
  1012  }
  1013  
  1014  func (*FetchFeatureValuesResponse_FeatureNameValuePairList) ProtoMessage() {}
  1015  
  1016  func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) ProtoReflect() protoreflect.Message {
  1017  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[12]
  1018  	if x != nil {
  1019  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1020  		if ms.LoadMessageInfo() == nil {
  1021  			ms.StoreMessageInfo(mi)
  1022  		}
  1023  		return ms
  1024  	}
  1025  	return mi.MessageOf(x)
  1026  }
  1027  
  1028  // Deprecated: Use FetchFeatureValuesResponse_FeatureNameValuePairList.ProtoReflect.Descriptor instead.
  1029  func (*FetchFeatureValuesResponse_FeatureNameValuePairList) Descriptor() ([]byte, []int) {
  1030  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{2, 0}
  1031  }
  1032  
  1033  func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) GetFeatures() []*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair {
  1034  	if x != nil {
  1035  		return x.Features
  1036  	}
  1037  	return nil
  1038  }
  1039  
  1040  // Feature name & value pair.
  1041  type FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair struct {
  1042  	state         protoimpl.MessageState
  1043  	sizeCache     protoimpl.SizeCache
  1044  	unknownFields protoimpl.UnknownFields
  1045  
  1046  	// Types that are assignable to Data:
  1047  	//
  1048  	//	*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value
  1049  	Data isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data `protobuf_oneof:"data"`
  1050  	// Feature short name.
  1051  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1052  }
  1053  
  1054  func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) Reset() {
  1055  	*x = FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair{}
  1056  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[13]
  1057  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1058  	ms.StoreMessageInfo(mi)
  1059  }
  1060  
  1061  func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) String() string {
  1062  	return protoimpl.X.MessageStringOf(x)
  1063  }
  1064  
  1065  func (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) ProtoMessage() {}
  1066  
  1067  func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) ProtoReflect() protoreflect.Message {
  1068  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[13]
  1069  	if x != nil {
  1070  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1071  		if ms.LoadMessageInfo() == nil {
  1072  			ms.StoreMessageInfo(mi)
  1073  		}
  1074  		return ms
  1075  	}
  1076  	return mi.MessageOf(x)
  1077  }
  1078  
  1079  // Deprecated: Use FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair.ProtoReflect.Descriptor instead.
  1080  func (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) Descriptor() ([]byte, []int) {
  1081  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{2, 0, 0}
  1082  }
  1083  
  1084  func (m *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) GetData() isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data {
  1085  	if m != nil {
  1086  		return m.Data
  1087  	}
  1088  	return nil
  1089  }
  1090  
  1091  func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) GetValue() *FeatureValue {
  1092  	if x, ok := x.GetData().(*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value); ok {
  1093  		return x.Value
  1094  	}
  1095  	return nil
  1096  }
  1097  
  1098  func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) GetName() string {
  1099  	if x != nil {
  1100  		return x.Name
  1101  	}
  1102  	return ""
  1103  }
  1104  
  1105  type isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data interface {
  1106  	isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data()
  1107  }
  1108  
  1109  type FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value struct {
  1110  	// Feature value.
  1111  	Value *FeatureValue `protobuf:"bytes,2,opt,name=value,proto3,oneof"`
  1112  }
  1113  
  1114  func (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value) isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data() {
  1115  }
  1116  
  1117  // The embedding vector.
  1118  type NearestNeighborQuery_Embedding struct {
  1119  	state         protoimpl.MessageState
  1120  	sizeCache     protoimpl.SizeCache
  1121  	unknownFields protoimpl.UnknownFields
  1122  
  1123  	// Optional. Individual value in the embedding.
  1124  	Value []float32 `protobuf:"fixed32,1,rep,packed,name=value,proto3" json:"value,omitempty"`
  1125  }
  1126  
  1127  func (x *NearestNeighborQuery_Embedding) Reset() {
  1128  	*x = NearestNeighborQuery_Embedding{}
  1129  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[14]
  1130  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1131  	ms.StoreMessageInfo(mi)
  1132  }
  1133  
  1134  func (x *NearestNeighborQuery_Embedding) String() string {
  1135  	return protoimpl.X.MessageStringOf(x)
  1136  }
  1137  
  1138  func (*NearestNeighborQuery_Embedding) ProtoMessage() {}
  1139  
  1140  func (x *NearestNeighborQuery_Embedding) ProtoReflect() protoreflect.Message {
  1141  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[14]
  1142  	if x != nil {
  1143  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1144  		if ms.LoadMessageInfo() == nil {
  1145  			ms.StoreMessageInfo(mi)
  1146  		}
  1147  		return ms
  1148  	}
  1149  	return mi.MessageOf(x)
  1150  }
  1151  
  1152  // Deprecated: Use NearestNeighborQuery_Embedding.ProtoReflect.Descriptor instead.
  1153  func (*NearestNeighborQuery_Embedding) Descriptor() ([]byte, []int) {
  1154  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{3, 0}
  1155  }
  1156  
  1157  func (x *NearestNeighborQuery_Embedding) GetValue() []float32 {
  1158  	if x != nil {
  1159  		return x.Value
  1160  	}
  1161  	return nil
  1162  }
  1163  
  1164  // String filter is used to search a subset of the entities by using boolean
  1165  // rules on string columns.
  1166  // For example: if a query specifies string filter
  1167  // with 'name = color, allow_tokens = {red, blue}, deny_tokens = {purple}','
  1168  // then that query will match entities that are red or blue, but if those
  1169  // points are also purple, then they will be excluded even if they are
  1170  // red/blue. Only string filter is supported for now, numeric filter will be
  1171  // supported in the near future.
  1172  type NearestNeighborQuery_StringFilter struct {
  1173  	state         protoimpl.MessageState
  1174  	sizeCache     protoimpl.SizeCache
  1175  	unknownFields protoimpl.UnknownFields
  1176  
  1177  	// Required. Column names in BigQuery that used as filters.
  1178  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1179  	// Optional. The allowed tokens.
  1180  	AllowTokens []string `protobuf:"bytes,2,rep,name=allow_tokens,json=allowTokens,proto3" json:"allow_tokens,omitempty"`
  1181  	// Optional. The denied tokens.
  1182  	DenyTokens []string `protobuf:"bytes,3,rep,name=deny_tokens,json=denyTokens,proto3" json:"deny_tokens,omitempty"`
  1183  }
  1184  
  1185  func (x *NearestNeighborQuery_StringFilter) Reset() {
  1186  	*x = NearestNeighborQuery_StringFilter{}
  1187  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[15]
  1188  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1189  	ms.StoreMessageInfo(mi)
  1190  }
  1191  
  1192  func (x *NearestNeighborQuery_StringFilter) String() string {
  1193  	return protoimpl.X.MessageStringOf(x)
  1194  }
  1195  
  1196  func (*NearestNeighborQuery_StringFilter) ProtoMessage() {}
  1197  
  1198  func (x *NearestNeighborQuery_StringFilter) ProtoReflect() protoreflect.Message {
  1199  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[15]
  1200  	if x != nil {
  1201  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1202  		if ms.LoadMessageInfo() == nil {
  1203  			ms.StoreMessageInfo(mi)
  1204  		}
  1205  		return ms
  1206  	}
  1207  	return mi.MessageOf(x)
  1208  }
  1209  
  1210  // Deprecated: Use NearestNeighborQuery_StringFilter.ProtoReflect.Descriptor instead.
  1211  func (*NearestNeighborQuery_StringFilter) Descriptor() ([]byte, []int) {
  1212  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{3, 1}
  1213  }
  1214  
  1215  func (x *NearestNeighborQuery_StringFilter) GetName() string {
  1216  	if x != nil {
  1217  		return x.Name
  1218  	}
  1219  	return ""
  1220  }
  1221  
  1222  func (x *NearestNeighborQuery_StringFilter) GetAllowTokens() []string {
  1223  	if x != nil {
  1224  		return x.AllowTokens
  1225  	}
  1226  	return nil
  1227  }
  1228  
  1229  func (x *NearestNeighborQuery_StringFilter) GetDenyTokens() []string {
  1230  	if x != nil {
  1231  		return x.DenyTokens
  1232  	}
  1233  	return nil
  1234  }
  1235  
  1236  // Numeric filter is used to search a subset of the entities by using boolean
  1237  // rules on numeric columns.
  1238  // For example:
  1239  // Database Point 0: {name: "a" value_int: 42} {name: "b" value_float: 1.0}
  1240  // Database Point 1:  {name: "a" value_int: 10} {name: "b" value_float: 2.0}
  1241  // Database Point 2: {name: "a" value_int: -1} {name: "b" value_float: 3.0}
  1242  // Query: {name: "a" value_int: 12 operator: LESS}    // Matches Point 1, 2
  1243  // {name: "b" value_float: 2.0 operator: EQUAL} // Matches Point 1
  1244  type NearestNeighborQuery_NumericFilter struct {
  1245  	state         protoimpl.MessageState
  1246  	sizeCache     protoimpl.SizeCache
  1247  	unknownFields protoimpl.UnknownFields
  1248  
  1249  	// The type of Value must be consistent for all datapoints with a given
  1250  	// name.  This is verified at runtime.
  1251  	//
  1252  	// Types that are assignable to Value:
  1253  	//
  1254  	//	*NearestNeighborQuery_NumericFilter_ValueInt
  1255  	//	*NearestNeighborQuery_NumericFilter_ValueFloat
  1256  	//	*NearestNeighborQuery_NumericFilter_ValueDouble
  1257  	Value isNearestNeighborQuery_NumericFilter_Value `protobuf_oneof:"Value"`
  1258  	// Required. Column name in BigQuery that used as filters.
  1259  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1260  	// Optional. This MUST be specified for queries and must NOT be specified
  1261  	// for database points.
  1262  	Op *NearestNeighborQuery_NumericFilter_Operator `protobuf:"varint,5,opt,name=op,proto3,enum=google.cloud.aiplatform.v1.NearestNeighborQuery_NumericFilter_Operator,oneof" json:"op,omitempty"`
  1263  }
  1264  
  1265  func (x *NearestNeighborQuery_NumericFilter) Reset() {
  1266  	*x = NearestNeighborQuery_NumericFilter{}
  1267  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[16]
  1268  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1269  	ms.StoreMessageInfo(mi)
  1270  }
  1271  
  1272  func (x *NearestNeighborQuery_NumericFilter) String() string {
  1273  	return protoimpl.X.MessageStringOf(x)
  1274  }
  1275  
  1276  func (*NearestNeighborQuery_NumericFilter) ProtoMessage() {}
  1277  
  1278  func (x *NearestNeighborQuery_NumericFilter) ProtoReflect() protoreflect.Message {
  1279  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[16]
  1280  	if x != nil {
  1281  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1282  		if ms.LoadMessageInfo() == nil {
  1283  			ms.StoreMessageInfo(mi)
  1284  		}
  1285  		return ms
  1286  	}
  1287  	return mi.MessageOf(x)
  1288  }
  1289  
  1290  // Deprecated: Use NearestNeighborQuery_NumericFilter.ProtoReflect.Descriptor instead.
  1291  func (*NearestNeighborQuery_NumericFilter) Descriptor() ([]byte, []int) {
  1292  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{3, 2}
  1293  }
  1294  
  1295  func (m *NearestNeighborQuery_NumericFilter) GetValue() isNearestNeighborQuery_NumericFilter_Value {
  1296  	if m != nil {
  1297  		return m.Value
  1298  	}
  1299  	return nil
  1300  }
  1301  
  1302  func (x *NearestNeighborQuery_NumericFilter) GetValueInt() int64 {
  1303  	if x, ok := x.GetValue().(*NearestNeighborQuery_NumericFilter_ValueInt); ok {
  1304  		return x.ValueInt
  1305  	}
  1306  	return 0
  1307  }
  1308  
  1309  func (x *NearestNeighborQuery_NumericFilter) GetValueFloat() float32 {
  1310  	if x, ok := x.GetValue().(*NearestNeighborQuery_NumericFilter_ValueFloat); ok {
  1311  		return x.ValueFloat
  1312  	}
  1313  	return 0
  1314  }
  1315  
  1316  func (x *NearestNeighborQuery_NumericFilter) GetValueDouble() float64 {
  1317  	if x, ok := x.GetValue().(*NearestNeighborQuery_NumericFilter_ValueDouble); ok {
  1318  		return x.ValueDouble
  1319  	}
  1320  	return 0
  1321  }
  1322  
  1323  func (x *NearestNeighborQuery_NumericFilter) GetName() string {
  1324  	if x != nil {
  1325  		return x.Name
  1326  	}
  1327  	return ""
  1328  }
  1329  
  1330  func (x *NearestNeighborQuery_NumericFilter) GetOp() NearestNeighborQuery_NumericFilter_Operator {
  1331  	if x != nil && x.Op != nil {
  1332  		return *x.Op
  1333  	}
  1334  	return NearestNeighborQuery_NumericFilter_OPERATOR_UNSPECIFIED
  1335  }
  1336  
  1337  type isNearestNeighborQuery_NumericFilter_Value interface {
  1338  	isNearestNeighborQuery_NumericFilter_Value()
  1339  }
  1340  
  1341  type NearestNeighborQuery_NumericFilter_ValueInt struct {
  1342  	// int value type.
  1343  	ValueInt int64 `protobuf:"varint,2,opt,name=value_int,json=valueInt,proto3,oneof"`
  1344  }
  1345  
  1346  type NearestNeighborQuery_NumericFilter_ValueFloat struct {
  1347  	// float value type.
  1348  	ValueFloat float32 `protobuf:"fixed32,3,opt,name=value_float,json=valueFloat,proto3,oneof"`
  1349  }
  1350  
  1351  type NearestNeighborQuery_NumericFilter_ValueDouble struct {
  1352  	// double value type.
  1353  	ValueDouble float64 `protobuf:"fixed64,4,opt,name=value_double,json=valueDouble,proto3,oneof"`
  1354  }
  1355  
  1356  func (*NearestNeighborQuery_NumericFilter_ValueInt) isNearestNeighborQuery_NumericFilter_Value() {}
  1357  
  1358  func (*NearestNeighborQuery_NumericFilter_ValueFloat) isNearestNeighborQuery_NumericFilter_Value() {}
  1359  
  1360  func (*NearestNeighborQuery_NumericFilter_ValueDouble) isNearestNeighborQuery_NumericFilter_Value() {}
  1361  
  1362  // Parameters that can be overrided in each query to tune query latency and
  1363  // recall.
  1364  type NearestNeighborQuery_Parameters struct {
  1365  	state         protoimpl.MessageState
  1366  	sizeCache     protoimpl.SizeCache
  1367  	unknownFields protoimpl.UnknownFields
  1368  
  1369  	// Optional. The number of neighbors to find via approximate search before
  1370  	// exact reordering is performed; if set, this value must be >
  1371  	// neighbor_count.
  1372  	ApproximateNeighborCandidates int32 `protobuf:"varint,1,opt,name=approximate_neighbor_candidates,json=approximateNeighborCandidates,proto3" json:"approximate_neighbor_candidates,omitempty"`
  1373  	// Optional. The fraction of the number of leaves to search, set at query
  1374  	// time allows user to tune search performance. This value increase result
  1375  	// in both search accuracy and latency increase. The value should be between
  1376  	// 0.0 and 1.0.
  1377  	LeafNodesSearchFraction float64 `protobuf:"fixed64,2,opt,name=leaf_nodes_search_fraction,json=leafNodesSearchFraction,proto3" json:"leaf_nodes_search_fraction,omitempty"`
  1378  }
  1379  
  1380  func (x *NearestNeighborQuery_Parameters) Reset() {
  1381  	*x = NearestNeighborQuery_Parameters{}
  1382  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[17]
  1383  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1384  	ms.StoreMessageInfo(mi)
  1385  }
  1386  
  1387  func (x *NearestNeighborQuery_Parameters) String() string {
  1388  	return protoimpl.X.MessageStringOf(x)
  1389  }
  1390  
  1391  func (*NearestNeighborQuery_Parameters) ProtoMessage() {}
  1392  
  1393  func (x *NearestNeighborQuery_Parameters) ProtoReflect() protoreflect.Message {
  1394  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[17]
  1395  	if x != nil {
  1396  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1397  		if ms.LoadMessageInfo() == nil {
  1398  			ms.StoreMessageInfo(mi)
  1399  		}
  1400  		return ms
  1401  	}
  1402  	return mi.MessageOf(x)
  1403  }
  1404  
  1405  // Deprecated: Use NearestNeighborQuery_Parameters.ProtoReflect.Descriptor instead.
  1406  func (*NearestNeighborQuery_Parameters) Descriptor() ([]byte, []int) {
  1407  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{3, 3}
  1408  }
  1409  
  1410  func (x *NearestNeighborQuery_Parameters) GetApproximateNeighborCandidates() int32 {
  1411  	if x != nil {
  1412  		return x.ApproximateNeighborCandidates
  1413  	}
  1414  	return 0
  1415  }
  1416  
  1417  func (x *NearestNeighborQuery_Parameters) GetLeafNodesSearchFraction() float64 {
  1418  	if x != nil {
  1419  		return x.LeafNodesSearchFraction
  1420  	}
  1421  	return 0
  1422  }
  1423  
  1424  // A neighbor of the query vector.
  1425  type NearestNeighbors_Neighbor struct {
  1426  	state         protoimpl.MessageState
  1427  	sizeCache     protoimpl.SizeCache
  1428  	unknownFields protoimpl.UnknownFields
  1429  
  1430  	// The id of the similar entity.
  1431  	EntityId string `protobuf:"bytes,1,opt,name=entity_id,json=entityId,proto3" json:"entity_id,omitempty"`
  1432  	// The distance between the neighbor and the query vector.
  1433  	Distance float64 `protobuf:"fixed64,2,opt,name=distance,proto3" json:"distance,omitempty"`
  1434  	// The attributes of the neighbor, e.g. filters, crowding and metadata
  1435  	// Note that full entities are returned only when "return_full_entity"
  1436  	// is set to true. Otherwise, only the "entity_id" and "distance" fields
  1437  	// are populated.
  1438  	EntityKeyValues *FetchFeatureValuesResponse `protobuf:"bytes,3,opt,name=entity_key_values,json=entityKeyValues,proto3" json:"entity_key_values,omitempty"`
  1439  }
  1440  
  1441  func (x *NearestNeighbors_Neighbor) Reset() {
  1442  	*x = NearestNeighbors_Neighbor{}
  1443  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[18]
  1444  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1445  	ms.StoreMessageInfo(mi)
  1446  }
  1447  
  1448  func (x *NearestNeighbors_Neighbor) String() string {
  1449  	return protoimpl.X.MessageStringOf(x)
  1450  }
  1451  
  1452  func (*NearestNeighbors_Neighbor) ProtoMessage() {}
  1453  
  1454  func (x *NearestNeighbors_Neighbor) ProtoReflect() protoreflect.Message {
  1455  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[18]
  1456  	if x != nil {
  1457  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1458  		if ms.LoadMessageInfo() == nil {
  1459  			ms.StoreMessageInfo(mi)
  1460  		}
  1461  		return ms
  1462  	}
  1463  	return mi.MessageOf(x)
  1464  }
  1465  
  1466  // Deprecated: Use NearestNeighbors_Neighbor.ProtoReflect.Descriptor instead.
  1467  func (*NearestNeighbors_Neighbor) Descriptor() ([]byte, []int) {
  1468  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{5, 0}
  1469  }
  1470  
  1471  func (x *NearestNeighbors_Neighbor) GetEntityId() string {
  1472  	if x != nil {
  1473  		return x.EntityId
  1474  	}
  1475  	return ""
  1476  }
  1477  
  1478  func (x *NearestNeighbors_Neighbor) GetDistance() float64 {
  1479  	if x != nil {
  1480  		return x.Distance
  1481  	}
  1482  	return 0
  1483  }
  1484  
  1485  func (x *NearestNeighbors_Neighbor) GetEntityKeyValues() *FetchFeatureValuesResponse {
  1486  	if x != nil {
  1487  		return x.EntityKeyValues
  1488  	}
  1489  	return nil
  1490  }
  1491  
  1492  // A data key and associated feature values to write to the feature view.
  1493  type FeatureViewDirectWriteRequest_DataKeyAndFeatureValues struct {
  1494  	state         protoimpl.MessageState
  1495  	sizeCache     protoimpl.SizeCache
  1496  	unknownFields protoimpl.UnknownFields
  1497  
  1498  	// The data key.
  1499  	DataKey *FeatureViewDataKey `protobuf:"bytes,1,opt,name=data_key,json=dataKey,proto3" json:"data_key,omitempty"`
  1500  	// List of features to write.
  1501  	Features []*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature `protobuf:"bytes,2,rep,name=features,proto3" json:"features,omitempty"`
  1502  }
  1503  
  1504  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues) Reset() {
  1505  	*x = FeatureViewDirectWriteRequest_DataKeyAndFeatureValues{}
  1506  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[19]
  1507  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1508  	ms.StoreMessageInfo(mi)
  1509  }
  1510  
  1511  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues) String() string {
  1512  	return protoimpl.X.MessageStringOf(x)
  1513  }
  1514  
  1515  func (*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues) ProtoMessage() {}
  1516  
  1517  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues) ProtoReflect() protoreflect.Message {
  1518  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[19]
  1519  	if x != nil {
  1520  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1521  		if ms.LoadMessageInfo() == nil {
  1522  			ms.StoreMessageInfo(mi)
  1523  		}
  1524  		return ms
  1525  	}
  1526  	return mi.MessageOf(x)
  1527  }
  1528  
  1529  // Deprecated: Use FeatureViewDirectWriteRequest_DataKeyAndFeatureValues.ProtoReflect.Descriptor instead.
  1530  func (*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues) Descriptor() ([]byte, []int) {
  1531  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{7, 0}
  1532  }
  1533  
  1534  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues) GetDataKey() *FeatureViewDataKey {
  1535  	if x != nil {
  1536  		return x.DataKey
  1537  	}
  1538  	return nil
  1539  }
  1540  
  1541  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues) GetFeatures() []*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature {
  1542  	if x != nil {
  1543  		return x.Features
  1544  	}
  1545  	return nil
  1546  }
  1547  
  1548  // Feature name & value pair.
  1549  type FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature struct {
  1550  	state         protoimpl.MessageState
  1551  	sizeCache     protoimpl.SizeCache
  1552  	unknownFields protoimpl.UnknownFields
  1553  
  1554  	// Feature value data to write.
  1555  	//
  1556  	// Types that are assignable to DataOneof:
  1557  	//
  1558  	//	*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_Value
  1559  	DataOneof isFeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_DataOneof `protobuf_oneof:"data_oneof"`
  1560  	// Feature short name.
  1561  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1562  }
  1563  
  1564  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature) Reset() {
  1565  	*x = FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature{}
  1566  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[20]
  1567  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1568  	ms.StoreMessageInfo(mi)
  1569  }
  1570  
  1571  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature) String() string {
  1572  	return protoimpl.X.MessageStringOf(x)
  1573  }
  1574  
  1575  func (*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature) ProtoMessage() {}
  1576  
  1577  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature) ProtoReflect() protoreflect.Message {
  1578  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[20]
  1579  	if x != nil {
  1580  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1581  		if ms.LoadMessageInfo() == nil {
  1582  			ms.StoreMessageInfo(mi)
  1583  		}
  1584  		return ms
  1585  	}
  1586  	return mi.MessageOf(x)
  1587  }
  1588  
  1589  // Deprecated: Use FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature.ProtoReflect.Descriptor instead.
  1590  func (*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature) Descriptor() ([]byte, []int) {
  1591  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{7, 0, 0}
  1592  }
  1593  
  1594  func (m *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature) GetDataOneof() isFeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_DataOneof {
  1595  	if m != nil {
  1596  		return m.DataOneof
  1597  	}
  1598  	return nil
  1599  }
  1600  
  1601  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature) GetValue() *FeatureValue {
  1602  	if x, ok := x.GetDataOneof().(*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_Value); ok {
  1603  		return x.Value
  1604  	}
  1605  	return nil
  1606  }
  1607  
  1608  func (x *FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature) GetName() string {
  1609  	if x != nil {
  1610  		return x.Name
  1611  	}
  1612  	return ""
  1613  }
  1614  
  1615  type isFeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_DataOneof interface {
  1616  	isFeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_DataOneof()
  1617  }
  1618  
  1619  type FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_Value struct {
  1620  	// Feature value. A user provided timestamp may be set in the
  1621  	// `FeatureValue.metadata.generate_time` field.
  1622  	Value *FeatureValue `protobuf:"bytes,3,opt,name=value,proto3,oneof"`
  1623  }
  1624  
  1625  func (*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_Value) isFeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_DataOneof() {
  1626  }
  1627  
  1628  // Details about the write for each key.
  1629  type FeatureViewDirectWriteResponse_WriteResponse struct {
  1630  	state         protoimpl.MessageState
  1631  	sizeCache     protoimpl.SizeCache
  1632  	unknownFields protoimpl.UnknownFields
  1633  
  1634  	// What key is this write response associated with.
  1635  	DataKey *FeatureViewDataKey `protobuf:"bytes,1,opt,name=data_key,json=dataKey,proto3" json:"data_key,omitempty"`
  1636  	// When the feature values were written to the online store.
  1637  	// If
  1638  	// [FeatureViewDirectWriteResponse.status][google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.status]
  1639  	// is not OK, this field is not populated.
  1640  	OnlineStoreWriteTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=online_store_write_time,json=onlineStoreWriteTime,proto3" json:"online_store_write_time,omitempty"`
  1641  }
  1642  
  1643  func (x *FeatureViewDirectWriteResponse_WriteResponse) Reset() {
  1644  	*x = FeatureViewDirectWriteResponse_WriteResponse{}
  1645  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[21]
  1646  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1647  	ms.StoreMessageInfo(mi)
  1648  }
  1649  
  1650  func (x *FeatureViewDirectWriteResponse_WriteResponse) String() string {
  1651  	return protoimpl.X.MessageStringOf(x)
  1652  }
  1653  
  1654  func (*FeatureViewDirectWriteResponse_WriteResponse) ProtoMessage() {}
  1655  
  1656  func (x *FeatureViewDirectWriteResponse_WriteResponse) ProtoReflect() protoreflect.Message {
  1657  	mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[21]
  1658  	if x != nil {
  1659  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1660  		if ms.LoadMessageInfo() == nil {
  1661  			ms.StoreMessageInfo(mi)
  1662  		}
  1663  		return ms
  1664  	}
  1665  	return mi.MessageOf(x)
  1666  }
  1667  
  1668  // Deprecated: Use FeatureViewDirectWriteResponse_WriteResponse.ProtoReflect.Descriptor instead.
  1669  func (*FeatureViewDirectWriteResponse_WriteResponse) Descriptor() ([]byte, []int) {
  1670  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{8, 0}
  1671  }
  1672  
  1673  func (x *FeatureViewDirectWriteResponse_WriteResponse) GetDataKey() *FeatureViewDataKey {
  1674  	if x != nil {
  1675  		return x.DataKey
  1676  	}
  1677  	return nil
  1678  }
  1679  
  1680  func (x *FeatureViewDirectWriteResponse_WriteResponse) GetOnlineStoreWriteTime() *timestamppb.Timestamp {
  1681  	if x != nil {
  1682  		return x.OnlineStoreWriteTime
  1683  	}
  1684  	return nil
  1685  }
  1686  
  1687  var File_google_cloud_aiplatform_v1_feature_online_store_service_proto protoreflect.FileDescriptor
  1688  
  1689  var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDesc = []byte{
  1690  	0x0a, 0x3d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
  1691  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61,
  1692  	0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72,
  1693  	0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
  1694  	0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
  1695  	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f,
  1696  	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
  1697  	0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1698  	0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f,
  1699  	0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66,
  1700  	0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72,
  1701  	0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f,
  1702  	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3c,
  1703  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70,
  1704  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75,
  1705  	0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73,
  1706  	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f,
  1707  	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74,
  1708  	0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
  1709  	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65,
  1710  	0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f,
  1711  	0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70,
  1712  	0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x01, 0x0a, 0x12, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
  1713  	0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x03, 0x6b,
  1714  	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
  1715  	0x62, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79,
  1716  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1717  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
  1718  	0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44,
  1719  	0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65,
  1720  	0x4b, 0x65, 0x79, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65,
  1721  	0x4b, 0x65, 0x79, 0x1a, 0x24, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65,
  1722  	0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
  1723  	0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x6b, 0x65, 0x79,
  1724  	0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x96, 0x02, 0x0a, 0x19, 0x46, 0x65, 0x74, 0x63, 0x68,
  1725  	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71,
  1726  	0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f,
  1727  	0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa,
  1728  	0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67,
  1729  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65,
  1730  	0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75,
  1731  	0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x4e, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b,
  1732  	0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1733  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  1734  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65,
  1735  	0x77, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x64,
  1736  	0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x57, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66,
  1737  	0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f,
  1738  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
  1739  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
  1740  	0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x03,
  1741  	0xe0, 0x41, 0x01, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22,
  1742  	0xb7, 0x04, 0x0a, 0x1a, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
  1743  	0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70,
  1744  	0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01,
  1745  	0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
  1746  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
  1747  	0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75,
  1748  	0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75,
  1749  	0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x4c,
  1750  	0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73,
  1751  	0x12, 0x3c, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
  1752  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1753  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48,
  1754  	0x00, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x49,
  1755  	0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
  1756  	0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
  1757  	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65,
  1758  	0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79,
  1759  	0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x1a, 0x93, 0x02, 0x0a, 0x18, 0x46, 0x65,
  1760  	0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61,
  1761  	0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x80, 0x01, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75,
  1762  	0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  1763  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
  1764  	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74,
  1765  	0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
  1766  	0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c,
  1767  	0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75,
  1768  	0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52,
  1769  	0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x74, 0x0a, 0x14, 0x46, 0x65, 0x61,
  1770  	0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69,
  1771  	0x72, 0x12, 0x40, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
  1772  	0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
  1773  	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65,
  1774  	0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61,
  1775  	0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
  1776  	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42,
  1777  	0x08, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xa1, 0x0a, 0x0a, 0x14, 0x4e, 0x65,
  1778  	0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65,
  1779  	0x72, 0x79, 0x12, 0x22, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18,
  1780  	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e,
  1781  	0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x5f, 0x0a, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64,
  1782  	0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  1783  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
  1784  	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65,
  1785  	0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x6d, 0x62, 0x65,
  1786  	0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x65, 0x6d,
  1787  	0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x0e, 0x6e, 0x65, 0x69, 0x67, 0x68,
  1788  	0x62, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42,
  1789  	0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x43, 0x6f,
  1790  	0x75, 0x6e, 0x74, 0x12, 0x69, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69,
  1791  	0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f,
  1792  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
  1793  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74,
  1794  	0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74,
  1795  	0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52,
  1796  	0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x6c,
  1797  	0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
  1798  	0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1799  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
  1800  	0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67,
  1801  	0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69,
  1802  	0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6e, 0x75,
  1803  	0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x25,
  1804  	0x70, 0x65, 0x72, 0x5f, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74,
  1805  	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f,
  1806  	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01,
  1807  	0x52, 0x21, 0x70, 0x65, 0x72, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74,
  1808  	0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x43, 0x6f,
  1809  	0x75, 0x6e, 0x74, 0x12, 0x60, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
  1810  	0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1811  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
  1812  	0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67,
  1813  	0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
  1814  	0x74, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d,
  1815  	0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x26, 0x0a, 0x09, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69,
  1816  	0x6e, 0x67, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28,
  1817  	0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x75, 0x0a,
  1818  	0x0c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a,
  1819  	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
  1820  	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f,
  1821  	0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
  1822  	0x01, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x24,
  1823  	0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x03, 0x20,
  1824  	0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x79, 0x54, 0x6f,
  1825  	0x6b, 0x65, 0x6e, 0x73, 0x1a, 0xfc, 0x02, 0x0a, 0x0d, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63,
  1826  	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f,
  1827  	0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x76, 0x61, 0x6c,
  1828  	0x75, 0x65, 0x49, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66,
  1829  	0x6c, 0x6f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61,
  1830  	0x6c, 0x75, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75,
  1831  	0x65, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00,
  1832  	0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a,
  1833  	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02,
  1834  	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x61, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01,
  1835  	0x28, 0x0e, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
  1836  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
  1837  	0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51,
  1838  	0x75, 0x65, 0x72, 0x79, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x6c, 0x74,
  1839  	0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01,
  1840  	0x48, 0x01, 0x52, 0x02, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x22, 0x78, 0x0a, 0x08, 0x4f, 0x70, 0x65,
  1841  	0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f,
  1842  	0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
  1843  	0x08, 0x0a, 0x04, 0x4c, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x45, 0x53,
  1844  	0x53, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x51, 0x55,
  1845  	0x41, 0x4c, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f,
  1846  	0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x52, 0x45, 0x41, 0x54,
  1847  	0x45, 0x52, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41,
  1848  	0x4c, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x05, 0x0a, 0x03,
  1849  	0x5f, 0x6f, 0x70, 0x1a, 0x9b, 0x01, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
  1850  	0x72, 0x73, 0x12, 0x4b, 0x0a, 0x1f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74,
  1851  	0x65, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69,
  1852  	0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01,
  1853  	0x52, 0x1d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x69,
  1854  	0x67, 0x68, 0x62, 0x6f, 0x72, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12,
  1855  	0x40, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x73, 0x65,
  1856  	0x61, 0x72, 0x63, 0x68, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
  1857  	0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x66, 0x4e, 0x6f,
  1858  	0x64, 0x65, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f,
  1859  	0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xf0, 0x01,
  1860  	0x0a, 0x1c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x45,
  1861  	0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50,
  1862  	0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01,
  1863  	0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69,
  1864  	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
  1865  	0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56,
  1866  	0x69, 0x65, 0x77, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77,
  1867  	0x12, 0x4b, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
  1868  	0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61,
  1869  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x61,
  1870  	0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72,
  1871  	0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x31, 0x0a,
  1872  	0x12, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x74,
  1873  	0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10,
  1874  	0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79,
  1875  	0x22, 0x91, 0x02, 0x0a, 0x10, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67,
  1876  	0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x53, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f,
  1877  	0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1878  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  1879  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69,
  1880  	0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52,
  1881  	0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x1a, 0xa7, 0x01, 0x0a, 0x08, 0x4e,
  1882  	0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74,
  1883  	0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69,
  1884  	0x74, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
  1885  	0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65,
  1886  	0x12, 0x62, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76,
  1887  	0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f,
  1888  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
  1889  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65,
  1890  	0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
  1891  	0x6e, 0x73, 0x65, 0x52, 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x56, 0x61,
  1892  	0x6c, 0x75, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x1d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x65,
  1893  	0x61, 0x72, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73,
  1894  	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x11, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74,
  1895  	0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
  1896  	0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
  1897  	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65,
  1898  	0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x52, 0x10,
  1899  	0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73,
  1900  	0x22, 0xd2, 0x04, 0x0a, 0x1d, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77,
  1901  	0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
  1902  	0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69,
  1903  	0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61,
  1904  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1905  	0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
  1906  	0x56, 0x69, 0x65, 0x77, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65,
  1907  	0x77, 0x12, 0x94, 0x01, 0x0a, 0x1b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x61,
  1908  	0x6e, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65,
  1909  	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1910  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
  1911  	0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77,
  1912  	0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
  1913  	0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x46, 0x65, 0x61,
  1914  	0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
  1915  	0x17, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75,
  1916  	0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0xca, 0x02, 0x0a, 0x17, 0x44, 0x61, 0x74,
  1917  	0x61, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61,
  1918  	0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79,
  1919  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1920  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
  1921  	0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44,
  1922  	0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12,
  1923  	0x75, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
  1924  	0x0b, 0x32, 0x59, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
  1925  	0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46,
  1926  	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74,
  1927  	0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74,
  1928  	0x61, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61,
  1929  	0x6c, 0x75, 0x65, 0x73, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x65,
  1930  	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x6d, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
  1931  	0x65, 0x12, 0x40, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
  1932  	0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
  1933  	0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65,
  1934  	0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61,
  1935  	0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
  1936  	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f,
  1937  	0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0xef, 0x02, 0x0a, 0x1e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
  1938  	0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65,
  1939  	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
  1940  	0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1941  	0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74,
  1942  	0x61, 0x74, 0x75, 0x73, 0x12, 0x71, 0x0a, 0x0f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x72, 0x65,
  1943  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e,
  1944  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
  1945  	0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75,
  1946  	0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74,
  1947  	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52,
  1948  	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x77, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65,
  1949  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x1a, 0xad, 0x01, 0x0a, 0x0d, 0x57, 0x72, 0x69, 0x74,
  1950  	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x64, 0x61, 0x74,
  1951  	0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f,
  1952  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
  1953  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
  1954  	0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x52, 0x07, 0x64, 0x61, 0x74,
  1955  	0x61, 0x4b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x17, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73,
  1956  	0x74, 0x6f, 0x72, 0x65, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
  1957  	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  1958  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
  1959  	0x70, 0x52, 0x14, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x57, 0x72,
  1960  	0x69, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x70, 0x0a, 0x1f, 0x47, 0x65, 0x6e, 0x65, 0x72,
  1961  	0x61, 0x74, 0x65, 0x46, 0x65, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f,
  1962  	0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0c, 0x66, 0x65,
  1963  	0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  1964  	0x42, 0x2a, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
  1965  	0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d,
  1966  	0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0b, 0x66, 0x65,
  1967  	0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x22, 0x82, 0x01, 0x0a, 0x20, 0x47, 0x65,
  1968  	0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x65, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73,
  1969  	0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21,
  1970  	0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01,
  1971  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65,
  1972  	0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
  1973  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  1974  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
  1975  	0x6d, 0x70, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2a, 0x62,
  1976  	0x0a, 0x15, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74,
  1977  	0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x28, 0x0a, 0x24, 0x46, 0x45, 0x41, 0x54, 0x55,
  1978  	0x52, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52,
  1979  	0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
  1980  	0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4b, 0x45, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x01,
  1981  	0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54,
  1982  	0x10, 0x02, 0x32, 0x81, 0x09, 0x0a, 0x19, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e,
  1983  	0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
  1984  	0x12, 0x8b, 0x02, 0x0a, 0x12, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
  1985  	0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  1986  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
  1987  	0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
  1988  	0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36,
  1989  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
  1990  	0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63,
  1991  	0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65,
  1992  	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x85, 0x01, 0xda, 0x41, 0x16, 0x66, 0x65, 0x61, 0x74,
  1993  	0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b,
  1994  	0x65, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x66, 0x3a, 0x01, 0x2a, 0x22, 0x61, 0x2f, 0x76, 0x31,
  1995  	0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x3d, 0x70,
  1996  	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
  1997  	0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c,
  1998  	0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74,
  1999  	0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x66, 0x65, 0x74, 0x63,
  2000  	0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xfd,
  2001  	0x01, 0x0a, 0x15, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74,
  2002  	0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2003  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  2004  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x65, 0x61, 0x72,
  2005  	0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
  2006  	0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
  2007  	0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e,
  2008  	0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74,
  2009  	0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6f, 0x82,
  2010  	0xd3, 0xe4, 0x93, 0x02, 0x69, 0x3a, 0x01, 0x2a, 0x22, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x66,
  2011  	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x3d, 0x70, 0x72, 0x6f, 0x6a,
  2012  	0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
  2013  	0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65,
  2014  	0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
  2015  	0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e,
  2016  	0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0xfa,
  2017  	0x01, 0x0a, 0x16, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x69,
  2018  	0x72, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2019  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
  2020  	0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69,
  2021  	0x65, 0x77, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71,
  2022  	0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
  2023  	0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76,
  2024  	0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x69, 0x72,
  2025  	0x65, 0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
  2026  	0x22, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5f, 0x3a, 0x01, 0x2a, 0x22, 0x5a, 0x2f, 0x76, 0x31,
  2027  	0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x3d, 0x70,
  2028  	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
  2029  	0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c,
  2030  	0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74,
  2031  	0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x69, 0x72, 0x65,
  2032  	0x63, 0x74, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x89, 0x02, 0x0a, 0x18,
  2033  	0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x65, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63,
  2034  	0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2035  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  2036  	0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x65,
  2037  	0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65,
  2038  	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
  2039  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
  2040  	0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x65, 0x74, 0x63, 0x68,
  2041  	0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
  2042  	0x6e, 0x73, 0x65, 0x22, 0x72, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6c, 0x3a, 0x01, 0x2a, 0x22, 0x67,
  2043  	0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65,
  2044  	0x77, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63,
  2045  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
  2046  	0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66,
  2047  	0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67,
  2048  	0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x46, 0x65, 0x74, 0x63, 0x68, 0x41, 0x63, 0x63, 0x65,
  2049  	0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c,
  2050  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69,
  2051  	0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f,
  2052  	0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
  2053  	0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c,
  2054  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xdc, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
  2055  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
  2056  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x1e, 0x46, 0x65, 0x61, 0x74, 0x75,
  2057  	0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x72,
  2058  	0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f,
  2059  	0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f,
  2060  	0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76,
  2061  	0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61,
  2062  	0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f,
  2063  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61,
  2064  	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
  2065  	0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
  2066  	0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a,
  2067  	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
  2068  	0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
  2069  }
  2070  
  2071  var (
  2072  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescOnce sync.Once
  2073  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescData = file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDesc
  2074  )
  2075  
  2076  func file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP() []byte {
  2077  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescOnce.Do(func() {
  2078  		file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescData)
  2079  	})
  2080  	return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescData
  2081  }
  2082  
  2083  var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
  2084  var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
  2085  var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_goTypes = []any{
  2086  	(FeatureViewDataFormat)(0),                                                       // 0: google.cloud.aiplatform.v1.FeatureViewDataFormat
  2087  	(NearestNeighborQuery_NumericFilter_Operator)(0),                                 // 1: google.cloud.aiplatform.v1.NearestNeighborQuery.NumericFilter.Operator
  2088  	(*FeatureViewDataKey)(nil),                                                       // 2: google.cloud.aiplatform.v1.FeatureViewDataKey
  2089  	(*FetchFeatureValuesRequest)(nil),                                                // 3: google.cloud.aiplatform.v1.FetchFeatureValuesRequest
  2090  	(*FetchFeatureValuesResponse)(nil),                                               // 4: google.cloud.aiplatform.v1.FetchFeatureValuesResponse
  2091  	(*NearestNeighborQuery)(nil),                                                     // 5: google.cloud.aiplatform.v1.NearestNeighborQuery
  2092  	(*SearchNearestEntitiesRequest)(nil),                                             // 6: google.cloud.aiplatform.v1.SearchNearestEntitiesRequest
  2093  	(*NearestNeighbors)(nil),                                                         // 7: google.cloud.aiplatform.v1.NearestNeighbors
  2094  	(*SearchNearestEntitiesResponse)(nil),                                            // 8: google.cloud.aiplatform.v1.SearchNearestEntitiesResponse
  2095  	(*FeatureViewDirectWriteRequest)(nil),                                            // 9: google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest
  2096  	(*FeatureViewDirectWriteResponse)(nil),                                           // 10: google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse
  2097  	(*GenerateFetchAccessTokenRequest)(nil),                                          // 11: google.cloud.aiplatform.v1.GenerateFetchAccessTokenRequest
  2098  	(*GenerateFetchAccessTokenResponse)(nil),                                         // 12: google.cloud.aiplatform.v1.GenerateFetchAccessTokenResponse
  2099  	(*FeatureViewDataKey_CompositeKey)(nil),                                          // 13: google.cloud.aiplatform.v1.FeatureViewDataKey.CompositeKey
  2100  	(*FetchFeatureValuesResponse_FeatureNameValuePairList)(nil),                      // 14: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList
  2101  	(*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair)(nil), // 15: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair
  2102  	(*NearestNeighborQuery_Embedding)(nil),                                           // 16: google.cloud.aiplatform.v1.NearestNeighborQuery.Embedding
  2103  	(*NearestNeighborQuery_StringFilter)(nil),                                        // 17: google.cloud.aiplatform.v1.NearestNeighborQuery.StringFilter
  2104  	(*NearestNeighborQuery_NumericFilter)(nil),                                       // 18: google.cloud.aiplatform.v1.NearestNeighborQuery.NumericFilter
  2105  	(*NearestNeighborQuery_Parameters)(nil),                                          // 19: google.cloud.aiplatform.v1.NearestNeighborQuery.Parameters
  2106  	(*NearestNeighbors_Neighbor)(nil),                                                // 20: google.cloud.aiplatform.v1.NearestNeighbors.Neighbor
  2107  	(*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues)(nil),                    // 21: google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest.DataKeyAndFeatureValues
  2108  	(*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature)(nil),            // 22: google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest.DataKeyAndFeatureValues.Feature
  2109  	(*FeatureViewDirectWriteResponse_WriteResponse)(nil),                             // 23: google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.WriteResponse
  2110  	(*structpb.Struct)(nil),                                                          // 24: google.protobuf.Struct
  2111  	(*status.Status)(nil),                                                            // 25: google.rpc.Status
  2112  	(*timestamppb.Timestamp)(nil),                                                    // 26: google.protobuf.Timestamp
  2113  	(*FeatureValue)(nil),                                                             // 27: google.cloud.aiplatform.v1.FeatureValue
  2114  }
  2115  var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_depIdxs = []int32{
  2116  	13, // 0: google.cloud.aiplatform.v1.FeatureViewDataKey.composite_key:type_name -> google.cloud.aiplatform.v1.FeatureViewDataKey.CompositeKey
  2117  	2,  // 1: google.cloud.aiplatform.v1.FetchFeatureValuesRequest.data_key:type_name -> google.cloud.aiplatform.v1.FeatureViewDataKey
  2118  	0,  // 2: google.cloud.aiplatform.v1.FetchFeatureValuesRequest.data_format:type_name -> google.cloud.aiplatform.v1.FeatureViewDataFormat
  2119  	14, // 3: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.key_values:type_name -> google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList
  2120  	24, // 4: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.proto_struct:type_name -> google.protobuf.Struct
  2121  	2,  // 5: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.data_key:type_name -> google.cloud.aiplatform.v1.FeatureViewDataKey
  2122  	16, // 6: google.cloud.aiplatform.v1.NearestNeighborQuery.embedding:type_name -> google.cloud.aiplatform.v1.NearestNeighborQuery.Embedding
  2123  	17, // 7: google.cloud.aiplatform.v1.NearestNeighborQuery.string_filters:type_name -> google.cloud.aiplatform.v1.NearestNeighborQuery.StringFilter
  2124  	18, // 8: google.cloud.aiplatform.v1.NearestNeighborQuery.numeric_filters:type_name -> google.cloud.aiplatform.v1.NearestNeighborQuery.NumericFilter
  2125  	19, // 9: google.cloud.aiplatform.v1.NearestNeighborQuery.parameters:type_name -> google.cloud.aiplatform.v1.NearestNeighborQuery.Parameters
  2126  	5,  // 10: google.cloud.aiplatform.v1.SearchNearestEntitiesRequest.query:type_name -> google.cloud.aiplatform.v1.NearestNeighborQuery
  2127  	20, // 11: google.cloud.aiplatform.v1.NearestNeighbors.neighbors:type_name -> google.cloud.aiplatform.v1.NearestNeighbors.Neighbor
  2128  	7,  // 12: google.cloud.aiplatform.v1.SearchNearestEntitiesResponse.nearest_neighbors:type_name -> google.cloud.aiplatform.v1.NearestNeighbors
  2129  	21, // 13: google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest.data_key_and_feature_values:type_name -> google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest.DataKeyAndFeatureValues
  2130  	25, // 14: google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.status:type_name -> google.rpc.Status
  2131  	23, // 15: google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.write_responses:type_name -> google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.WriteResponse
  2132  	26, // 16: google.cloud.aiplatform.v1.GenerateFetchAccessTokenResponse.expire_time:type_name -> google.protobuf.Timestamp
  2133  	15, // 17: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList.features:type_name -> google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair
  2134  	27, // 18: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair.value:type_name -> google.cloud.aiplatform.v1.FeatureValue
  2135  	1,  // 19: google.cloud.aiplatform.v1.NearestNeighborQuery.NumericFilter.op:type_name -> google.cloud.aiplatform.v1.NearestNeighborQuery.NumericFilter.Operator
  2136  	4,  // 20: google.cloud.aiplatform.v1.NearestNeighbors.Neighbor.entity_key_values:type_name -> google.cloud.aiplatform.v1.FetchFeatureValuesResponse
  2137  	2,  // 21: google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest.DataKeyAndFeatureValues.data_key:type_name -> google.cloud.aiplatform.v1.FeatureViewDataKey
  2138  	22, // 22: google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest.DataKeyAndFeatureValues.features:type_name -> google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest.DataKeyAndFeatureValues.Feature
  2139  	27, // 23: google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest.DataKeyAndFeatureValues.Feature.value:type_name -> google.cloud.aiplatform.v1.FeatureValue
  2140  	2,  // 24: google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.WriteResponse.data_key:type_name -> google.cloud.aiplatform.v1.FeatureViewDataKey
  2141  	26, // 25: google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse.WriteResponse.online_store_write_time:type_name -> google.protobuf.Timestamp
  2142  	3,  // 26: google.cloud.aiplatform.v1.FeatureOnlineStoreService.FetchFeatureValues:input_type -> google.cloud.aiplatform.v1.FetchFeatureValuesRequest
  2143  	6,  // 27: google.cloud.aiplatform.v1.FeatureOnlineStoreService.SearchNearestEntities:input_type -> google.cloud.aiplatform.v1.SearchNearestEntitiesRequest
  2144  	9,  // 28: google.cloud.aiplatform.v1.FeatureOnlineStoreService.FeatureViewDirectWrite:input_type -> google.cloud.aiplatform.v1.FeatureViewDirectWriteRequest
  2145  	11, // 29: google.cloud.aiplatform.v1.FeatureOnlineStoreService.GenerateFetchAccessToken:input_type -> google.cloud.aiplatform.v1.GenerateFetchAccessTokenRequest
  2146  	4,  // 30: google.cloud.aiplatform.v1.FeatureOnlineStoreService.FetchFeatureValues:output_type -> google.cloud.aiplatform.v1.FetchFeatureValuesResponse
  2147  	8,  // 31: google.cloud.aiplatform.v1.FeatureOnlineStoreService.SearchNearestEntities:output_type -> google.cloud.aiplatform.v1.SearchNearestEntitiesResponse
  2148  	10, // 32: google.cloud.aiplatform.v1.FeatureOnlineStoreService.FeatureViewDirectWrite:output_type -> google.cloud.aiplatform.v1.FeatureViewDirectWriteResponse
  2149  	12, // 33: google.cloud.aiplatform.v1.FeatureOnlineStoreService.GenerateFetchAccessToken:output_type -> google.cloud.aiplatform.v1.GenerateFetchAccessTokenResponse
  2150  	30, // [30:34] is the sub-list for method output_type
  2151  	26, // [26:30] is the sub-list for method input_type
  2152  	26, // [26:26] is the sub-list for extension type_name
  2153  	26, // [26:26] is the sub-list for extension extendee
  2154  	0,  // [0:26] is the sub-list for field type_name
  2155  }
  2156  
  2157  func init() { file_google_cloud_aiplatform_v1_feature_online_store_service_proto_init() }
  2158  func file_google_cloud_aiplatform_v1_feature_online_store_service_proto_init() {
  2159  	if File_google_cloud_aiplatform_v1_feature_online_store_service_proto != nil {
  2160  		return
  2161  	}
  2162  	file_google_cloud_aiplatform_v1_featurestore_online_service_proto_init()
  2163  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[0].OneofWrappers = []any{
  2164  		(*FeatureViewDataKey_Key)(nil),
  2165  		(*FeatureViewDataKey_CompositeKey_)(nil),
  2166  	}
  2167  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[2].OneofWrappers = []any{
  2168  		(*FetchFeatureValuesResponse_KeyValues)(nil),
  2169  		(*FetchFeatureValuesResponse_ProtoStruct)(nil),
  2170  	}
  2171  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[3].OneofWrappers = []any{
  2172  		(*NearestNeighborQuery_EntityId)(nil),
  2173  		(*NearestNeighborQuery_Embedding_)(nil),
  2174  	}
  2175  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[13].OneofWrappers = []any{
  2176  		(*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value)(nil),
  2177  	}
  2178  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[16].OneofWrappers = []any{
  2179  		(*NearestNeighborQuery_NumericFilter_ValueInt)(nil),
  2180  		(*NearestNeighborQuery_NumericFilter_ValueFloat)(nil),
  2181  		(*NearestNeighborQuery_NumericFilter_ValueDouble)(nil),
  2182  	}
  2183  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[20].OneofWrappers = []any{
  2184  		(*FeatureViewDirectWriteRequest_DataKeyAndFeatureValues_Feature_Value)(nil),
  2185  	}
  2186  	type x struct{}
  2187  	out := protoimpl.TypeBuilder{
  2188  		File: protoimpl.DescBuilder{
  2189  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  2190  			RawDescriptor: file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDesc,
  2191  			NumEnums:      2,
  2192  			NumMessages:   22,
  2193  			NumExtensions: 0,
  2194  			NumServices:   1,
  2195  		},
  2196  		GoTypes:           file_google_cloud_aiplatform_v1_feature_online_store_service_proto_goTypes,
  2197  		DependencyIndexes: file_google_cloud_aiplatform_v1_feature_online_store_service_proto_depIdxs,
  2198  		EnumInfos:         file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes,
  2199  		MessageInfos:      file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes,
  2200  	}.Build()
  2201  	File_google_cloud_aiplatform_v1_feature_online_store_service_proto = out.File
  2202  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDesc = nil
  2203  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_goTypes = nil
  2204  	file_google_cloud_aiplatform_v1_feature_online_store_service_proto_depIdxs = nil
  2205  }