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