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